[squeak-dev] Re: Still a bug with OpenGL ? Was {Re: Re: OpenGL in 4.1 or later?]

Alexander Lazarević laza at blobworks.com
Mon Dec 19 13:21:46 UTC 2011


2011/12/19 Andreas Raab <andreas.raab at gmx.de>:
> On 12/19/2011 10:08, Alexander Lazarević wrote:
> Which, according to http://www.opengl.org/registry/ABI/ should not be
> necessary:

And I even remember, that it used to work that way. I can't say why
that was changed, but there aren't any libGL* files or links in
/usr/lib anymore (on my Ubuntu system and I guess that is also true
for debian systems).
If I look at any other executable that is using OpenGL, I can see that
it requires libGL.so.1 and that the dynamic linker resolves this to
the correct library (mesa, nvidia, ati, whatever).

ldd $( which structure-synth )
	libGLU.so.1 => /usr/lib/i386-linux-gnu/libGLU.so.1 (0xb766e000)
	libGL.so.1 => /usr/lib/nvidia-current/libGL.so.1 (0xb759c000)
        [...]

Now the Squeak VM handles shared libraries the same as VM modules. It
uses some relative (to the location of the VM executable) and absolute
paths to actually check if a library file exists, before it actually
tries to load the shared library.
The following is the mambo-jambo that the VM pulls to find the OpenGL
library on my installation (and fails):

stat64("/home/laza/Projects/remos/compost/coglinux/bin/../lib/squeak/4.0-2502",
{st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0
stat64("/home/laza/Projects/remos/compost/coglinux/bin/../lib/squeak/4.0-2502.so",
0xbf9baa80) = -1 ENOENT (No such file or directory)
stat64("/home/laza/Projects/remos/compost/coglinux/bin/../lib/squeak/4.0-2502.dylib",
0xbf9baa80) = -1 ENOENT (No such file or directory)
stat64("lib/home/laza/Projects/remos/compost/coglinux/bin/../lib/squeak/4.0-2502",
0xbf9baa80) = -1 ENOENT (No such file or directory)
stat64("lib/home/laza/Projects/remos/compost/coglinux/bin/../lib/squeak/4.0-2502.so",
0xbf9baa80) = -1 ENOENT (No such file or directory)
stat64("lib/home/laza/Projects/remos/compost/coglinux/bin/../lib/squeak/4.0-2502.dylib",
0xbf9baa80) = -1 ENOENT (No such file or directory)
stat64("/home/laza/Projects/remos/compost/coglinux/bin/../lib/squeak/4.0-2502/B3DAcceleratorPlugin",
{st_mode=S_IFREG|0755, st_size=144994, ...}) = 0
stat64("/home/laza/Projects/remos/compost/coglinux/bin/../lib/squeak/4.0-2502",
{st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0
stat64("/home/laza/Projects/remos/compost/coglinux/bin/../lib/squeak/4.0-2502.so",
0xbf9bacb0) = -1 ENOENT (No such file or directory)
stat64("/home/laza/Projects/remos/compost/coglinux/bin/../lib/squeak/4.0-2502.dylib",
0xbf9bacb0) = -1 ENOENT (No such file or directory)
stat64("lib/home/laza/Projects/remos/compost/coglinux/bin/../lib/squeak/4.0-2502",
0xbf9bacb0) = -1 ENOENT (No such file or directory)
stat64("lib/home/laza/Projects/remos/compost/coglinux/bin/../lib/squeak/4.0-2502.so",
0xbf9bacb0) = -1 ENOENT (No such file or directory)
stat64("lib/home/laza/Projects/remos/compost/coglinux/bin/../lib/squeak/4.0-2502.dylib",
0xbf9bacb0) = -1 ENOENT (No such file or directory)
stat64("/home/laza/Projects/remos/compost/coglinux/bin/../lib/squeak/4.0-2502/SqueakFFIPrims",
{st_mode=S_IFREG|0755, st_size=78318, ...}) = 0
stat64("/home/laza/Projects/remos/compost/coglinux/bin/../lib/squeak/4.0-2502",
{st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0
stat64("/home/laza/Projects/remos/compost/coglinux/bin/../lib/squeak/4.0-2502.so",
0xbf9bac30) = -1 ENOENT (No such file or directory)
stat64("/home/laza/Projects/remos/compost/coglinux/bin/../lib/squeak/4.0-2502.dylib",
0xbf9bac30) = -1 ENOENT (No such file or directory)
stat64("lib/home/laza/Projects/remos/compost/coglinux/bin/../lib/squeak/4.0-2502",
0xbf9bac30) = -1 ENOENT (No such file or directory)
stat64("lib/home/laza/Projects/remos/compost/coglinux/bin/../lib/squeak/4.0-2502.so",
0xbf9bac30) = -1 ENOENT (No such file or directory)
stat64("lib/home/laza/Projects/remos/compost/coglinux/bin/../lib/squeak/4.0-2502.dylib",
0xbf9bac30) = -1 ENOENT (No such file or directory)
stat64("/home/laza/Projects/remos/compost/coglinux/bin/../lib/squeak/4.0-2502/SurfacePlugin",
0xbf9bac30) = -1 ENOENT (No such file or directory)
stat64("/home/laza/Projects/remos/compost/coglinux/bin/../lib/squeak/4.0-2502/SurfacePlugin.so",
0xbf9bac30) = -1 ENOENT (No such file or directory)
stat64("/home/laza/Projects/remos/compost/coglinux/bin/../lib/squeak/4.0-2502/SurfacePlugin.dylib",
0xbf9bac30) = -1 ENOENT (No such file or directory)
stat64("/home/laza/Projects/remos/compost/coglinux/bin/../lib/squeak/4.0-2502/libSurfacePlugin",
0xbf9bac30) = -1 ENOENT (No such file or directory)
stat64("/home/laza/Projects/remos/compost/coglinux/bin/../lib/squeak/4.0-2502/libSurfacePlugin.so",
0xbf9bac30) = -1 ENOENT (No such file or directory)
stat64("/home/laza/Projects/remos/compost/coglinux/bin/../lib/squeak/4.0-2502/libSurfacePlugin.dylib",
0xbf9bac30) = -1 ENOENT (No such file or directory)
stat64("./SurfacePlugin", 0xbf9bac30)   = -1 ENOENT (No such file or directory)
stat64("./SurfacePlugin.so", 0xbf9bac30) = -1 ENOENT (No such file or directory)
stat64("./SurfacePlugin.dylib", 0xbf9bac30) = -1 ENOENT (No such file
or directory)
stat64("./libSurfacePlugin", 0xbf9bac30) = -1 ENOENT (No such file or directory)
stat64("./libSurfacePlugin.so", 0xbf9bac30) = -1 ENOENT (No such file
or directory)
stat64("./libSurfacePlugin.dylib", 0xbf9bac30) = -1 ENOENT (No such
file or directory)
stat64("/home/laza/Projects/remos/compost/coglinux/bin/../lib/squeak/4.0-2502/SurfacePlugin",
0xbf9b8c10) = -1 ENOENT (No such file or directory)
stat64("/home/laza/Projects/remos/compost/coglinux/bin/../lib/squeak/4.0-2502/SurfacePlugin.so",
0xbf9b8c10) = -1 ENOENT (No such file or directory)
stat64("/home/laza/Projects/remos/compost/coglinux/bin/../lib/squeak/4.0-2502/SurfacePlugin.dylib",
0xbf9b8c10) = -1 ENOENT (No such file or directory)
stat64("/home/laza/Projects/remos/compost/coglinux/bin/../lib/squeak/4.0-2502/libSurfacePlugin",
0xbf9b8c10) = -1 ENOENT (No such file or directory)
stat64("/home/laza/Projects/remos/compost/coglinux/bin/../lib/squeak/4.0-2502/libSurfacePlugin.so",
0xbf9b8c10) = -1 ENOENT (No such file or directory)
stat64("/home/laza/Projects/remos/compost/coglinux/bin/../lib/squeak/4.0-2502/libSurfacePlugin.dylib",
0xbf9b8c10) = -1 ENOENT (No such file or directory)
stat64("SurfacePlugin", 0xbf9bac30)     = -1 ENOENT (No such file or directory)
stat64("SurfacePlugin.so", 0xbf9bac30)  = -1 ENOENT (No such file or directory)
stat64("SurfacePlugin.dylib", 0xbf9bac30) = -1 ENOENT (No such file or
directory)
stat64("libSurfacePlugin", 0xbf9bac30)  = -1 ENOENT (No such file or directory)
stat64("libSurfacePlugin.so", 0xbf9bac30) = -1 ENOENT (No such file or
directory)
stat64("libSurfacePlugin.dylib", 0xbf9bac30) = -1 ENOENT (No such file
or directory)
stat64("/SurfacePlugin", 0xbf9bac30)    = -1 ENOENT (No such file or directory)
stat64("/SurfacePlugin.so", 0xbf9bac30) = -1 ENOENT (No such file or directory)
stat64("/SurfacePlugin.dylib", 0xbf9bac30) = -1 ENOENT (No such file
or directory)
stat64("/libSurfacePlugin", 0xbf9bac30) = -1 ENOENT (No such file or directory)
stat64("/libSurfacePlugin.so", 0xbf9bac30) = -1 ENOENT (No such file
or directory)
stat64("/libSurfacePlugin.dylib", 0xbf9bac30) = -1 ENOENT (No such
file or directory)
stat64("/home/laza/Projects/remos/compost/coglinux/lib/squeak/4.0-2502/SurfacePlugin/.libs/SurfacePlugin",
0xbf9bac30) = -1 ENOENT (No such file or directory)
stat64("/home/laza/Projects/remos/compost/coglinux/lib/squeak/4.0-2502/SurfacePlugin/.libs/SurfacePlugin.so",
0xbf9bac30) = -1 ENOENT (No such file or directory)
stat64("/home/laza/Projects/remos/compost/coglinux/lib/squeak/4.0-2502/SurfacePlugin/.libs/SurfacePlugin.dylib",
0xbf9bac30) = -1 ENOENT (No such file or directory)
stat64("/home/laza/Projects/remos/compost/coglinux/lib/squeak/4.0-2502/SurfacePlugin/.libs/libSurfacePlugin",
0xbf9bac30) = -1 ENOENT (No such file or directory)
stat64("/home/laza/Projects/remos/compost/coglinux/lib/squeak/4.0-2502/SurfacePlugin/.libs/libSurfacePlugin.so",
0xbf9bac30) = -1 ENOENT (No such file or directory)
stat64("/home/laza/Projects/remos/compost/coglinux/lib/squeak/4.0-2502/SurfacePlugin/.libs/libSurfacePlugin.dylib",
0xbf9bac30) = -1 ENOENT (No such file or directory)
stat64("/home/laza/Projects/remos/compost/coglinux/bin/../lib/squeak/4.0-2502",
{st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0
stat64("/home/laza/Projects/remos/compost/coglinux/bin/../lib/squeak/4.0-2502.so",
0xbf9baa80) = -1 ENOENT (No such file or directory)
stat64("/home/laza/Projects/remos/compost/coglinux/bin/../lib/squeak/4.0-2502.dylib",
0xbf9baa80) = -1 ENOENT (No such file or directory)
stat64("lib/home/laza/Projects/remos/compost/coglinux/bin/../lib/squeak/4.0-2502",
0xbf9baa80) = -1 ENOENT (No such file or directory)
stat64("lib/home/laza/Projects/remos/compost/coglinux/bin/../lib/squeak/4.0-2502.so",
0xbf9baa80) = -1 ENOENT (No such file or directory)
stat64("lib/home/laza/Projects/remos/compost/coglinux/bin/../lib/squeak/4.0-2502.dylib",
0xbf9baa80) = -1 ENOENT (No such file or directory)
stat64("/home/laza/Projects/remos/compost/coglinux/bin/../lib/squeak/4.0-2502/GL",
0xbf9baa80) = -1 ENOENT (No such file or directory)
stat64("/home/laza/Projects/remos/compost/coglinux/bin/../lib/squeak/4.0-2502/GL.so",
0xbf9baa80) = -1 ENOENT (No such file or directory)
stat64("/home/laza/Projects/remos/compost/coglinux/bin/../lib/squeak/4.0-2502/GL.dylib",
0xbf9baa80) = -1 ENOENT (No such file or directory)
stat64("/home/laza/Projects/remos/compost/coglinux/bin/../lib/squeak/4.0-2502/libGL",
0xbf9baa80) = -1 ENOENT (No such file or directory)
stat64("/home/laza/Projects/remos/compost/coglinux/bin/../lib/squeak/4.0-2502/libGL.so",
0xbf9baa80) = -1 ENOENT (No such file or directory)
stat64("/home/laza/Projects/remos/compost/coglinux/bin/../lib/squeak/4.0-2502/libGL.dylib",
0xbf9baa80) = -1 ENOENT (No such file or directory)
stat64("./GL", 0xbf9baa80)              = -1 ENOENT (No such file or directory)
stat64("./GL.so", 0xbf9baa80)           = -1 ENOENT (No such file or directory)
stat64("./GL.dylib", 0xbf9baa80)        = -1 ENOENT (No such file or directory)
stat64("./libGL", 0xbf9baa80)           = -1 ENOENT (No such file or directory)
stat64("./libGL.so", 0xbf9baa80)        = -1 ENOENT (No such file or directory)
stat64("./libGL.dylib", 0xbf9baa80)     = -1 ENOENT (No such file or directory)
stat64("/home/laza/Projects/remos/compost/coglinux/bin/../lib/squeak/4.0-2502/GL",
0xbf9b8a60) = -1 ENOENT (No such file or directory)
stat64("/home/laza/Projects/remos/compost/coglinux/bin/../lib/squeak/4.0-2502/GL.so",
0xbf9b8a60) = -1 ENOENT (No such file or directory)
stat64("/home/laza/Projects/remos/compost/coglinux/bin/../lib/squeak/4.0-2502/GL.dylib",
0xbf9b8a60) = -1 ENOENT (No such file or directory)
stat64("/home/laza/Projects/remos/compost/coglinux/bin/../lib/squeak/4.0-2502/libGL",
0xbf9b8a60) = -1 ENOENT (No such file or directory)
stat64("/home/laza/Projects/remos/compost/coglinux/bin/../lib/squeak/4.0-2502/libGL.so",
0xbf9b8a60) = -1 ENOENT (No such file or directory)
stat64("/home/laza/Projects/remos/compost/coglinux/bin/../lib/squeak/4.0-2502/libGL.dylib",
0xbf9b8a60) = -1 ENOENT (No such file or directory)
stat64("GL", 0xbf9baa80)                = -1 ENOENT (No such file or directory)
stat64("GL.so", 0xbf9baa80)             = -1 ENOENT (No such file or directory)
stat64("GL.dylib", 0xbf9baa80)          = -1 ENOENT (No such file or directory)
stat64("libGL", 0xbf9baa80)             = -1 ENOENT (No such file or directory)
stat64("libGL.so", 0xbf9baa80)          = -1 ENOENT (No such file or directory)
stat64("libGL.dylib", 0xbf9baa80)       = -1 ENOENT (No such file or directory)
stat64("/GL", 0xbf9baa80)               = -1 ENOENT (No such file or directory)
stat64("/GL.so", 0xbf9baa80)            = -1 ENOENT (No such file or directory)
stat64("/GL.dylib", 0xbf9baa80)         = -1 ENOENT (No such file or directory)
stat64("/libGL", 0xbf9baa80)            = -1 ENOENT (No such file or directory)
stat64("/libGL.so", 0xbf9baa80)         = -1 ENOENT (No such file or directory)
stat64("/libGL.dylib", 0xbf9baa80)      = -1 ENOENT (No such file or directory)
stat64("/home/laza/Projects/remos/compost/coglinux/lib/squeak/4.0-2502/GL/.libs/GL",
0xbf9baa80) = -1 ENOENT (No such file or directory)
stat64("/home/laza/Projects/remos/compost/coglinux/lib/squeak/4.0-2502/GL/.libs/GL.so",
0xbf9baa80) = -1 ENOENT (No such file or directory)
stat64("/home/laza/Projects/remos/compost/coglinux/lib/squeak/4.0-2502/GL/.libs/GL.dylib",
0xbf9baa80) = -1 ENOENT (No such file or directory)
stat64("/home/laza/Projects/remos/compost/coglinux/lib/squeak/4.0-2502/GL/.libs/libGL",
0xbf9baa80) = -1 ENOENT (No such file or directory)
stat64("/home/laza/Projects/remos/compost/coglinux/lib/squeak/4.0-2502/GL/.libs/libGL.so",
0xbf9baa80) = -1 ENOENT (No such file or directory)
stat64("/home/laza/Projects/remos/compost/coglinux/lib/squeak/4.0-2502/GL/.libs/libGL.dylib",
0xbf9baa80) = -1 ENOENT (No such file or directory)



More information about the Squeak-dev mailing list