[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