(btw, Actually I am running ./buildspurtrunkvmmakerimage.sh)
So I found that ./buildspurtrunkvmmakerimage.sh creates directory cogspurlinuxht containing shell script 'squeak' which for LD_LIBRARY_PATH hard codes eight alternative libc locations. But after reformatting (see attached) a pattern is apparent such that the following generic substitution seems appropriate (and worked for me)...
LIBC_SO="`/usr/bin/ldd "$BIN/squeak" | /bin/fgrep /libc. | sed 's/^.*=> ([^ ]*).*/\1/'`" LIB=`expr "$LIBC_SO" : '(.*)/libc.*'` if [ "$LIB" = "" ]; then echo ERROR: Could not determine libc path for VM exit 1 fi SVMLLP="$LIB:/lib:/usr$LIB:/usr/lib" LD_LIBRARY_PATH="$PLUGINS:$SVMLLP:${LD_LIBRARY_PATH}" exec $GDB "$BIN/squeak" "$@"
except for /lib , /lib32 and /lib64 which substitute as... SVMLLP="$LIB:/usr$LIB"
Now I read [1] "The standard paths [/lib and /usr/lib] will still be searched, but only after the list of paths in LD_LIBRARY_PATH has been exhausted." So I wonder what is the advantage of interleaving the standard paths with $LIB ones ? If /lib and /usr/lib could just be left to be "searched anyway" at the end, the the above snippet seems to cover all existing cases - and likely new cases without change.
[1] http://wiredrevolution.com/system-administration/how-to-correctly-use-ld_lib...
cheers -ben
On Sun, May 22, 2016 at 2:16 AM, Eliot Miranda eliot.miranda@gmail.com wrote:
Hi Ben,
just be sure to post your augmentation of the script back here so the scripts can be updated in svn-soon-to-be-github.
On Fri, May 20, 2016 at 8:54 PM, Ben Coman btc@openinworld.com wrote:
On Sat, May 21, 2016 at 4:44 AM, Clément Bera bera.clement@gmail.com wrote:
On Fri, May 20, 2016 at 7:29 PM, Ben Coman btc@openinworld.com wrote:
I've decided to try and get the simulator working for the first time this weekend. Its been interesting poking through the VM with gdb, but its not "exactly" fun.
Normally if you build a cog development image: $ svn co http://www.squeakvm.org/svn/squeak/branches/Cog/image $ cd ./image $ ./buildsqueaktrunkvmmakerimage.sh
I'm sure I've built successfully from there before, but right now I'm getting and error.. cogspurlinuxht/squeak trunk50.image UpdateSqueakTrunkImage.st Can't infer base LD_LIBRARY_PATH. Aborting. Try adding a line for /lib/i386-linux-gnu/i686/nosegneg/libc.so.6 to cogspurlinuxht/squeak. Please report your edit to squeak vm-dev.
cogspurlinuxht/squeak SpurVMMaker.image BuildSqueakSpurTrunkVMMakerImage.st Can't infer base LD_LIBRARY_PATH. Aborting. Try adding a line for /lib/i386-linux-gnu/i686/nosegneg/libc.so.6 to cogspurlinuxht/squeak. Please report your edit to squeak vm-dev.
I'm in the process of tracking that down, but just reporting in case there is a known quick fix. btw, I'm on Debian Jessie Linux dom0 3.16.0-4-686-pae #1 SMP Debian 3.16.7-ckt20-1+deb8u3 (2016-01-17) i686 GNU/Linux
cheers -ben
You have multiple scripts available with comments to run the simulator that work out of the box. It should take a couple minutes to get it working. Then the easiest is to simulate a REPL image to easily debug what you want.
-- _,,,^..^,,,_ best, Eliot