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~

Reply via email to