From owner-freebsd-current@FreeBSD.ORG Tue Aug 4 21:02:00 2009 Return-Path: Delivered-To: freebsd-current@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 8300E106564A; Tue, 4 Aug 2009 21:02:00 +0000 (UTC) (envelope-from jhb@freebsd.org) Received: from cyrus.watson.org (cyrus.watson.org [65.122.17.42]) by mx1.freebsd.org (Postfix) with ESMTP id 556A58FC12; Tue, 4 Aug 2009 21:02:00 +0000 (UTC) (envelope-from jhb@freebsd.org) Received: from bigwig.baldwin.cx (66.111.2.69.static.nyinternet.net [66.111.2.69]) by cyrus.watson.org (Postfix) with ESMTPSA id 0E5D446B45; Tue, 4 Aug 2009 17:02:00 -0400 (EDT) Received: from jhbbsd.hudson-trading.com (unknown [209.249.190.8]) by bigwig.baldwin.cx (Postfix) with ESMTPA id 2DB9D8A0A8; Tue, 4 Aug 2009 17:01:59 -0400 (EDT) From: John Baldwin To: freebsd-current@freebsd.org Date: Tue, 4 Aug 2009 17:01:50 -0400 User-Agent: KMail/1.9.7 References: In-Reply-To: MIME-Version: 1.0 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: 7bit Content-Disposition: inline Message-Id: <200908041701.50397.jhb@freebsd.org> X-Greylist: Sender succeeded SMTP AUTH, not delayed by milter-greylist-4.0.1 (bigwig.baldwin.cx); Tue, 04 Aug 2009 17:01:59 -0400 (EDT) X-Virus-Scanned: clamav-milter 0.95.1 at bigwig.baldwin.cx X-Virus-Status: Clean X-Spam-Status: No, score=-2.5 required=4.2 tests=AWL,BAYES_00,RDNS_NONE autolearn=no version=3.2.5 X-Spam-Checker-Version: SpamAssassin 3.2.5 (2008-06-10) on bigwig.baldwin.cx Cc: Antony Mawer , re@FreeBSD.org Subject: Re: 32-bit ports on amd64, ldd32 missing on FreeBSD/amd64 8.0B2 install 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: Tue, 04 Aug 2009 21:02:00 -0000 On Tuesday 04 August 2009 1:03:18 am Antony Mawer wrote: > I've just been tinkering with FreeBSD/amd64 from the 8.0-BETA2 install > media. At this stage I'm trying to do a test deployment of a new > 8.0-based 64-bit (amd64) system, running ports from an existing 32-bit > 6.x system. So far there seems to be very little documentation on > running 32-bit applications on amd64, so I am finding my way as I go > along... > > In experimenting with this, I have discovered that "ldd" on amd64 is > supposed to be able to automatically spawn ldd32 when run on a 32-bit > binary, however even after installing the lib32 distribution I do not > appear to have a "ldd32" installed in /usr/bin. Is this an accidental > omission somewhere from the installation distributions? From a brief > bit of digging it looks as though if I build by hand it should get > built and installed, but it doesn't appear to be packaged onto the > installation media. I am running: > > # uname -a > FreeBSD 8.0-BETA2 FreeBSD 8.0-BETA2 #0: Wed Jul 15 21:48:41 UTC 2009 > root@mason.cse.buffalo.edu:/usr/obj/usr/src/sys/GENERIC amd64 Yes, this is a bug in the lib32-make.sh release script. It also forgets to include the usr/libexec/ld-elf32.so.1 symlink. I've changed the script to use a blacklist instead of a whitelist. Also, the 'find' invocation to purge empty directories from dist's in 'make release' did not work because the '-empty' predicate does not get "updated" when a subdirectory becomes empty as a result of rmdir deleting all its children. I've fixed that by having find delete the directories itself using -delete. This works properly as find can then notice that the directory is now empty. Index: scripts/lib32-make.sh =================================================================== --- scripts/lib32-make.sh (revision 196050) +++ scripts/lib32-make.sh (working copy) @@ -5,4 +5,4 @@ # Clean the dust. cd ${RD}/trees/lib32 && \ - find . ! -path '*/libexec/*' ! -path '*/usr/lib32/*' -delete + find . -path '*/usr/share/*' -o -path '*/usr/lib/*' -delete Index: Makefile =================================================================== --- Makefile (revision 196050) +++ Makefile (working copy) @@ -651,7 +691,7 @@ # Remove all the directories we don't need. -cd ${RD}/trees && \ (find ${OTHER_DISTS} -path '*/var/empty' | xargs chflags noschg; \ - find ${OTHER_DISTS} -depth -type d -empty -print | xargs rmdir) + find ${OTHER_DISTS} -depth -type d -empty -delete) touch ${.TARGET} # -- John Baldwin