Dynamic Libraries

Roland Smith rsmith at xs4all.nl
Wed Mar 7 22:25:34 UTC 2012


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)
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 196 bytes
Desc: not available
Url : http://lists.freebsd.org/pipermail/freebsd-questions/attachments/20120307/a2df7b73/attachment.pgp


More information about the freebsd-questions mailing list