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: pharo-project-bounces@lists.gforge.inria.fr [pharo-project-bounces@lists.gforge.inria.fr] on behalf of Eliot Miranda [eliot.miranda@gmail.com]
Sent: Tuesday, December 27, 2011 1:18 PM
To: Pharo-project@lists.gforge.inria.fr
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
<kustos@gmx.net> 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