Eliot,

I apologize if this is retreaded ground.  I am still using an older, hacked, vm 
for most of my work.  The hacks provided diagnostic information in two ares:

(1) can't load an external library?  Then it helps to see the full path that 
was used; at least once, it ended up having an extra slash appended somewhere; 
various other times, I had not registered something correctly, and the mistake 
was obvious as soon as I saw what the vm was ultimately trying to load;

(2) Can't open a serial port?  Then it helps to see how the vm mapped it too.  
I wish I remembered more of the details on this type of problem.  At least some 
of the trouble I have had is due to the realities of newer hardware forcing me 
to use USB to serial converters, which I find to be unreliable.  I am still 
sorting through the combination of Linux and some excellent hardware that I 
have used for years.

The short version is that when a library can't load or a port can't open, etc., 
and the vm did some translation of a name to a number (or vice versa), or 
manipulated a string, it would be nice to have syslog()/OutputDebugString() 
output to show what the vm tried to do.

Bill




________________________________
From: [email protected] 
[[email protected]] on behalf of Eliot Miranda 
[[email protected]]
Sent: Tuesday, December 27, 2011 1:18 PM
To: [email protected]
Subject: Re: [Pharo-project] can't infer base LD_LIBRARY_PATH. Aborting.

Hi Phillipe,

    what does ldd answer for the squeak vm?  The script is trying to work out 
what default LD_LIBRARY_PATH to supply.  The choice is between 
/lib/tls:/lib:/usr/lib/tls:/usr/lib and /lib:/usr/lib.  Older linuxes had two 
versions of the pthreads library, an experimental one (now the default) using 
thread-local storage (hence tls) and an older one, I think using the stack 
pointer to identify the current thread.  The script uses ldd to find out what 
the VM is linked against.  Here's the code:

# 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";;
*)                              echo "can't infer base LD_LIBRARY_PATH. 
Aborting." 1>&2;
                                exit 1
esac

On Tue, Dec 27, 2011 at 9:51 AM, Philippe Marschall 
<[email protected]<mailto:[email protected]>> wrote:
Hi

With the latest cog VMs I get:

can't infer base LD_LIBRARY_PATH. Aborting.

Gentoo 64bit, Linux 3.1

LD_LIBRARY_PATH is not set but libtool is present.

Cheers
Philippe





--
best,
Eliot

Reply via email to