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)

Attachment: pgpAWHZ4rNFFt.pgp
Description: PGP signature

Reply via email to