[Gegl-developer] Re: GEGL testbed

neota at softhome.net neota at softhome.net
Tue Jun 6 10:06:48 PDT 2006


Øyvind Kolås writes: 

> I rather think the problem is in babl :/ I see now that on one of my
> systems the line containing the string
> "dl_handle = dlopen (path, RTLD_NOW)" has RTLD_NOW been replaced with 2. 
> 
> (by the way, what kind of system are you compiling this on?)

gcc version 4.0.3 20060115 (prerelease) (Debian 4.0.2-7)
GNU Make 3.80
binutils 2.16.1
GNU ld version 2.16.91 20051214 Debian GNU/Linux
CPU: AMD Duron 800mhz (not that it should matter) 

 


Making that change RTLD_NOW -> 2 causes the png contents to look more like: 

babl-db.c:98 babl_db_insert()
       Eeeeek
Using host libthread_db library "/lib/tls/libthread_db.so.1".
[Thread debugging using libthread_db enabled]
[New Thread 1085512768 (LWP 30869)]
0x40796c1e in waitpid () from /lib/tls/libc.so.6
#0  0x40796c1e in waitpid () from /lib/tls/libc.so.6
#1  0x4073c2c9 in strtold_l () from /lib/tls/libc.so.6
#2  0x406e056d in system () from /lib/tls/libpthread.so.0
#3  0x40024252 in babl_backtrack () at babl-internal.c:68
#4  0x4002426b in babl_die () at babl-internal.c:74
#5  0x4002b84c in babl_db_insert (db=0x0, item=0x80837b8) at babl-db.c:98
#6  0x40025fdf in babl_type_new (first_arg=0x4002cdde) at babl-type.c:135
#7  0x4001ed65 in init () at CIE-Lab.c:415
#8  0x08065120 in babl_extension_load (path=0x80833c0 
"/usr/lib/babl-0.0/CIE-Lab.so")
   at babl-extension.c:194
#9  0x080653e8 in babl_extension_init () at babl-extension.c:238
#10 0x080632aa in babl_init () at babl.c:40
#11 0x080571cc in gegl_init (argc=0xbffff910, argv=0xbffff914) at 
gegl-init.c:38
#12 0x0805694a in main (argc=1, argv=0xbffff984) at add-test.c:8 

Which is less obvious, but I think -- It tries to load the CIE-Lab module 
and crashes during registering the module's associated type(s).
I have a pretty recent glib, too (week old CVS checkout). No idea what to do 
here -- I'm not even entirely sure whether the above is better or worse :) 

actually, it seems stupid that making the above change would even have an 
effect, because.. 

"
/* The MODE argument to `dlopen' contains one of the following: */
#define RTLD_LAZY       0x00001 /* Lazy function call binding.  */
#define RTLD_NOW        0x00002 /* Immediate function call binding.  */
#define RTLD_BINDING_MASK   0x3 /* Mask of binding time value.  */
#define RTLD_NOLOAD     0x00004 /* Do not load the object.  */
#define RTLD_DEEPBIND   0x00008 /* Use deep binding.  */
" 

..On my system RTLD_NOW is the same as 2. (?) 


More information about the Gegl-developer mailing list