make install is pretty broken
Mark Kettenis
kettenis@wins.uva.nl
Sat Jul 29 08:47:00 GMT 2000
If force-install = no, make install is broken, see the attached bits
from an install log. The problems are probably caused by the
following patch:
2000-03-17 Cristian Gafton <gafton@redhat.com>
* elf/Makefile ($(rtld-version-installed-name)): Delay replacing
existing rtld-installed-name.
($(rtld-installed-name)): Request libc-$(version) be installed too.
replace existing rtld-installed-name using $(symbolic-link-prog).
I don't understand this patch. It doesn't say what it tries to fix,
and there are no comments in elf/Makefile explaining things. It
probably tries to deal with overwriting an already installed libc with
a new one with the same version number. However, I don't see how it
avoids problems, since there is always a window where the old libc.so is
used with the new ld.so, or the other way around. Can we revert this
patch?
Mark
make -C elf ldso_install
make[2]: Entering directory `/home/kettenis/CVS/libc-2.2/elf'
/usr/bin/install -c /home/kettenis/obj/libc/elf/ld.so /mnt/hdb2/lib/ld-2.1.91.so
.new
/usr/bin/install -c /home/kettenis/obj/libc/libc.so /mnt/hdb2/lib/libc-2.1.91.so
.new
mv -f /mnt/hdb2/lib/libc-2.1.91.so.new /mnt/hdb2/lib/libc-2.1.91.so
rm -f /mnt/hdb2/lib/ld.so.1 /mnt/hdb2/lib/ld-2.1.91.so
ln -s /mnt/hdb2/lib/ld-2.1.91.so.new /mnt/hdb2/lib/ld.so.1
ln /mnt/hdb2/lib/ld-2.1.91.so.new /mnt/hdb2/lib/ld-2.1.91.so
rm -f /mnt/hdb2/lib/ld.so.1
ln -s ld-2.1.91.so /mnt/hdb2/lib/ld.so.1
rm -f /mnt/hdb2/lib/ld-2.1.91.so.new
make[2]: Leaving directory `/home/kettenis/CVS/libc-2.2/elf'
/usr/bin/install -c /home/kettenis/obj/libc/libc.so /mnt/hdb2/lib/libc-2.1.91.so
.new
mv -f /mnt/hdb2/lib/libc-2.1.91.so.new /mnt/hdb2/lib/libc-2.1.91.so
rm -f /mnt/hdb2/lib/libc.so.0.2
ln -s libc-2.1.91.so /mnt/hdb2/lib/libc.so.0.2
...
make -C elf subdir_install
make[2]: Entering directory `/home/kettenis/CVS/libc-2.2/elf'
rm -f /mnt/hdb2/lib/ld.so.1 /mnt/hdb2/lib/ld-2.1.91.so
ln -s /mnt/hdb2/lib/ld-2.1.91.so.new /mnt/hdb2/lib/ld.so.1
ln /mnt/hdb2/lib/ld-2.1.91.so.new /mnt/hdb2/lib/ld-2.1.91.so
ln: /mnt/hdb2/lib/ld-2.1.91.so.new: No such file or directory
make[2]: *** [/mnt/hdb2/lib/ld.so.1] Error 1
More information about the Libc-hacker
mailing list