[Pharo-project] can't infer base LD_LIBRARY_PATH. Aborting.

Nahuel Garbezza n.garbezza at gmail.com
Thu Jan 19 17:52:45 CET 2012


On 27 December 2011 18:39, Eliot Miranda <eliot.miranda at gmail.com> wrote:
> Hi Phillipe,
>
> On Tue, Dec 27, 2011 at 1:33 PM, Philippe Marschall <kustos at gmx.net> wrote:
>>
>> On 27.12.2011 19:18, Eliot Miranda wrote:
>>>
>>> Hi Phillipe,
>>>
>>>     what does ldd answer for the squeak vm?
>>
>>
>> $ldd coglinux/lib/squeak/4.0-2515/squeak
>>        linux-gate.so.1 =>  (0xffffe000)
>>        libutil.so.1 => /lib32/libutil.so.1 (0xf76cb000)
>>        libdl.so.2 => /lib32/libdl.so.2 (0xf76c7000)
>>        libpthread.so.0 => /lib32/libpthread.so.0 (0xf76ad000)
>>        libm.so.6 => /lib32/libm.so.6 (0xf7687000)
>>        libnsl.so.1 => /lib32/libnsl.so.1 (0xf766f000)
>>        libc.so.6 => /lib32/libc.so.6 (0xf750c000)
>>        /lib/ld-linux.so.2 (0xf76fe000)
>>
>> It's a 64bit system with 32bit compatibility libraries (only for cog,
>> everything else is 64bit).
>
>
> Ah, ok.  Makes sense.  So I expect the relevant code needs to read
>
> # On some old linuxes there is a /lib/tls thread-local-storage version of
> the C
> # library which the VM may use and if so should take precedence over /lib
> libc.
> case `/usr/bin/ldd "$BIN/squeak" | /bin/fgrep /libc. | sed 's/^.*=> //'` in
> /lib/tls/libc*) SVMLLP="/lib/tls:/lib:/usr/lib/tls:/usr/lib";;
> /lib/libc*)     SVMLLP="/lib:/usr/lib";;
> /lib32/libc*)   SVMLLP="/lib32:/usr/lib32";;
> *)              echo "can't infer base LD_LIBRARY_PATH. Aborting." 1>&2;
>                 exit 1
> esac
>
> Can you confirm that there is a /usr/lib32 for the 32-bit equivalent of
> /usr/lib?
>
>

Hi,

I had the same error on Ubuntu 11.10 (32bit). This is the output from ldd:

$ ldd lib/squeak/4.0-2522/squeak
	linux-gate.so.1 =>  (0x00f42000)
	libutil.so.1 => /lib/i386-linux-gnu/libutil.so.1 (0x0066e000)
	libdl.so.2 => /lib/i386-linux-gnu/libdl.so.2 (0x00cfc000)
	libpthread.so.0 => /lib/i386-linux-gnu/libpthread.so.0 (0x004af000)
	libm.so.6 => /lib/i386-linux-gnu/libm.so.6 (0x005b6000)
	libnsl.so.1 => /lib/i386-linux-gnu/libnsl.so.1 (0x00b03000)
	libc.so.6 => /lib/i386-linux-gnu/libc.so.6 (0x00110000)
	/lib/ld-linux.so.2 (0x00bf3000)

So I had to modify the squeak launcher in order to get it working:

case `/usr/bin/ldd "$BIN/squeak" | /bin/fgrep /libc. | sed 's/^.*=> //'` in
/lib/tls/libc*)	SVMLLP="/lib/tls:/lib:/usr/lib/tls:/usr/lib";;
/lib/libc*)		SVMLLP="/lib:/usr/lib";;
/lib/i386-linux-gnu/libc*)		SVMLLP="/lib/i386-linux-gnu";;
*)				echo "can't infer base LD_LIBRARY_PATH. Aborting." 1>&2;
				exit 1

Cheers,
Nahuel.



More information about the Pharo-project mailing list