Cannot load vm-display-X11 module after build from latest SVN and VMM
David T. Lewis
lewis at mail.msen.com
Fri Jul 1 01:43:55 UTC 2005
I'm trying to build an up-to-date VM from source in order to
get OSPP and XDCP updated for the 64 bit code base. I'm having
trouble building a VM from the latest; the vm-display-X11 module
will not load. I'm stumped and would appreciate some help.
Here's the situation:
$ cat /proc/version
Linux version 2.4.21-144-default (root at i386.suse.de) (gcc version 3.3.1 (SuSE Linux)) #1 Fri Nov 14 00:01:36 UTC 2003
$ squeak -version
3.7b-6 #30 Mon May 2 10:55:50 EDT 2005 gcc 3.3.1
Squeak3.7 of '4 September 2004' [latest update: #5989]
Linux dtlewis 2.4.21-144-default #1 Fri Nov 14 00:01:36 UTC 2003 i686 i686 i386 GNU/Linux
default plugin location: /usr/local/lib/squeak/3.7b-6/*.so
Squeak image is Squeak3.7 of '4 September 2004' [latest update: #5989]
I loaded VMMaker-tpr.37.mcz from Tim's site.
The platforms source is loaded from SVN as of today (June 30).
I built and installed the VM with no errors or warnings related to vm-display-X11.
The vm-display-X11 module is correctly installed in /usr/local/lib/squeak/3.8a-2.
When I run Squeak I get this:
$ squeak sq.image
looking for module vm-display-X11
could not find display driver vm-display-X11; either:
- check that /usr/local/lib/squeak/3.8a-2/vm-display-X11.so exists, or
- use the '-plugins <path>' option to tell me where it is, or
- remove DISPLAY from your environment.
I can run the VM under GDB, and I think I see the dlopen() attempting
to open the /usr/local/lib/squeak/3.8a-2/vm-display-X11 file, and failing
as if the file were not there.
But I can copy a vm-display-X11 file from some earlier build into the
installation directory, and the VM finds and loads it (but crashes on
account of it being a different version). So it does not appear to
be a path problem, the VM is looking it the right place, and finding
a vm-display-X11 file there.
It appears that there is something about the vm-display-X11 file
itself that causes it to be unloadable (it's world readable and world
executable, so that's not it). The file itself looks fine:
$ ls -l /usr/local/lib/squeak/3.8a-2/vm-display-X11
-rwxr-xr-x 1 lewis users 150331 2005-06-30 11:26 /usr/local/lib/squeak/3.8a-2/vm-display-X11
$ file /usr/local/lib/squeak/3.8a-2/vm-display-X11
/usr/local/lib/squeak/3.8a-2/vm-display-X11: ELF 32-bit LSB shared object, Intel 80386, version 1 (SYSV), not stripped
And the module built without errors and warnings, so I'm thinking
it may be something that has changed recently in the source tree.
I feel like Mr. Jones, something is going on but I don't know what
to do. Any tips?
More information about the Vm-dev