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