atexit: undefined symbol in 64bit
Lane Brooks
lbrooks at MIT.EDU
Mon Nov 13 17:40:00 UTC 2006
Jakub Jelinek wrote:
> On Mon, Nov 13, 2006 at 11:29:06AM -0500, Lane Brooks wrote:
>> I have the 32b and 64b version of a third party shared library that I am
>> trying to link against. I can link fine against the 32b version on a
>> 32b FC5 machine just fine. The 64b version (also on FC5), however,
>> gives the following error:
>>
>> /usr/bin/ld: ./ams_read: hidden symbol `atexit' in
>> /usr/lib64/libc_nonshared.a(atexit.oS) is referenced by DSO
>> /usr/bin/ld: final link failed: Nonrepresentable section on output
>> collect2: ld returned 1 exit status
>>
>> Any ideas on what the problem is? Is it a problem with FC5 or with the
>> shared library?
>
> In the third party shared library. Most probably it was incorrectly
> linked with ld -shared instead of gcc -shared (or g++ -shared).
>
> Jakub
>
Is there a way to work around this issue? While I can ask the third
party to compile differently, I am not sure they will change and even if
they do change, it will be months (perhaps even a year) before they
release a new version.
Why is this problem specific to amd64 version? The third party releases
their software for RHEL4, and I am guessing it does not have this issue.
What is different in FC5 and FC6?
Thanks,
Lane
More information about the fedora-list
mailing list