On Sun, Mar 13, 2011 at 09:38:06PM +0100, Steven Bosscher wrote: > 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.
Steven, Did I misread you message at... http://gcc.gnu.org/ml/gcc-bugs/2011-03/msg01336.html as it seems to suggest otherwise? We do need a clear answer from Apple about how n_sect is validated though (per segment or per file). Jack > > Ciao! > Steven