At 9:39 PM -0500 11/26/03, Garance A Drosihn wrote: >I just installed 5.1-release on a sparc64, and then cvsup'ed >to the latest snapshot of -current. Since that update is such >a large jump in time, I was going from a system which had no >/rescue or /libexec to one which builds everything dynamically. > >This gets one into a mess in the middle of installworld, where >suddenly almost everything dies with messages like: > "ELF interpreter /libexec/ld-elf.so.1 not found" >I know others have run into this problem, but there seems to be >nothing in UPDATING to warn people about it. Or at least, I >didn't see anything in /usr/src/UPDATING under sparc64. I did some more tests today, and it looks like it is still true that updating from a non-/libexec system to a system with both /libexec and dynamic-root will not work right. There is a check in /usr/src/Makefile.inc1 which tries to help out, but when I try a test-run of make (with the right environment and parameters), that section does not seem to do anything. That section says: # When upgrading to a dynamically linked root, install the runtime # linker early into its new location before make(1) has a chance # to run the dynamically linked /bin/sh. .if !defined(NO_DYNAMICROOT) && !defined(NOPIC) && \ (!defined(TARGET_ARCH) || ${TARGET_ARCH} == ${MACHINE_ARCH}) && \ !defined(DISTDIR) && \ (!defined(DESTDIR) || empty(DESTDIR) || ${DESTDIR} == "/") && \ !exists(/libexec/ld-elf.so.1) SUBDIR+= libexec/rtld-elf .endif However, libexec/rtld-elf does not get added to the list of subdirectories. I am not completely sure what all those lines in the .if are checking for, but if I change "DISTDIR" to "DESTDIR" on the third line, I do get libexec/rtld-elf added to the the SUBDIR variable. But even if that fixes the check, I don't understand why we would not just move up the: .if exists(${.CURDIR}/libexec) SUBDIR+= libexec .endif so that it will be installed before /bin is. We already install /include and /lib before we install /bin, and I would think that we would *always* want a "new" /libexec installed before installing /bin files which may depend on some change to libraries in that directory. Disclaimer: I realize there could be many subtleties here that I am not aware off, so consider this more of a question than a statement that something is definitely wrong. Why *wouldn't* we want /libexec installed before /bin? I do know that the current setup still does not work (going from 5.1-secure to 5.1-rightNow), but I may be pushing for the wrong solution. [also, I intended to do more checking of this, but I've run out of "weekend" and I doubt I'll work on this much until next weekend....] -- Garance Alistair Drosehn = gad_at_gilead.netel.rpi.edu Senior Systems Programmer or gad_at_freebsd.org Rensselaer Polytechnic Institute or drosih_at_rpi.eduReceived on Sun Nov 30 2003 - 19:22:42 UTC
This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:37:32 UTC