From owner-freebsd-amd64@FreeBSD.ORG Fri Nov 26 18:46:05 2004 Return-Path: Delivered-To: freebsd-amd64@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id DA4A016A52F for ; Fri, 26 Nov 2004 18:46:03 +0000 (GMT) Received: from manor.msen.com (manor.msen.com [148.59.4.66]) by mx1.FreeBSD.org (Postfix) with ESMTP id 33A0643D31 for ; Fri, 26 Nov 2004 18:46:03 +0000 (GMT) (envelope-from wayne@manor.msen.com) Received: from manor.msen.com (localhost [127.0.0.1]) by manor.msen.com (8.12.9p2/8.12.9) with ESMTP id iAQIk0O7074645 for ; Fri, 26 Nov 2004 13:46:02 -0500 (EST) (envelope-from wayne@manor.msen.com) Received: (from wayne@localhost) by manor.msen.com (8.12.9p2/8.12.9/Submit) id iAQIk0x6074644 for freebsd-amd64@freebsd.org; Fri, 26 Nov 2004 13:46:00 -0500 (EST) (envelope-from wayne) Date: Fri, 26 Nov 2004 13:46:00 -0500 From: "Michael R. Wayne" To: freebsd-amd64@freebsd.org Message-ID: <20041126184559.GJ49800@manor.msen.com> Mail-Followup-To: freebsd-amd64@freebsd.org References: <20041116052630.GD49800@manor.msen.com> <20041124070652.GT49800@manor.msen.com> <80EAD071-3E8F-11D9-AF21-000D93AD5C52@hydrix.com> <200411251242.33406.peter@wemm.org> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <200411251242.33406.peter@wemm.org> User-Agent: Mutt/1.4.2.1i Subject: Re: How to use older libs in 32bit mode? X-BeenThere: freebsd-amd64@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: Porting FreeBSD to the AMD64 platform List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 26 Nov 2004 18:46:06 -0000 On Thu, Nov 25, 2004 at 12:42:33PM -0800, Peter Wemm wrote: > Things to check: > > * Make sure you have COMPAT_IA32 in your kernel config. For example, > this command should work: > > peter@overcee[8:16pm]~/fbp4/hammer/sys/amd64/conf-120> sysctl kern.elf32 > kern.elf32.fallback_brand: -1 > (The important thing is that it prints something, not the value) Yes: > sysctl kern.elf32 kern.elf32.fallback_brand: -1 > * Make sure you have NOT copied ld-elf or libc from an i386 system. > You *MUST* build at least these two on your machine. How to check: > > peter@overcee[8:17pm]~-123> strings /libexec/ld-elf32.so.1 | grep libmap32 > /etc/libmap32.conf > If this comes up empty, you're in trouble. Check that > /usr/libexec/ld-elf32.so.1 and /libexec/ld-elf.so.1 are the same file. So far OK: > strings /libexec/ld-elf32.so.1 | grep libmap32 /etc/libmap32.conf and lrwxr-xr-x 1 root wheel 22 Nov 15 17:13 /usr/libexec/ld-elf32.so.1@ -> /libexec/ld-elf32.so.1 > These will not be present on a 5.3-release system. Running 5.3-RELEASE so they are not present, as expected. > Oh wait a second. Did you build your libraries with > WITH_LIB32=yes or by running build32.sh ? I have a suspicion > that build32.sh will produce a bad library now. Aha. Yes, I built with build32.sh as it was the only way I found to do it. If this is not correct, perhaps someone could put up a quick "how-to" page and post a URL? It would also be useful to understand how to build a port for i386, google was not helpful in determining how to do this. > BTW: it is helpful to do a ktrace/kdump and show the last few lines. > I suspect there will be a sysarch syscall, followed by a SIGSEGV. You are correct: 72509 hello CALL sysarch(0x1,0xffffd70c) 72509 hello RET sysarch -1 errno 22 Invalid argument 72509 hello PSIG SIGSEGV SIG_DFL 72509 hello NAMI "hello.core" So, it looks like build32.sh is broken on 5.3-RELEASE. What now? /\/\ \/\/