Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 25 Nov 2004 12:42:33 -0800
From:      Peter Wemm <peter@wemm.org>
To:        freebsd-amd64@freebsd.org
Subject:   Re: How to use older libs in 32bit mode?
Message-ID:  <200411251242.33406.peter@wemm.org>
In-Reply-To: <80EAD071-3E8F-11D9-AF21-000D93AD5C52@hydrix.com>
References:  <20041116052630.GD49800@manor.msen.com> <20041124070652.GT49800@manor.msen.com> <80EAD071-3E8F-11D9-AF21-000D93AD5C52@hydrix.com>

next in thread | previous in thread | raw e-mail | index | archive | help
On Wednesday 24 November 2004 07:10 pm, Jean-Yves Avenard wrote:
> On 24/11/2004, at 6:06 PM, Michael R. Wayne wrote:
> > Sorry.  No success as in it cores.
>
> Exact same thing here. Any attempts to run a 32 bits executable on an
> AMD64 machines result in a coredump
>
> Jean-Yves

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)


* 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.

If you are running 5.3-stable and not 5.3-release, you can check libc
like this:

peter@overcee[8:18pm]~-125> objdump --dynamic-syms /usr/lib32/libc.so.5 | grep fsbase
00026500 g    DF .text  0000002b _amd64_set_fsbase
00026580 g    DF .text  0000004a _amd64_get_fsbase

These will not be present on a 5.3-release system.

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.

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.
-- 
Peter Wemm - peter@wemm.org; peter@FreeBSD.org; peter@yahoo-inc.com
"All of this is for nothing if we don't go to the stars" - JMS/B5



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200411251242.33406.peter>