On 12 March 2014 12:14, Michel Fortin <michel.for...@michelf.ca> wrote:
> On 2014-03-12 09:26:56 +0000, Iain Buclaw <ibuc...@gdcproject.org> said:
>> On 12 March 2014 07:10, Jacob Carlborg <d...@me.com> wrote:
>>> Yeah, since Objective-C uses the C calling convention it's mostly about
>>> outputting symbols and data to the object files.
>> In what ABI may I ask?  Your choices are:
>> - Traditional (32bit) ABI without properties and Obj-C 2.0 additions
>> - Traditional (32bit) ABI with properties and Obj-C 2.0 additions
>> - Modern (64bit) ABI
> I made the 32-bit legacy runtime support, Jacob added the 64-bit modern
> runtime support.
> There's no support at this time for properties declarations in the ABI, but
> it doesn't really have much impact. As far as I'm aware, Objective-C 2.0
> additions only include property declarations and attributes in the ABI.
>> That can be mixed in with either:
>> - GNU Runtime ABI
>> - NeXT Runtime ABI
> It's been tested with the Apple (NeXT) runtime only. In all honesty, I, and
> probably most people out there, don't care about the GNU runtime. Although
> probably the GCC guys do. Do you think it'd make it more difficult to merge
> GCC in the GCC project if it had support for Apple's runtime and not for the
> GNU one?

gobjc supports both, there's two ABI's for the NeXT - which I take to
mean the difference between the difference between 32bit and 64bit.

It seems that (now I read up on it) the GNU runtime came about from
decades back when NeXT was not open sourced by Apple.  From what I can
gather, a move towards the modern ABI is the direction, but not
considered production ready.

>From my POV, I wouldn't want to support the ABI of a language that GCC
itself doesn't support.  So code compiled by GNU ObjC should be
compatible with extern(ObjC) code generated by GDC - even if it isn't
compatible with Clang ObjC.  But then, I'd be surprised if it wasn't

> Also, is there a list of differences between the two runtimes somewhere?

That's hard to say at an initial glance.  There's a handy hook system
into each ABI to allow you to switch between versions easily.  The
common differences I do however see are:



Some which greps for s(n)printf also show:



Most others look the same?  Maybe you'll be able to find out more with
this information.

Reply via email to