On Sun, Mar 13, 2011 at 9:03 PM, Jack Howarth <howa...@bromo.med.uc.edu> wrote: > 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 >
Hi, I agree it is probably better to re-code things, but that will be impossible do before GCC 4.6 goes out. We have to make a decision: keep the LTO support for Mach-O in for now and recommend a non-recent Xcode, disable it for the GCC 4.6 release and for the GCC 4.5.x series. Ciao! Steven