discuss-gnustep
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: QNX - GNUstep and Objective C


From: David Chisnall
Subject: Re: QNX - GNUstep and Objective C
Date: Fri, 8 Jan 2010 19:21:23 +0000

On 8 Jan 2010, at 18:59, bbceler wrote:

Error: Instance variables in GSAttrDictionary overlap superclass NSObject
Offset of first instance variable, statbuf, is 8
Last instance variable in superclass, isa, ends at offset 4
This probably means that you are subclassing a class from a library, which
has changed in a binary-incompatible way.

This one should have been fixed - I'm now allowing for alignment. If statbuf only requires alignment of 4 but is being aligned on an 8-byte boundary, then this is a bug in clang. If statbuf really requires alignment of 8 then it's a bug in libobjc2.

I don't think clang has a QNX target, so this may be the issue, but usually alignment is per-CPU, not per-target.

Error: Instance variables in GSLocalServerStream overlap superclass
GSSocketServerStream
Offset of first instance variable, _serverAddr, is 158
Last instance variable in superclass, _address, ends at offset 160
This probably means that you are subclassing a class from a library, which
has changed in a binary-incompatible way.

This one is more concerning. The sockaddr ivar from GSSocketServerStream appears to end two bytes after the first ivar declared in GSLocalServerStream.


Function __objc_compute_ivar_offsets() be called out 379 times.

Yes, it's called once per class.

For two
classes GSAttrDictionary and GSLocalServerStream appeared mistake.
It can from this was infer, that mistake however appears in different place
?

In both cases, the first instance variable is a structure, but I'm not sure that this makes a difference. Unfortunately, they're both structures from system headers, so I can't reproduce the same situation on other platforms...

Do you get different behaviour if you compile these two classes with GCC? I note that you're using the GCC ABI with clang, so you should get equivalent code from both compilers; if you don't then it's a bug.

David

-- Send from my Jacquard Loom




reply via email to

[Prev in Thread] Current Thread [Next in Thread]