On Sun, Mar 13, 2011 at 08:42:58PM +0100, Steven Bosscher wrote:
> (sorry Chris, I forgot the list)
> 
> On Mar 13, 2011,@11:59 AM, Chris Lattner wrote:
> 
> > Sorry, I actually mean 255 of course, because of the NO_SECT
> > sentinel.  Here are the relevant bits from nlist.h.  I'm not
> > sure how you expect the toolchain to store more than 256
> > sections in a uint8_t.
> 
> How self-righteous, and misinformed.
> 
> No-one is expecting to store >256 in a uint8_t. The structures you
> quote only apply to symbol tables, which are references into sections
> in Mach-O. But not all sections have symbols. None of the sections in
> the GNU_LTO segment have symbols.
> 
> The documentation you should be quoting is the part about Mach-O
> loader commands, and there is no limit AFAICT on the number of
> LC_SEGMENT/LC_SEGMENT_64 loader commands. There is also nothing in the
> segment command structures that suggests a limit of 255 sections.
> 
> Besides, it worked before, which suggests that, well, it worked.
> 
> This is not the limitation of Mach-O you are looking for.
> 
> Ciao!
> Steven

Steven,
   While I agree that we are likely correct in the details of this
problem, I suspect we will be unsuccessful in getting Apple to revert
this change. Even if they do so, it is likely to be for Xcode 4.0.1
only (since the 3.2.x series is being depreciated) and at best we
might see the fix in 6-9 months if not later. It is far better, despite
the pain, to recode this in order to protect ourselves in the future
from arbitary changes in Xcode. IMHO, one major problem is that Apple has
left mach-o poorly documented in some areas which leaves them the
lattitude to redefine the corner cases like this as they please.
                    Jack

Reply via email to