Using libtool to package whole archives in shared library

"Andy Falanga (afalanga)" <[email protected]>
Newsgroups gmane.comp.gnu.libtool.general
Message-ID <[email protected]>
I'm working on converting a home-grown makefile mess to using the autotools (the GNU build system) for building and deploying our shared library.  The shared library exists in two forms: a traditional C++ *.so and a python module which is also a *.so but is, obviously, consumable by python only.  The directory structure looks like this:

Main  (has a Makefile.am and configure.ac files)
  |
  |-Shared
  |    |
  |    |- HwMgmt  (Makefile.am, makes libhwmgmt.a and libhwmgmt.so)
  |    |- Misc    (Makefile.am, likewise for libmisc)
  |
  |-sata  (Makefile.am, produces libsatacpp.so and sata.so)
  |   |
  |   |-satacpp   (sources for the C++ API for SATA lib)
  |   |
  |   |-sata      (sources wrapping satacpp,hwmgmt,misc in boost.python)

In our home-grown system, we build HwMgmt, Misc and satacpp into *.a files and then, when building sata.so for python these *.a files were wrapped between -Wl,--whole-archive ... -Wl,--no-whole-archive.  I've got to replicate this into the GNU Build System.  I've tried several attempts and nothing has yet worked.  Using the GNU docs, I've placed these libraries using

 sata_la_LIBADD = /path/to/libsatacpp.la /path/to/libHwMgmt.la ...

Which links with the dynamic libraries built earlier.  This isn't what I'm after.  I've tried something like this:

 sata_la_LDFLAGS = -Wl,--whole-archive /path/to/libsatacpp.a ... -Wl,--no-whole-archive

This variable is preserved throughout Makefile.in and Makefile.  However, when make is run, it seems that libtool yanks the libraries between --whole-archive and --no-whole-archive and places them elsewhere.  That is, I always ended with "-Wl,--whole-archive   -Wl,--no-whole-archive" with my *.a file unceremoniously moved to a different place in the command line.

What is the proper way to tell libtool to wrap the entire batch of symbols into the final python library?

I'm using CentOS 6 which, sadly, prefers to be older than the hills in its toolset.  The versions are as follows:
	autoconf: 2.63  (I think I recently updated this for something unrelated)
	automake: 1.11.1
	libtool: 2.2.6b  (This one appears to be woefully old)

Thanks,
Andy

_______________________________________________
https://lists.gnu.org/mailman/listinfo/libtool
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.