[EMAIL PROTECTED] (Don Anderson) writes: > Hello, > > I seek your advice on some weirdness I've noticed with AIX 4.3.3. I > want to create a shared library for dynamic loading using libtool with > the -module option. When the AIX linker (or something in the compiler > chain) creates the shared library, it is put into a .a file. That is, > it creates libfoo.a, a static archive of one element, which is > libfoo.so.0, and that shared object has an SONAME of libfoo.so. > Apparently, the linker knows how to link and run against that animal > if you just wanted to link. But if you want to dynamically load it > (say from java or Tcl), these programs cannot dlopen the .a. So I > need to do a post-install step like this: > > $ ar xv libfoo.a > x - libfoo.so.0 > $ ln -s libfoo.so.0 libfoo.so > > This gives me a libfoo.so that I can dlopen directly.
A couple of hints: 1) If you want to load a member of an archive on AIX, add the RTLD_MEMBER flag to your normal dlopen() flags. You can then specify "libfoo.a(libfoo.so.0)" as the object to load. 2) As I understand it, libtool doesn't create the non-archive style of shared library on AIX unless it thinks you are using run-time linking (-Wl,-brtl). You may or may not want run-time linking. -- Jeff Trawick | [EMAIL PROTECTED] Born in Roswell... married an alien... _______________________________________________ Libtool mailing list [EMAIL PROTECTED] http://mail.gnu.org/mailman/listinfo/libtool
