Docs for running 32-bit apps?

Kael Fischer kael.fischer at gmail.com
Mon Jan 16 15:21:39 PST 2006


results:

All this stuff has been said before on this list, but I'll try to pull
it together here in a coherent summary.

To recap, this is 6.0-RELEASE amd64 running on Intel SBX82 Systems.

Rebuilding/installing world (or build32/install32) is sufficient to
populate /usr/lib32.

Note KERNCONF=GENERIC includes:
options         COMPAT_43               # Needed by COMPAT_LINUX32
options         COMPAT_IA32             # Compatible with i386 binaries
options         COMPAT_FREEBSD4         # Compatible with FreeBSD4
options         COMPAT_FREEBSD5         # Compatible with FreeBSD5
options         COMPAT_LINUX32          # Compatible with i386 linux binaries


Note also that "WITH_LIB32=yes" in make.conf is not required (anymore,
see other threads on this list).

After install32, I had to run 'ldconfig -32 /usr/lib32'.

I still have plenty of apps that don't find the versions of libraries
they want.  I'm mostly handling this with /etc/libmap32.conf (see
below)

== /etc/libmap32.conf ==
libm.so.2	libm.so
libc_r.so.5	libc_r.so
libc.so.5	libc.so
==================

I believe this is roughly equivalent to the method noted (but not
recommended) by Steve of adding symlinks.  It worked fine for the test
program I don't have the source for (yeah!).

The c++ test program, which is my own code, did not work with either a
libstdc++.so.3 mapping in /etc/libmap32.conf or by copying the
libstdc++.so.3 from the 4.9-RELEASE machine it was compiled on.  But
it compiles fine - so no worries there.

Those are my results, your mileage will vary.

-Kael.

p.s. Steve, thanks for the pointers.

On 1/16/06, Steve Kargl <sgk at troutmask.apl.washington.edu> wrote:
> On Mon, Jan 16, 2006 at 11:45:49AM -0800, Kael Fischer wrote:
> > > If you can't recompile raftercc and blasta for amd64, then try
> > > to find the missing 32bit libs and drop them im /usr/lib32.
> > > You could create a symlink to get libm.so.2 (although I don't
> > > recommend this approach).  A symlink probably won't work for
> > > libstdc++.co.3 because the C++ ABI changed.
> >
> > So in the normal buildworld on amd64 these get built, right?
>
> You need to add "WITH_LIB32=yes" to /etc/make.conf.  This will
> then build the 32 bit libraries and install them.
>
> >
> > so it seems like lib32 stuff should be standard.
> >
>
> You may need to add COMPAT_FREEBSD4, COMPAT_FREEBSD5
> (or whatever the names) to the kernel config file.
>
> --
> Steve
>


--
Kael Fischer, Ph.D
DeRisi Lab - Univ. Of California San Francisco


More information about the freebsd-amd64 mailing list