From owner-freebsd-current@FreeBSD.ORG Wed Jun 27 09:23:20 2007 Return-Path: X-Original-To: freebsd-current@freebsd.org Delivered-To: freebsd-current@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 467F816A400 for ; Wed, 27 Jun 2007 09:23:20 +0000 (UTC) (envelope-from bakul@bitblocks.com) Received: from mail.bitblocks.com (ns1.bitblocks.com [64.142.15.60]) by mx1.freebsd.org (Postfix) with ESMTP id 2EA6013C468 for ; Wed, 27 Jun 2007 09:23:19 +0000 (UTC) (envelope-from bakul@bitblocks.com) Received: from bitblocks.com (localhost.bitblocks.com [127.0.0.1]) by mail.bitblocks.com (Postfix) with ESMTP id 07E1C5B50 for ; Wed, 27 Jun 2007 01:55:26 -0700 (PDT) To: freebsd-current@freebsd.org Date: Wed, 27 Jun 2007 01:55:25 -0700 From: Bakul Shah Message-Id: <20070627085526.07E1C5B50@mail.bitblocks.com> Subject: questions re 32bit & 64bit ports in a 64bit world 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: Wed, 27 Jun 2007 09:23:20 -0000 I updated my i386 -current world amd64 machine to a 64bit -current world by cross compiling, installing on a spare partition and rebooting with that partition as root. The whole process went pretty smoothly. All the 32 bit ports that I tried so far (all except cvsup) seem to work fine but they still pick up shared libs from /usr/local/lib which will cause problems if I now add 64bit ports. I really don't want to have to recompile and retest any 32bit port in 64bit mode if it already works well enough. It would be nice if 32bit ports and 64bit ports can co-exist. Is this possible? Seems to me for this to work ld-elf32.so would have to somehow first check /usr/local/lib32. Is any special set up needed in the 64bit world to cross-compile for a i386 target? Files such as are specific to amd64 so one would need to keep a copy of /usr/include from a 32bit world somewhere. BTW, ldd can't grok 32bit binaries. For that you need something like $ cat ldd32 #!/bin/sh for i in ${1+"$@"} do echo "$i": env LD_32_TRACE_LOADED_OBJECTS=1 "$i" done (script thanks to Rob Warnock) I figure such issues must already be well known and I may as well use existing solutions. Thanks! -- bakul