From: Geoffrey F. <fu...@ga...> - 2001-10-12 16:08:11
|
Jo=E3o Cardoso writes: >=20 > The mailing list "reply" is again broken. Just leave it that way, we= =20 > will get used to it this way. The option is gone, I literally can't put it back. Grrrr. If anybody comes up with an elisp "list-reply" function that works with VM, please let me know... :-). > | Thus, the tk problem is another problem. Or maybe not? >=20 > By the way, Geoffrey, you are not working in linux, are you? Yes, I am on Linux. I haven't used anything but Linux since joining Lightspeed. (Although today I'm gonna have to actually log onto a Slowaris machine to run some EDA tool that's only provided by the vendor on Slowaris, but that's just a one time thing. I live on Linux).=20 > The dlopen() man page says: >=20 > External references in the library [jc: the dlopened program= ]=20 > are resolved using the libraries in that library's dependency= =20 > list [jc: I (we?) don't want that] and any other > libraries previously opened with the RTLD_GLOBAL flag >=20 > [jc: so I guess that in linux the loader opens the libraries the=20 > executable was linked against, with RTLD_GLOBAL, and=20 > as such their symbols are available to the dlopened program]. > =20 > If the executable was linked with the flag "-rdynamic", then= > the global symbols in the executable will also be used to > resolve references in a dynamically loaded library. Right. I believe you understand correctly, everything that relates to understanding how our C programs, like the PLplot C demos, our own programs, etc, all work when linked against libplplot, and then using PLplot's dynamic drivers.=20 Here's what you haven't yet grasped. When running a /Java/ program, the PLplot binding is accomplished by asking the JVM to "load" libplplot. Evidently it does this by dlopen, but not using RTLD_GLOBAL. Then, when libplplot dlopen's driver/xyz.drv, the driver doesn't have access to libplpot's symbols because libplplot itself wasn't loaded with RTLD_GLOBAL. =20 I'm not defending the JVM behavior, I'm just reporting it.=20 To live with it, we need to either 1) link drivers against libplplot, or 2) break the symbol resolution requirement. I'll /probably/ check in 1) soon. I will /possibly/ do 2) sooner than sometime in the indefinite future. How's that for a vague statement of my intentions? :-). --=20 Geoffrey Furnish fu...@ga... |