Is there a way to rebuild 32-bit libraries under amd64?
bf1783 at googlemail.com
Fri Aug 13 04:30:12 UTC 2010
>I have 8.0-STABLE amd64 machine, and I need to run some 32-bit FreeBSD
>process which runs fine on 8.0-STABLE i386.
>So I copied all shared libs needed by it from i386 into there respective
>locations on amd64, but under lib32/ folder.
> libexecinfo.so.1 => /usr/local/lib32/libexecinfo.so.1 (0x289ca000)
> libffi.so.5 => /usr/local/lib32/libffi.so.5 (0x289d5000)
> libstdc++.so.6 => /usr/local/lib32/libstdc++.so.6 (0x289da000)
> libm.so.5 => /usr/lib32/libm.so.5 (0x28ac4000)
> libgcc_s.so.1 => /usr/local/gcc/4.5.0-32bit/lib/libgcc_s.so.1
> libthr.so.3 => /usr/lib32/libthr.so.3 (0x28ae9000)
> libc.so.7 => /usr/lib32/libc.so.7 (0x28afe000)
>But the process crashes. After debugging I found that regexec returns
>result different from what it returns on i386 with the same input.
>So my question is: is there a way to rebuild for example
>/usr/lib32/libc.so.7 and /usr/lib32/libthr.so.3 on amd64? Or what may
>cause such incompatibility?
Did you install the 32-bit compatibility libraries and utilities on
amd64, by selecting the lib32 option with sysinstall(8), or by running
../lib32/install.sh from the FreeBSD media, or by rebuilding and
reinstalling world without a WITHOUT_LIB32 defined in src.conf(5) or
make.conf(5)? Then did you make sure that rtld(1) has the proper
hints to find any needed 32-bit libraries that are not in the lib32
part of the base system, by defining the right values for
ldconfig32_paths and/or ldconfig_local32_dirs in rc.conf(5)?
More information about the freebsd-questions