-fPIC changes sizeof class
Mon Aug 10 09:06:00 GMT 2009
Alan M. Carroll wrote:
> I have chased down a crash in my code to -fPIC changing the
> size of a class.
That seems odd.
> My overall project uses some static libraries which are
> compiled without -fPIC and some dynamic libraries that use
> -fPIC. The effect is that if I use a template class in a static
> library and a dynamic library that links to the static library,
> I have to compile the static library with -fPIC as well.
Well, yes. generally speaking, all code in a DSO should be
PIC, and that includes code pulled in from libraries.
> According to the documentation this flag shouldn't have any
> effect at all because I am building for 64 bit Intel.
I can't find that reference. Can you please quote the section to
which you are referring?
> My question is, is this expected behavior? Or should I try to
> get a smaller example that demonstrates the problem?
I can't see why the size of a class should change. However, it's
not a good idea to mix PIC and non-PIC in a DSO.
More information about the Gcc-help