Sent from my iPhone
On 09/06/2012, at 7:22, Carson Gaspar <car...@taltos.org> wrote:
[ Much perl tsuris elided ]
;)
Folks keep talking about linking a static libfoo.a into a dynamic
libbar.so. This MUST NOT HAPPEN. Linking non-PIC code into a shared
object will fail in unpredictable ways.
Understood - this is why the old build system makes an archive library
full of PIC objects, to be linked into the DSO for Perl to dlopen().
It may _appear_ to work, but it really won't. The Solaris linker
will usually scream bloody murder and error out. Linux/gnu ld tend
to fail to enforce this, and leave the errors for runtime.
The libtool non-static convenience lib stuff sounds like it does the
right thing, but I haven't looked at it to be sure.
Yes it does - I checked the log to see that the objects that go into
it are built with -fPIC, then extracted an object from it with 'ar xv'
and used 'objdump -r' to make sure the object contained relocs against
the PLT and GOT, which only happens in PIC objects.
If I have some time this weekend, I'll try building the dev/libtool
branch and provide more feedback, as I install every package into
it's own tree, so I will trigger any missing RPATH issues.
Excellent, I'm looking forward to hearing how that goes.
If anyone out there builds on MacOS or BSD, it would be great if you
could build the dev/libtool branch and report your experiences.
--
Carson