On Mon, 2008-04-14 at 14:29 -0700, Blake Ramsdell wrote:
> On Mon, Apr 14, 2008 at 7:05 AM, Florent <[EMAIL PROTECTED]> wrote:
> > > (clutter-test.py:2033): ClutterGLX-WARNING **: failed to bind
> > GLXGetProcAddress or GLXGetProcAddressARB
> > > The C examples all work fine.
> >
> > This is a known nvidia issue, but it shouldn't make your app segfault
> > (i use pyclutter in production on nvidia); the problem is mainly that
> > you won't be able to use shaders and PBOs, and as said previously,
> > this is a python issue that is still to solve.
>
> Index: clutter/cogl/gl/cogl.c
> ===================================================================
> --- clutter/cogl/gl/cogl.c (revision 2486)
> +++ clutter/cogl/gl/cogl.c (working copy)
> @@ -115,7 +115,7 @@
>
> if (get_proc_func == NULL && dlhand == NULL)
> {
> - dlhand = dlopen (NULL, RTLD_LAZY);
> + dlhand = dlopen ("libGL.so", RTLD_LAZY);
>
> if (dlhand)
> {
>
> Is that the correct solution?
no, since libGL.so might not be the actual library (it really depends on
the platform). NULL should open every symbol in the current module
space:
If filename is a NULL pointer, then the returned handle is for the
main program. When given to dlsym(), this handle causes a search for a
symbol in the main program, followed by all shared libraries loaded at
program startup, and then all shared libraries loaded by dlopen() with
the flag RTLD_GLOBAL.
and that's exactly what we're trying to do.
I'd like for somebody with an nvidia card to test compiling the
pyclutter bindings to apply this change:
# linker flags
- common_ldflags = -module -avoid-version
+ common_ldflags = -module -avoid-version -rdynamic
and see if it fixes it.
ciao,
Emmanuele.
--
Emmanuele Bassi, OpenedHand Ltd.
Unit R, Homesdale Business Centre
216-218 Homesdale Rd., Bromley - BR12QZ
http://www.o-hand.com
--
To unsubscribe send a mail to [EMAIL PROTECTED]