Re: Symbol not found: ___umoddi3
Re: Symbol not found: ___umoddi3
- Subject: Re: Symbol not found: ___umoddi3
- From: patrick machielse <email@hidden>
- Date: Sun, 18 Sep 2011 21:51:42 +0200
Op 18 sep. 2011, om 14:26 heeft Patrick Mau het volgende geschreven:
> The function you are missing is normally part of libgcc and is called when you do 64-bit interger math on a 32 bit archtecture.
>
> Maybe you are compiling a universal 32/64 bit version and the users that run your app in 64-bit mode do not have that issue.
The application is '32-bit clean' (which anno 2011 means: no 64-bit binaries...).
What catches my eye is that the error states: 'Expected in: /usr/lib/libSystem.B.dylib', which is not true on Mac OS X 10.5.
Perhaps threre is a way to change this 'expectation', or a linker flag that instructs the runtime to search all linked libraries instead of 'expecting' the symbol to live in the library that was referenced in the link-time SDK?
User reports indicate that this error may not occur at startup, but at some later point while using the program. This symbol might be weak-linked?
patrick
> On 16.09.2011, at 22:50, patrick machielse wrote:
>
>> I'm running into a strange issue.
>>
>> We build our app against the 10.7 SDK + 10.5 deployment target using llvm.
>>
>> _Some_ of our users on 10.5.8 encounter the following problem with our binary:
>>
>> OS Version: Mac OS X 10.5.8 (9L31a)
>> Exception Type: EXC_BREAKPOINT (SIGTRAP)
>> Exception Codes: 0x0000000000000002, 0x0000000000000000
>> Crashed Thread: 3
>>
>> Dyld Error Message:
>> Symbol not found: ___umoddi3
>> Referenced from: /Applications/Binary.app/Contents/MacOS/Binary
>> Expected in: /usr/lib/libSystem.B.dylib
>>
>> From what I've managed to find out umoddi3 is a routine for doing 64bit math on 32bit systems.
>>
>> otool -L on our binary shows (detail):
>>
>> /usr/lib/libstdc++.6.dylib (compatibility version 7.0.0, current version 52.0.0)
>> /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 159.0.0)
>> /usr/lib/libgcc_s.1.dylib (compatibility version 1.0.0, current version 1105.0.0)
>>
>> On 10.5 ___umoddi3 is defined in libgcc_s.1.dylib
>> On 10.7 libgcc_s.1.dylib is a link to libSystem.B.dylib
>>
>> The strange thing: not all our 10.5.8 users seem to encounter this problem…
_______________________________________________
Do not post admin requests to the list. They will be ignored.
Xcode-users mailing list (email@hidden)
Help/Unsubscribe/Update your Subscription:
This email sent to email@hidden