On Fri, 2011-09-23 at 00:10 +0200, Vladislav Vaintroub wrote: > Steve, > Are you talking about PIC requirements, when you say " HP-UX doesn't support > building shared libaries that depend on archive libraries".
No I was thinking of a dependent library list, after building mariadb on linux, in the storage/federated/.libs directory, there is ha_federated.so, the shared library and there is ha_federated.la, the libtool library file which contains: dependency_libs=' -L/wsp/sje/mariadb/linux/obj/libservices -lmysqlservices -lcrypt -lnsl -lpthread -lrt' I think this causes libtool, when building something that uses ha_federated.so to also link in libmysqlservices (and crypt, etc). libmsqlservices would only need to be PIC if it were copied into ha_federated.so and I don't think that is happening is it? If so then it would need to be PIC and with my build, the libsqlservices code is not compiled with the PIC options. > In MySQL 5.5, linking static to shared feature was used extensively (as a > replacement for libtool's "convenience libraries", static library was > compiled with platform dependent PIC flag), and it worked on all major > Unixes, I'm pretty sure it worked on HPUX/Itanium. > > I think the trick for Maria 5.3 could be to compile the sqlservices library > with the PIC flag (+Z or +z or something similar, if I recall this > correctly). I do not have access to HPUX machines anymore, but you might > want to give it a try. I think compiling with PIC should only be needed if libsqlservices code is intended to be linked into a shared library and I am not sure if that is the case or not. Here is the error message that libtool gives me during the build: *** Warning: linker path does not have real file for library -lmysqlservices. *** I have the capability to make that library automatically link in when *** you link to this library. But I can only do this if you have a *** shared version of the library, which you do not appear to have *** because I did check the linker path looking for a file starting *** with libmysqlservices and none of the candidates passed a file format test *** using a file magic. Last file checked: /wsp/sje/mariadb/isvn/mariadb-project/5.3.1.beta/obj_gcc/libservices/libmysqlservices.a *** Warning: libtool could not satisfy all declared inter-library *** dependencies of module ha_federated. Therefore, libtool will create *** a static module, that should work as long as the dlopening *** application is linked with the -dlopen flag. libtool: link: ar cru .libs/ha_federated.a .libs/ha_federated_la-ha_federated.o .libs/ha_federated_la-string.o Steve Ellcey [email protected] _______________________________________________ Mailing list: https://launchpad.net/~maria-developers Post to : [email protected] Unsubscribe : https://launchpad.net/~maria-developers More help : https://help.launchpad.net/ListHelp

