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]

Reply via email to