[Haskell-cafe] GHCi fails to load C++ object files (missing symbol)
Mark Wright
markwright at internode.on.net
Thu Mar 8 13:21:36 CET 2012
On Thu, 8 Mar 2012 12:55:51 +0100, Yves Parès <yves.pares at gmail.com> wrote:
> Thanks Mark!
> It works also here, and even without the "-fpic" flag. Was it necessary for
> you?
Hi Yves,
Yes it is necessary for me to use -fpic when building C/C++ shared libraries as:
- I'm on amd64
- Its a Gentoo developer policy to compile C/C++ shared libraries with -fPIC
(same as -fpic on amd64) on amd64:
http://devmanual.gentoo.org/archs/amd64/index.html
Its normal to compile and link all the C/C++ with -fpic or -fPIC when
building shared libraries.
It might work without -fpic on x86 (32 bit):
http://www.mail-archive.com/gentoo-dev@gentoo.org/msg01420.html
"2) If it needs an -fPIC to compile on a non-x86 arch, it actually also
needs -fPIC on x86 -- not to get the thing to compile correctly of
course but for another reason: to avoid wasting memory when the code is
used. Non-PIC library code on x86 wastes memory when used, even though
it technically "works". The dynamic loader is forced to create a private
copy for each process using the non-PIC code, defeating one of the main
reasons of using shared libraries in the first place -- to conserve RAM."
Thanks, Mark
More information about the Haskell-Cafe
mailing list