On Wed, Mar 07, 2012 at 12:53:13AM -0800, Doug Hardie wrote: > All this works just fine on i386. However, when I compile everything on > AMD64 I get an error message that says the lower level library needs to be > compiled with fPIC. If I add that to the Makefile for the lower level > library and rebuild everything, it all works again. I don't understand why > the fPIC is required for AMD64.
It is a requirement of the architecture. It is explained e.g. in: http://www.technovelty.org/code/c/amd64-pic.html > Also, how do I tell if the lower level library is being dynamically linked > at run time, or being directly incorporated into the mid level library or > top level application? Examine the application with 'ldd -a <binary>'. That will give you a list of all dynamic objects used by an application, and for each of those dynamic objects the dynamic objects that they depend on. See ldd(1). If your low-level libraries don't show up in that, they are not dynamically loaded. Roland -- R.F.Smith http://www.xs4all.nl/~rsmith/ [plain text _non-HTML_ PGP/GnuPG encrypted/signed email much appreciated] pgp: 1A2B 477F 9970 BA3C 2914 B7CE 1277 EFB0 C321 A725 (KeyID: C321A725)
pgpAWHZ4rNFFt.pgp
Description: PGP signature