From owner-freebsd-current@FreeBSD.ORG Thu Sep 1 22:51:32 2005 Return-Path: X-Original-To: current@freebsd.org Delivered-To: freebsd-current@FreeBSD.ORG Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 3FE6216A41F for ; Thu, 1 Sep 2005 22:51:32 +0000 (GMT) (envelope-from ertr1013@student.uu.se) Received: from pne-smtpout1-sn2.hy.skanova.net (pne-smtpout1-sn2.hy.skanova.net [81.228.8.83]) by mx1.FreeBSD.org (Postfix) with ESMTP id CD3F843D5D for ; Thu, 1 Sep 2005 22:51:31 +0000 (GMT) (envelope-from ertr1013@student.uu.se) Received: from falcon.midgard.homeip.net (212.181.162.201) by pne-smtpout1-sn2.hy.skanova.net (7.2.060.1) id 42BFBBD200B05BF0 for current@freebsd.org; Fri, 2 Sep 2005 00:51:29 +0200 Received: (qmail 58727 invoked by uid 1001); 2 Sep 2005 00:51:29 +0200 Date: Fri, 2 Sep 2005 00:51:28 +0200 From: Erik Trulsson To: Benjamin Lutz Message-ID: <20050901225128.GA52607@falcon.midgard.homeip.net> Mail-Followup-To: Benjamin Lutz , FreeBSD-Current References: <4317776C.9070307@datacomm.ch> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <4317776C.9070307@datacomm.ch> User-Agent: Mutt/1.5.9i Cc: FreeBSD-Current Subject: Re: installing ld-elf.so.1 X-BeenThere: freebsd-current@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Discussions about the use of FreeBSD-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 01 Sep 2005 22:51:32 -0000 On Thu, Sep 01, 2005 at 11:49:32PM +0200, Benjamin Lutz wrote: > Hello, > > While examining my system (FreeBSD 6.0-BETA3 amd64) and removing the old > libs from before the version bump, I noticed that the time stamp on > /libexec/ld-elf.so.1 does not match that of other system files. The date > leads me to believe that my current ld-elf.so.1 is a remainder of a > previous installation (its date matches the date of libm.so.3, which was > recently bumped to libm.so.4). That belief is most likely incorrect. ld-elf.so.1 is installed by 'install -C', and the -C flags for install(1) is documented as: -C Copy the file. If the target file already exists and the files are the same, then don't change the modification time of the tar- get. If the target's file flags and mode need not to be changed, the target's inode change time is also unchanged. I.e. the timestamp for ld-elf.so.1 will not match that of your other files, unless there there has actually been some changes to ld-elf.so.1 since your last install. > > While trying to figure out why the new ld-elf.so.1 (which appears to > have been built correctly) isn't installed. I finally arrived at this point: > > # cp -p /usr/obj/usr/src/libexec/rtld-elf/ld-elf.so.1 /libexec > cp: /libexec/ld-elf.so.1: Text file busy > # > > (This is in single user mode. The result is the same if I use > /rescue/cp, which is statically linked.) > > The open(2) manpage has this to say about it: > > [ETXTBSY] The file is a pure procedure (shared text) file that > is being executed and the open() system call requests > write access. > > So, my question: How can Install the new ld-elf.so.1? Rename or delete the old file, and then copy the new file (a file which is being executed cannot be modified, but it can be deleted.) This is most easily done by install(1), which is what 'make installworld' uses to to install files. -- Erik Trulsson ertr1013@student.uu.se