OpenGL in 4.1 or later?

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
17 messages Options
Reply | Threaded
Open this post in threaded view
|

OpenGL in 4.1 or later?

LawsonEnglish
has anyone besides Matt Fulmer attempted to get OpenGL working with 4.1,
4.2, or 4.3?


Lawson

Reply | Threaded
Open this post in threaded view
|

Re: OpenGL in 4.1 or later?

Andreas.Raab
On 9/6/2011 23:24, Lawson English wrote:
> has anyone besides Matt Fulmer attempted to get OpenGL working with 4.1,
> 4.2, or 4.3?

This should work (from http://www.squeaksource.com/CroquetGL.html):

(Installer repository: 'http://source.squeak.org/FFI')
        install: 'FFI-Pools';
        install: 'FFI-Kernel';
        install: 'FFI-Tests'.

(Installer repository: 'http://www.squeaksource.com/CroquetGL')
        install: '3DTransform';
        install: 'OpenGL-Pools';
        install: 'OpenGL-Core'.


Cheers,
   - Andreas

Reply | Threaded
Open this post in threaded view
|

Re: OpenGL in 4.1 or later?

LawsonEnglish
Thanks. I have no idea why what I was trying didn't work. "Brain fart"
as some would say.

L.
On 9/7/11 9:47 AM, Andreas Raab wrote:
> On 9/6/2011 23:24, Lawson English wrote:
>> has anyone besides Matt Fulmer attempted to get OpenGL working with 4.1,
>> 4.2, or 4.3?
>
> This should work (from http://www.squeaksource.com/CroquetGL.html): 


Reply | Threaded
Open this post in threaded view
|

Re: OpenGL in 4.1 or later?

LawsonEnglish
In reply to this post by Andreas.Raab
When I do that with a later version of Cog, the class example "OpenGL
example"  works.

When I do that with the Squeak all-in-one 4.2 download from squeak.org,
it doesn't.

I get error: External function is invalid.   it is objecting to   ogl
beginFrame...


Lawson

On 9/7/11 9:47 AM, Andreas Raab wrote:

> On 9/6/2011 23:24, Lawson English wrote:
>> has anyone besides Matt Fulmer attempted to get OpenGL working with 4.1,
>> 4.2, or 4.3?
>
> This should work (from http://www.squeaksource.com/CroquetGL.html):
>
> (Installer repository: 'http://source.squeak.org/FFI')
>     install: 'FFI-Pools';
>     install: 'FFI-Kernel';
>     install: 'FFI-Tests'.
>
> (Installer repository: 'http://www.squeaksource.com/CroquetGL')
>     install: '3DTransform';
>     install: 'OpenGL-Pools';
>     install: 'OpenGL-Core'.
>
>
> Cheers,
>   - Andreas
>
>


Reply | Threaded
Open this post in threaded view
|

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

LawsonEnglish
On a Mac, download the latest 4.2 all-in-one squeak.

Put the following into a workspace and "do it".

I get Error: External function failed. The offending method is #beginFrame.

I'm using an Intel Mac, Mac OS X 10.6.8.
Doing the same code with Cog doesn't seem to show the errors.

L

(Installer repository: 'http://source.squeak.org/FFI')
     install: 'FFI-Pools';
     install: 'FFI-Kernel';
     install: 'FFI-Tests'.

(Installer repository: 'http://www.squeaksource.com/CroquetGL')
     install: '3DTransform';
     install: 'OpenGL-Pools';
     install: 'OpenGL-Core'.

OpenGL example.




Reply | Threaded
Open this post in threaded view
|

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

LawsonEnglish
Has anyone tested this with 4.3?

It still doesn't work out of the box with 4.2 all-in-one, which means I
can't do a "look how easy it is to do this in 3D" tutorial yet.

L.

On 9/11/11 6:09 PM, Lawson English wrote:

> On a Mac, download the latest 4.2 all-in-one squeak.
>
> Put the following into a workspace and "do it".
>
> I get Error: External function failed. The offending method is
> #beginFrame.
>
> I'm using an Intel Mac, Mac OS X 10.6.8.
> Doing the same code with Cog doesn't seem to show the errors.
>
> L
>
> (Installer repository: 'http://source.squeak.org/FFI')
>     install: 'FFI-Pools';
>     install: 'FFI-Kernel';
>     install: 'FFI-Tests'.
>
> (Installer repository: 'http://www.squeaksource.com/CroquetGL')
>     install: '3DTransform';
>     install: 'OpenGL-Pools';
>     install: 'OpenGL-Core'.
>
> OpenGL example.
>
>
>
>
>


Reply | Threaded
Open this post in threaded view
|

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

laza
Just tested this in an up to date image and it worked. As always I had
to manually adapt the library path, but that was all.

Alex

2011/12/17 Lawson English <[hidden email]>:

> Has anyone tested this with 4.3?
>
> It still doesn't work out of the box with 4.2 all-in-one, which means I
> can't do a "look how easy it is to do this in 3D" tutorial yet.
>
> L.
>
> On 9/11/11 6:09 PM, Lawson English wrote:
>>
>> On a Mac, download the latest 4.2 all-in-one squeak.
>>
>> Put the following into a workspace and "do it".
>>
>> I get Error: External function failed. The offending method is
>> #beginFrame.
>>
>> I'm using an Intel Mac, Mac OS X 10.6.8.
>> Doing the same code with Cog doesn't seem to show the errors.
>>
>> L
>>
>> (Installer repository: 'http://source.squeak.org/FFI')
>>    install: 'FFI-Pools';
>>    install: 'FFI-Kernel';
>>    install: 'FFI-Tests'.
>>
>> (Installer repository: 'http://www.squeaksource.com/CroquetGL')
>>    install: '3DTransform';
>>    install: 'OpenGL-Pools';
>>    install: 'OpenGL-Core'.
>>
>> OpenGL example.
>>
>>
>>
>>
>>
>
>



Bildschirmfoto am 2011-12-19 10:04:13.jpg (25K) Download Attachment
Reply | Threaded
Open this post in threaded view
|

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

LawsonEnglish
Great. Can you tell me how to do that in a very simple way? The
advantage of the "all-in-one" is that people (including myself, all to
often) don't have to know too much about the lower level stuff in order
to get something working.
Thanks

L.

On 12/19/11 2:08 AM, Alexander Lazarević wrote:
> Just tested this in an up to date image and it worked. As always I had
> to manually adapt the library path, but that was all.
>
> Alex
>


Reply | Threaded
Open this post in threaded view
|

Re: Still a bug with OpenGL ? Was {Re: Re: OpenGL in 4.1 or later?]

Andreas.Raab
In reply to this post by laza
On 12/19/2011 10:08, Alexander Lazarević wrote:
> Just tested this in an up to date image and it worked. As always I had
> to manually adapt the library path, but that was all.

Which, according to http://www.opengl.org/registry/ABI/ should not be
necessary:

3.1. There are two link-level libraries. libGL includes the OpenGL and
GLX entry points and in general depends on underlying hardware and/or X
server dependent code that may or may not be incorporated into this
library. libGLU includes the GLU utility routines and should be hardware
independent, using only the OpenGL API.

Each library has two names: the link name used on the ld command line,
and the DT_SONAME within that library (specified by the -soname switch
when linking the library), defining where it's looked up at runtime.
Both forms must exist so that both linking and running will operate
properly. The library names are:
Link name Runtime name (DT_SONAME)
libGL.so libGL.so.1
libGLU.so libGLU.so.1

libGL.so and libGLU.so should be symbolic links pointing to the runtime
names, so that future versions of the standard can be implemented
transparently to applications by changing the link.

3.2. These libraries must be located in /usr/lib. The X-specific library
direction (/usr/lib/X11) was also considered, but existing practice on
Linux and other platforms indicates that /usr/lib is preferable.

Cheers,
   - Andreas

>
> Alex
>
> 2011/12/17 Lawson English<[hidden email]>:
>> Has anyone tested this with 4.3?
>>
>> It still doesn't work out of the box with 4.2 all-in-one, which means I
>> can't do a "look how easy it is to do this in 3D" tutorial yet.
>>
>> L.
>>
>> On 9/11/11 6:09 PM, Lawson English wrote:
>>>
>>> On a Mac, download the latest 4.2 all-in-one squeak.
>>>
>>> Put the following into a workspace and "do it".
>>>
>>> I get Error: External function failed. The offending method is
>>> #beginFrame.
>>>
>>> I'm using an Intel Mac, Mac OS X 10.6.8.
>>> Doing the same code with Cog doesn't seem to show the errors.
>>>
>>> L
>>>
>>> (Installer repository: 'http://source.squeak.org/FFI')
>>>     install: 'FFI-Pools';
>>>     install: 'FFI-Kernel';
>>>     install: 'FFI-Tests'.
>>>
>>> (Installer repository: 'http://www.squeaksource.com/CroquetGL')
>>>     install: '3DTransform';
>>>     install: 'OpenGL-Pools';
>>>     install: 'OpenGL-Core'.
>>>
>>> OpenGL example.
>>>
>>>
>>>
>>>
>>>
>>
>>
>>
>>
>>


Reply | Threaded
Open this post in threaded view
|

Re: Still a bug with OpenGL ? Was {Re: Re: OpenGL in 4.1 or later?]

LawsonEnglish
To answer my own question: with the latest Cog VMs and 4.3gamma image,
the OpenGL example     works fine.

It appears to be an issue with Squeak 4.2 (4.1?) all-in-one
distributions which don't have Cog as the default. Since I am no longer
using a PowerPC Mac,  moving to Cog for everything won't be an issue for
me, but I think this is a political decision that needs to be made: does
the squeak community standardize on Intel-only/Cog-only, or will legacy
PowerPC systems still be supported?

I believe that Pharo has gone all-Cog for the past few releases. I know
plenty of people/schools that are still using  PowerMacs however, so the
issue is not not as cut and dried as it might  be for Pharo.

L.

On 12/19/11 3:25 AM, Andreas Raab wrote:

> On 12/19/2011 10:08, Alexander Lazarević wrote:
>> Just tested this in an up to date image and it worked. As always I had
>> to manually adapt the library path, but that was all.
>
> Which, according to http://www.opengl.org/registry/ABI/ should not be
> necessary:
>
> 3.1. There are two link-level libraries. libGL includes the OpenGL and
> GLX entry points and in general depends on underlying hardware and/or
> X server dependent code that may or may not be incorporated into this
> library. libGLU includes the GLU utility routines and should be
> hardware independent, using only the OpenGL API.
>
> Each library has two names: the link name used on the ld command line,
> and the DT_SONAME within that library (specified by the -soname switch
> when linking the library), defining where it's looked up at runtime.
> Both forms must exist so that both linking and running will operate
> properly. The library names are:
> Link name     Runtime name (DT_SONAME)
> libGL.so     libGL.so.1
> libGLU.so     libGLU.so.1
>
> libGL.so and libGLU.so should be symbolic links pointing to the
> runtime names, so that future versions of the standard can be
> implemented transparently to applications by changing the link.
>
> 3.2. These libraries must be located in /usr/lib. The X-specific
> library direction (/usr/lib/X11) was also considered, but existing
> practice on Linux and other platforms indicates that /usr/lib is
> preferable.
>
> Cheers,
>   - Andreas
>
>>
>> Alex
>>
>> 2011/12/17 Lawson English<[hidden email]>:
>>> Has anyone tested this with 4.3?
>>>
>>> It still doesn't work out of the box with 4.2 all-in-one, which means I
>>> can't do a "look how easy it is to do this in 3D" tutorial yet.
>>>
>>> L.
>>>
>>> On 9/11/11 6:09 PM, Lawson English wrote:
>>>>
>>>> On a Mac, download the latest 4.2 all-in-one squeak.
>>>>
>>>> Put the following into a workspace and "do it".
>>>>
>>>> I get Error: External function failed. The offending method is
>>>> #beginFrame.
>>>>
>>>> I'm using an Intel Mac, Mac OS X 10.6.8.
>>>> Doing the same code with Cog doesn't seem to show the errors.
>>>>
>>>> L
>>>>
>>>> (Installer repository: 'http://source.squeak.org/FFI')
>>>>     install: 'FFI-Pools';
>>>>     install: 'FFI-Kernel';
>>>>     install: 'FFI-Tests'.
>>>>
>>>> (Installer repository: 'http://www.squeaksource.com/CroquetGL')
>>>>     install: '3DTransform';
>>>>     install: 'OpenGL-Pools';
>>>>     install: 'OpenGL-Core'.
>>>>
>>>> OpenGL example.
>>>>
>>>>
>>>>
>>>>
>>>>
>>>
>>>
>>>
>>>
>>>
>
>
>


Reply | Threaded
Open this post in threaded view
|

Re: Still a bug with OpenGL ? Was {Re: Re: OpenGL in 4.1 or later?]

Bert Freudenberg
In reply to this post by Andreas.Raab

On 19.12.2011, at 11:25, Andreas Raab wrote:

> On 12/19/2011 10:08, Alexander Lazarević wrote:
>> Just tested this in an up to date image and it worked. As always I had
>> to manually adapt the library path, but that was all.
>
> Which, according to http://www.opengl.org/registry/ABI/ should not be necessary:
>
> 3.1. There are two link-level libraries. libGL includes the OpenGL and GLX entry points and in general depends on underlying hardware and/or X server dependent code that may or may not be incorporated into this library. libGLU includes the GLU utility routines and should be hardware independent, using only the OpenGL API.
>
> Each library has two names: the link name used on the ld command line, and the DT_SONAME within that library (specified by the -soname switch when linking the library), defining where it's looked up at runtime. Both forms must exist so that both linking and running will operate properly. The library names are:
> Link name Runtime name (DT_SONAME)
> libGL.so libGL.so.1
> libGLU.so libGLU.so.1
>
> libGL.so and libGLU.so should be symbolic links pointing to the runtime names, so that future versions of the standard can be implemented transparently to applications by changing the link.
>
> 3.2. These libraries must be located in /usr/lib. The X-specific library direction (/usr/lib/X11) was also considered, but existing practice on Linux and other platforms indicates that /usr/lib is preferable.
>
> Cheers,
>  - Andreas

So the name that must be used for FFI under linux would be 'libGL.so.1'. Maybe this would make it work in general:

openGLLibraryName
        ^ Smalltalk os osVersion = 'linux'
                ifTrue: ['libGL.so.1']
                ifFalse: ['GL']

- Bert -


>>
>> Alex
>>
>> 2011/12/17 Lawson English<[hidden email]>:
>>> Has anyone tested this with 4.3?
>>>
>>> It still doesn't work out of the box with 4.2 all-in-one, which means I
>>> can't do a "look how easy it is to do this in 3D" tutorial yet.
>>>
>>> L.
>>>
>>> On 9/11/11 6:09 PM, Lawson English wrote:
>>>>
>>>> On a Mac, download the latest 4.2 all-in-one squeak.
>>>>
>>>> Put the following into a workspace and "do it".
>>>>
>>>> I get Error: External function failed. The offending method is
>>>> #beginFrame.
>>>>
>>>> I'm using an Intel Mac, Mac OS X 10.6.8.
>>>> Doing the same code with Cog doesn't seem to show the errors.
>>>>
>>>> L
>>>>
>>>> (Installer repository: 'http://source.squeak.org/FFI')
>>>>    install: 'FFI-Pools';
>>>>    install: 'FFI-Kernel';
>>>>    install: 'FFI-Tests'.
>>>>
>>>> (Installer repository: 'http://www.squeaksource.com/CroquetGL')
>>>>    install: '3DTransform';
>>>>    install: 'OpenGL-Pools';
>>>>    install: 'OpenGL-Core'.
>>>>
>>>> OpenGL example.
>>>>
>>>>
>>>>
>>>>
>>>>
>>>
>>>
>>>
>>>
>>>
>
>


Reply | Threaded
Open this post in threaded view
|

Re: Still a bug with OpenGL ? Was {Re: Re: OpenGL in 4.1 or later?]

laza
In reply to this post by Andreas.Raab
2011/12/19 Andreas Raab <[hidden email]>:
> 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)

Reply | Threaded
Open this post in threaded view
|

Re: Still a bug with OpenGL ? Was {Re: Re: OpenGL in 4.1 or later?]

laza
In reply to this post by Bert Freudenberg
2011/12/19 Bert Freudenberg <[hidden email]>:
>                ifTrue: ['libGL.so.1']

Yes and no. I guess it would work if the VM would just try to load
that shared library. But instead it tries to see if there is actually
a file like that in some known locations and will fail, because there
is none.

Alex

Reply | Threaded
Open this post in threaded view
|

Re: Still a bug with OpenGL ? Was {Re: Re: OpenGL in 4.1 or later?]

Bert Freudenberg

On 19.12.2011, at 14:25, Alexander Lazarević wrote:

> 2011/12/19 Bert Freudenberg <[hidden email]>:
>>                ifTrue: ['libGL.so.1']
>
> Yes and no. I guess it would work if the VM would just try to load
> that shared library. But instead it tries to see if there is actually
> a file like that in some known locations and will fail, because there
> is none.

That file should be in /usr/lib - did you try?

It cannot work just with saying 'GL' because that requires a libGL.so symlink, which typically is only installed by the dev package.

- Bert -


Reply | Threaded
Open this post in threaded view
|

Re: Still a bug with OpenGL ? Was {Re: Re: OpenGL in 4.1 or later?]

laza
2011/12/19 Bert Freudenberg <[hidden email]>:
> That file should be in /usr/lib - did you try?

Sure (not only once). There is no such file. And other GL applications
don't depend on it and do work.

> It cannot work just with saying 'GL' because that requires a libGL.so symlink, which typically is only installed by the dev package.

This won't work even if there is a file 'libGL.so.1' in /usr/lib,
because the VM will not look in that directory (see previous mail)
unless you explicitly ask for '/usr/lib/libGL.so.1'

Alex

Reply | Threaded
Open this post in threaded view
|

Re: Still a bug with OpenGL ? Was {Re: Re: OpenGL in 4.1 or later?]

Bert Freudenberg

On 19.12.2011, at 16:05, Alexander Lazarević wrote:

> 2011/12/19 Bert Freudenberg <[hidden email]>:
>> That file should be in /usr/lib - did you try?
>
> Sure (not only once). There is no such file. And other GL applications
> don't depend on it and do work.
>
>> It cannot work just with saying 'GL' because that requires a libGL.so symlink, which typically is only installed by the dev package.
>
> This won't work even if there is a file 'libGL.so.1' in /usr/lib,
> because the VM will not look in that directory (see previous mail)
> unless you explicitly ask for '/usr/lib/libGL.so.1'
>
> Alex

Okay, so the bug is that the VM tries to find "libGL.so.1" on its own, rather than simply calling dlopen() directly. I'm sure there was a reason for stat()ing first, but I thought that after trying the places, it would at least fall back to the obvious dlopen() call?

- Bert -



Reply | Threaded
Open this post in threaded view
|

Re: Still a bug with OpenGL ? Was {Re: Re: OpenGL in 4.1 or later?]

laza
2011/12/19 Bert Freudenberg <[hidden email]>:
> Okay, so the bug is that the VM tries to find "libGL.so.1" on its own, rather than simply calling dlopen() directly. I'm sure there was a reason for stat()ing first, but I thought that after trying the places, it would at least fall back to the obvious dlopen() call?

I think this makes perfectly sense for looking up the location of
external VM modules (since the dynamic linker does not know a thing
about these modules), but does not work as well for shared libraries
that are meant to be used by FFI. But the same mechanics is used for
modules and shared libraries/FFI (as far as I can remember it).

Alex