linker_unload
Simon Marlow
marlowsd at gmail.com
Thu Dec 4 08:54:04 UTC 2014
On 03/12/2014 13:13, Joachim Breitner wrote:
> Hi,
>
>
> Am Mittwoch, den 03.12.2014, 11:18 +0100 schrieb Herbert Valerio Riedel:
>> On 2014-12-03 at 09:48:58 +0100, Simon Peyton Jones wrote:
>> For a non-failing linker_unload environment, the testprogram is linked
>> against libgmp.so:
>>
>> $ ldd tests/rts/linker_unload
>> linux-vdso.so.1 => (0x00007fff20f6c000)
>> libgmp.so.10 => /usr/lib/x86_64-linux-gnu/libgmp.so.10 (0x00007f83c5bbb000)
>> libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007f83c58b5000)
>> librt.so.1 => /lib/x86_64-linux-gnu/librt.so.1 (0x00007f83c56ac000)
>> libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007f83c54a8000)
>> libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f83c50e3000)
>> libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007f83c4ec4000)
>> /lib64/ld-linux-x86-64.so.2 (0x00007f83c5e76000)
>
> and for a failing, it is not.
>
>
> I further narrowed it down to the question of whether gcc passes
> "--as-needed" to ld by default: If I pass "-optl-Wl,--no-as-needed" to
> ghc when compiling linker_unload.c, it works there as well.
>
>
> In some releases of Ubuntu, --as-needed is the default¹. Not sure why
> Herbert does not see this behavior in a recent release (14.04).
>
> I’m also not sure about the right fix: Should we just pass
> -Wl,--no-as-needed to gcc always? But clearly there is a reason for this
> flag becoming default. Can we set up things so that they work with
> --as-needed?
No, I don't think we should do that. We should play nicely with however
the platform decides it wants to do linking.
Cheers,
Simon
More information about the ghc-devs
mailing list