Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 7 Mar 2012 12:37:15 -0800
From:      Doug Hardie <>
To:        Volodymyr Kostyrko <>
Cc:        "" <>
Subject:   Re: Dynamic Libraries
Message-ID:  <>
In-Reply-To: <>
References:  <> <>

Next in thread | Previous in thread | Raw E-Mail | Index | Archive | Help

On 7 March 2012, at 01:40, Volodymyr Kostyrko wrote:

> Doug Hardie wrote:
>> 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 =
>> 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.
> This sounds exactly like compiling with clang through ccache. There =
are issues with clang and ccache cooperation. Actually the one you may =
hit is libtool detecting implicit fPIC requirement when running clang =
through ccache.

The Makefile specifies GCC and its FreeBSD 8.0.  I don't believe clang =
was in that soon, but I may be wrong.  How can I check that?  Where is =
clang?  I have installed 9.0 on another system but haven't had time to =
try that out yet.

Want to link to this message? Use this URL: <>