Date: Wed, 7 Mar 2012 00:53:13 -0800 From: Doug Hardie <bc979@lafn.org> To: "questions@FreeBSD.org" <questions@freebsd.org> Subject: Dynamic Libraries Message-ID: <E64D58F0-0EDD-46A1-B022-2CC8BB64BC29@lafn.org>
next in thread | raw e-mail | index | archive | help
I have encountered something that I do not understand. Everything works = fine. Basically I have a bunch of user modules (low level) that are = built into a dynamic library. If I write top level code that calls = modules in that library, everything works just fine on i386 and AMD64. = However, the application involved has another library of modules. Some = of them call modules in the low level library. The top level code call = modules in both libraries. Often when it calls a module in the mid = level library, that module calls several modules in the low level = library. 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. 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? Since both of these libraries are = quite large, and they are in use by a number of top level applications, = I want just one copy to exist in physical memory.=
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?E64D58F0-0EDD-46A1-B022-2CC8BB64BC29>