On 12/04/2011 01:32 PM, Iain Sandoe wrote: > where is "_CALL_DARWIN" supposed to come from? (it is not defined by the > preprocessor AFAICT). > > I can produce a patch to add it if that's an oversight in the Darwin port.
It certainly is, or is supposed to be: > switch (rs6000_current_abi) > { > case ABI_V4: > builtin_define ("_CALL_SYSV"); > break; > case ABI_AIX: > builtin_define ("_CALL_AIXDESC"); > builtin_define ("_CALL_AIX"); > break; > case ABI_DARWIN: > builtin_define ("_CALL_DARWIN"); > break; > default: > break; > } >> Dropped the %r entirely and using bare numbers, which is what the compiler >> emits by default. > > not for the darwin version - it needs the 'r,v, and f' :-( > (sorry, .. working on binutils but it's gonna take some more time) Oh poo. > no - which is why I also need to cook up an eh_frame section by hand > sometime... (likewise on Darwin x86) It only matters for debugging. We'll never try to throw an exception across it. I'll not be keen on hand-written eh_frame sections. > Works OK modulo " bl name" needs the __USER_LABEL_PREFIX__ Ah, right. Duh. > how about? > > __ELF__ > .macro CALL name > bl \name > .endm Sound ok. r~