Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 28 Jan 2000 13:28:47 -0500 (EST)
From:      John Baldwin <jhb@FreeBSD.org>
To:        Jeroen Ruigrok van der Werven <asmodai@bart.nl>
Cc:        committers@FreeBSD.org, current@FreeBSD.org
Subject:   RE: More world breakage
Message-ID:  <200001281828.NAA90843@server.baldwin.cx>
In-Reply-To: <20000128190022.A47078@lucifer.bart.nl>

next in thread | previous in thread | raw e-mail | index | archive | help

On 28-Jan-00 Jeroen Ruigrok van der Werven wrote:
> ===> bin/pwd
> install -c -s -o root -g wheel -m 555   pwd /bin
> install -c -o root -g wheel -m 444 pwd.1.gz  /usr/share/man/man1
> ===> bin/rcp
> install -c -s -o root -g wheel -m 4555  -fschg rcp /bin
> /usr/libexec/ld-elf.so.1: install: Undefined symbol "string_to_flags"
> *** Error code 1
> 
> Stop in /usr/src/bin/rcp.
> *** Error code 1
> 
> 
> This is the second or third make world to bomb on me with the same
> error.  I ensured sources and such were clean.
> 
> I think David O`Brien saw the same breakage.

This is indicative of a larger problem with installworld.  The short
version is that we need install tools just like we have build tools now.
The long version is this:

Problem:

It would seem from Asmodai's breakage that installworld assumes that it
is ok to use the existing binaries on the system in /bin /usr/bin, etc.
to install the new ones.  However, if you have a rare case like this
where the old and new libs/progs are incompatible, then there is a
window between the installation of the different parts where you can
get screwed.  For example, here the new libc gets installed, which
doesn't have the 'strings_to_flags' call.  The old install program (not
yet replaced) tries to call the 'string_to_flags' function which was
present in the old libc but which isn't around anymore.  Boom!

Solution:

We need statically built install tools just like we have build tools.
I think we should use the newer versions (i.e. static versions of the
ones we just built under /usr/obj during buildworld that are linked
against the new libraries), rather than doing some fancy footwork to
make the existing binaries work.  We already do this with the build
tools.  By using the newer binaries we only have to maintain one
interface in our Makefiles to the install tools: whatever their
current interface is in /usr/src.

Comments, suggestions?

-- 

John Baldwin <jhb@FreeBSD.org> -- http://www.FreeBSD.org/~jhb/
PGP Key: http://www.cslab.vt.edu/~jobaldwi/pgpkey.asc
"Power Users Use the Power to Serve!"  -  http://www.FreeBSD.org/


To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-current" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200001281828.NAA90843>