Date: Fri, 26 Nov 2004 13:46:00 -0500 From: "Michael R. Wayne" <amd64@wayne47.com> To: freebsd-amd64@freebsd.org Subject: Re: How to use older libs in 32bit mode? Message-ID: <20041126184559.GJ49800@manor.msen.com> In-Reply-To: <200411251242.33406.peter@wemm.org> References: <20041116052630.GD49800@manor.msen.com> <20041124070652.GT49800@manor.msen.com> <80EAD071-3E8F-11D9-AF21-000D93AD5C52@hydrix.com> <200411251242.33406.peter@wemm.org>
next in thread | previous in thread | raw e-mail | index | archive | help
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? /\/\ \/\/
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20041126184559.GJ49800>