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~