Date: Wed, 30 May 2012 18:15:59 +0200 (CEST) From: Oliver Fromme <olli@lurza.secnetix.de> To: freebsd-stable@FreeBSD.ORG Subject: i386 binaries on amd64: ldconfig problems Message-ID: <201205301615.q4UGFxSF051308@lurza.secnetix.de>
next in thread | raw e-mail | index | archive | help
Hi, I've recently migrated my workstation from i386 to amd64 (finally, because I neeed to go beyond 4 GB RAM). The transition went smoothly so far, except for one thing: I need to use several old i386 binaries, which all work well except for one: olvwm. $ uname -rsm FreeBSD 8.3-STABLE-20120528 amd64 $ olvwm /libexec/ld-elf.so.1: /usr/local/lib/libXpm.so.4: unsupported file layout $ file olvwm olvwm: ELF 32-bit LSB executable, Intel 80386, version 1 (FreeBSD), dynamically linked (uses shared libs), for FreeBSD 8.2 (802502), stripped $ ldd olvwm olvwm: libXpm.so.4 => not found (0x0) libolgx.so.3 => /usr/local/lib32/compat/libolgx.so.3 (0x280d1000) libXext.so.6 => not found (0x0) libX11.so.6 => not found (0x0) libm.so.5 => /usr/lib32/libm.so.5 (0x280df000) libc.so.7 => /usr/lib32/libc.so.7 (0x280f9000) $ ldconfig -32 -r | head -2 /var/run/ld-elf32.so.hints: search directories: /usr/lib32:/usr/local/lib32:/usr/local/lib32/compat $ ldconfig -32 -r | egrep 'libXpm|libXext|libX11' 190:-lXpm.4 => /usr/local/lib32/compat/libXpm.so.4 192:-lXext.6 => /usr/local/lib32/compat/libXext.so.6 193:-lX11.6 => /usr/local/lib32/compat/libX11.so.6 So, the 32bit libraries are there, ldconfig knows about them, but the runtime linker does not, apparently. Interestingly, it works when I force the library path (this is currently the work-around that I'm using): LD_32_LIBRARY_PATH=/usr/local/lib32/compat ldd olvwm olvwm: libXpm.so.4 => /usr/local/lib32/compat/libXpm.so.4 (0x280d1000) libolgx.so.3 => /usr/local/lib32/compat/libolgx.so.3 (0x280e1000) libXext.so.6 => /usr/local/lib32/compat/libXext.so.6 (0x280ef000) libX11.so.6 => /usr/local/lib32/compat/libX11.so.6 (0x280fe000) libm.so.5 => /usr/lib32/libm.so.5 (0x28216000) libc.so.7 => /usr/lib32/libc.so.7 (0x28230000) libxcb.so.2 => /usr/local/lib32/compat/libxcb.so.2 (0x2834b000) libXau.so.6 => /usr/local/lib32/compat/libXau.so.6 (0x28362000) libXdmcp.so.6 => /usr/local/lib32/compat/libXdmcp.so.6 (0x28365000) libpthread-stubs.so.0 => /usr/local/lib32/compat/libpthread-stubs.so.0 (0x2836a000) librpcsvc.so.5 => /usr/lib32/librpcsvc.so.5 (0x2836c000) But actually I shouldn't have to use LD_32_LIBRARY_PATH. I mean, it's ldconfig's job to configure the directories for locating the libraries. What is wrong here? Best regards Oliver -- Oliver Fromme, secnetix GmbH & Co. KG, Marktplatz 29, 85567 Grafing b. M. Handelsregister: Registergericht Muenchen, HRA 74606, Geschäftsfuehrung: secnetix Verwaltungsgesellsch. mbH, Handelsregister: Registergericht Mün- chen, HRB 125758, Geschäftsführer: Maik Bachmann, Olaf Erb, Ralf Gebhart FreeBSD-Dienstleistungen, -Produkte und mehr: http://www.secnetix.de/bsd Blogging: Never before have so many people with so little to say said so much to so few.
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201205301615.q4UGFxSF051308>