From owner-freebsd-current Fri Jan 28 10:29: 5 2000 Delivered-To: freebsd-current@freebsd.org Received: from server.baldwin.cx (jobaldwi.campus.vt.edu [198.82.67.146]) by hub.freebsd.org (Postfix) with ESMTP id 4D2B114D19; Fri, 28 Jan 2000 10:29:00 -0800 (PST) (envelope-from jhb@FreeBSD.org) Received: from john.baldwin.cx (john [10.0.0.2]) by server.baldwin.cx (8.9.3/8.9.3) with ESMTP id NAA90843; Fri, 28 Jan 2000 13:28:47 -0500 (EST) (envelope-from jhb@FreeBSD.org) Message-Id: <200001281828.NAA90843@server.baldwin.cx> X-Mailer: XFMail 1.4.0 on FreeBSD X-Priority: 3 (Normal) Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 8bit MIME-Version: 1.0 In-Reply-To: <20000128190022.A47078@lucifer.bart.nl> Date: Fri, 28 Jan 2000 13:28:47 -0500 (EST) From: John Baldwin To: Jeroen Ruigrok van der Werven Subject: RE: More world breakage Cc: committers@FreeBSD.org, current@FreeBSD.org Sender: owner-freebsd-current@FreeBSD.ORG Precedence: bulk X-Loop: FreeBSD.ORG 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 -- 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