amd64, run-time linker and 32bit

classic Classic list List threaded Threaded
2 messages Options
Reply | Threaded
Open this post in threaded view
|

amd64, run-time linker and 32bit

Eugene Grosbein-10
Hi!

Why our 32-bit run-time linker looks for shared libraries in the /usr/local/lib despite of its absence in /var/run/ld-elf32.so.hints
while 32-bit binary is started under FreeBSD 11.2-STABLE/amd64 ?

If it finds 64-bit version of library in /usr/local/lib, it fails immediately
and does not even re-try to look at other directories noted in /var/run/ld-elf32.so.hints
such as /usr/lib32:/usr/local/lib/compat/lib32:/usr/local/lib/compat/lib32/compat/pkg:/usr/local/lib32/compat
where right 32-bit version is located.

As workaround, I can use /etc/libmap32.conf and then the binary starts just fine
but there are so many libraries. It should not even try to look to /usr/local/lib
if it is not in the /var/run/ld-elf32.so.hints, should it?

_______________________________________________
[hidden email] mailing list
https://lists.freebsd.org/mailman/listinfo/freebsd-stable
To unsubscribe, send any mail to "[hidden email]"
Reply | Threaded
Open this post in threaded view
|

Re: amd64, run-time linker and 32bit

Konstantin Belousov
On Mon, Feb 11, 2019 at 12:31:19AM +0700, Eugene Grosbein wrote:
> Hi!
>
> Why our 32-bit run-time linker looks for shared libraries in the /usr/local/lib despite of its absence in /var/run/ld-elf32.so.hints
> while 32-bit binary is started under FreeBSD 11.2-STABLE/amd64 ?
Most likely because you configured your system this way, or because your
binary sets rpath this way.

Without the data, we can only use a physhic service.

>
> If it finds 64-bit version of library in /usr/local/lib, it fails immediately
> and does not even re-try to look at other directories noted in /var/run/ld-elf32.so.hints
> such as /usr/lib32:/usr/local/lib/compat/lib32:/usr/local/lib/compat/lib32/compat/pkg:/usr/local/lib32/compat
> where right 32-bit version is located.
>
> As workaround, I can use /etc/libmap32.conf and then the binary starts just fine
> but there are so many libraries. It should not even try to look to /usr/local/lib
> if it is not in the /var/run/ld-elf32.so.hints, should it?
Compat32 linker default search path is /lib32:/usr/lib32 unless overritten or
reconfigured (not the same as for native linker for 32bit).
_______________________________________________
[hidden email] mailing list
https://lists.freebsd.org/mailman/listinfo/freebsd-stable
To unsubscribe, send any mail to "[hidden email]"