Andy Stubbs on Wed, 20 May 1998 22:48:11 +0200


[Date Prev] [Date Next] [Thread Prev] [Thread Next] [Date Index] [Thread Index]

Re: shared libraries: namespace problem / an unmoveable object meets an irresistable force / Java bindings for PARI


> I've been experiencing a rather intractible problem that I hope someone
> can explain. I'm surprised nobody has had this problem before (unless I'm
> being really dense): when both libpari.so and libc.so are in memory as
> shared libraries, _any_ reference to pari's err() function (including
> references made internally by libpari.so) is passed to libc's err() 
> function...

Problem solved. Sort of. It appears to be a problem with glibc2. 
Possibly. Or at least some interaction between glibc2 and libpari. I now
have a short piece of code that I can demonstrate behaves differently when
compiled against libc5 and libc6. i.e., it works with libc5... 

However, pari may still be implicated, because I've only been able to
reproduce the problem with libpari, and not any of my own mock-up shared
libs.

So I've downgraded my java distribution to one linked against libc5, and I
can now quite happily catch errors and throw a corresponding java
exception to the JVM with a vanilla libpari.so. (it took me a while to
work out that longjmp thing though!) 

Has anybody got gp/pari working on a linux/glibc2 box? The problem only
seems to manifest itself when the executable uses dlopen() to open the
library and is not itself linked against libpari at compile time... 

However, my problem's solved. At least until glibc2 becomes the
standard primary library anyway...

Thanks,

Andy