Matthias Urlichs wrote:
Hi,
Robert Kern:
Not really, no. In many cases (e.g., GNU ld), there's simply no way to tell the linker that you prefer static libraries to shared libraries when you are building a shared library like a Python extension. You simply have to make sure that the static libraries are found first.
Note: Linking static code (gcc without -fpic => foo.o => libfoo.a) into a shared library (lib*.so) is a bad idea. On i386, the required relocation means that the static library's text is not shared between concurrent invocations, and loading the library is more expensive too. On some other architectures, either linking the library, or loading it, will simply fail.
You need to build an archive of shared objects (same as above, but use -fpic or equivalent). These are usually named lib*_pic.a IIRC.
On OS X (the platform Chris is building for), -fPIC is the default for everything, so the operation is fairly safe, if not optimal. -- Robert Kern robert.kern@gmail.com "In the fields of hell where the grass grows high Are the graves of dreams allowed to die." -- Richard Harter