http://gcc.gnu.org/bugzilla/show_bug.cgi?id=48086
Steven Bosscher <steven at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |steven at gcc dot gnu.org --- Comment #8 from Steven Bosscher <steven at gcc dot gnu.org> 2011-03-13 09:59:30 UTC --- (In reply to comment #7) > Blocks bootstrap on a primary target; shouldn't it be P1/critical? I don't think so, for the following reasons. First of all, there are no primary targets in *-apple-darwin*. The only Apple target in the release criteria is i686-apple-darwin which is a secondary target (xf. http://gcc.gnu.org/gcc-4.6/criteria.html). But IMVHO this is not a problem in GCC. LTO worked before, and now does not work anymore due to a change in software that GCC has no control over. This is a regression in Apple XCode. Even now, I can't find anywhere in the documentation of the Mach-O file format that there is a limitation to 255 sections per segment (xf. http://developer.apple.com/library/mac/#documentation/DeveloperTools/Conceptual/MachORuntime/Reference/reference.html). There is a limitation of 255 for sections with relocations, but that is not applicable with GCC's LTO sections, because there are no relocations. Call me paranoid, but I find it a suspicious coincidence that XCode 3.2.5 accepts GCC's LTO model, but Xcode 3.2.6 and newer do not, and this change happens days before GCC's first release with LTO for Apple... The XCode developers know that GCC can use more than 255 sections, because we explicitly discussed this with XCode developers when I developed LTO for Mach-O.