conf/147244: ld-elf.so.1 not being updated on
buildworld/installworld (potential fix)
Riccardo Torrini
riccardo at torrini.org
Sun Jun 6 10:10:10 UTC 2010
The following reply was made to PR conf/147244; it has been noted by GNATS.
From: Riccardo Torrini <riccardo at torrini.org>
To: "mailto:bug-followup"@FreeBSD.org, jamie at bishopston.net
Cc:
Subject: Re: conf/147244: ld-elf.so.1 not being updated on
buildworld/installworld (potential fix)
Date: Sun, 6 Jun 2010 11:53:03 +0200
Yesterday I rebuilded an 8.0 machine (last installed on feb.28)
and got the source (and the solution, I think):
# ls -log /libexec/
total 424
-r-xr-xr-x 1 root wheel schg 220020 Feb 28 14:18 ld-elf.so.1
-r-xr-xr-x 1 root wheel - 188096 Feb 28 09:14 ld-elf.so.1.old
# ls -log /usr/libexec/ld-elf*
lrwxr-xr-x 1 root wheel - 20 Jun 6 10:20 \
/usr/libexec/ld-elf.so.1 -> /libexec/ld-elf.so.1
I also checked the build dir and it was updated:
# ls -log /usr/obj/usr/src/libexec/rtld-elf/ld-elf.so.1
-rwxr-xr-x 1 root wheel - 275642 Jun 5 20:01 \
/usr/obj/usr/src/libexec/rtld-elf/ld-elf.so.1
All others files in /*bin, /usr/*bin e /usr/lib* seems right.
Here the installworld log (extract):
===> libexec/rtld-elf (install)
chflags noschg /usr/libexec/ld-elf.so.1
install -s -o root -g wheel -m 555 -C -b -fschg -S ld-elf.so.1 /libexec
install -o root -g wheel -m 444 rtld.1.gz /usr/share/man/man1
/usr/share/man/man1/ld-elf.so.1.1.gz -> /usr/share/man/man1/rtld.1.gz
/usr/share/man/man1/ld.so.1.gz -> /usr/share/man/man1/rtld.1.gz
/usr/libexec/ld-elf.so.1 -> /libexec/ld-elf.so.1
The problem is "chflags noschg" to a soft-link in /usr/libexec but
then install over the protected one in /libexec.
Potential fix (remove "/usr" on two lines):
# diff -u4 Makefile.orig Makefile
--- Makefile.orig 2009-08-03 10:13:06.000000000 +0200
+++ Makefile 2010-06-06 11:47:00.000000000 +0200
@@ -46,10 +46,10 @@
# Since moving rtld-elf to /libexec, we need to create a symlink.
# Fixup the existing binary that's there so we can symlink over it.
beforeinstall:
-.if exists(${DESTDIR}/usr/libexec/${PROG})
- -chflags noschg ${DESTDIR}/usr/libexec/${PROG}
+.if exists(${DESTDIR}/libexec/${PROG})
+ -chflags noschg ${DESTDIR}/libexec/${PROG}
.endif
.PATH: ${.CURDIR}/${MACHINE_ARCH}
--
Riccardo. ( http://www.GUFI.org/~vic/ )
More information about the freebsd-bugs
mailing list