Hi Nahuel, On Thu, Jan 19, 2012 at 8:52 AM, Nahuel Garbezza <[email protected]>wrote:
> On 27 December 2011 18:39, Eliot Miranda <[email protected]> wrote: > > Hi Phillipe, > > > > On Tue, Dec 27, 2011 at 1:33 PM, Philippe Marschall <[email protected]> > 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 > Thanks. But what's the corresponding /usr/lib? e.g. is there a /usr/lib/i386-linux-gnu? In this context LD_LIBRARY_PATH needs to contain a /lib and a /usr/lib. > Cheers, > Nahuel. > > -- best, Eliot
