On Wed, Mar 16, 2011 at 03:50:20PM +0100, Richard Guenther wrote: > On Wed, 16 Mar 2011, Jack Howarth wrote: > > > The assembler bug in Xcode 3.2.6/4.0 only impacts darwin10, so lto can > > be renabled for darwin9 (for which it has been well tested on the regress > > server). Re-enabling lto for *-apple-darwin9 on darwin allows us to > > continue to monitor the status of darwin lto support while the containerized > > lto changes for PR48108 are completed. Okay for gcc trunk and 4.6.0? > > I'm ok with that if Mike is ok with it. > > Thanks, > Richard.
Richard, Thanks. After reviewing my e-mails with the darwin linker developer, I now recall that when Steve Bosscher implemented lto on darwin and had to resort to placing the gnu lto sections at the end. I asked the linker developer via radar about this approach. I was never able to get a clear response on that issue despite a couple attempts. While it is unfortunate that Apple disabled this feature, it could be considered undefined behavior in the sense that the mach-o format doesn't define an upper limit for non-relocation bearing sections. What is annoying is that this approach was declared invalid for mach-o without proper notification on the original radar. Hopefully Apple can improve its communication on such issues via radar. Jack > > > Jack > > ps While we could in theory enable it for darwin8 as well, that target is > > rather poorly tested compared to darwin9. > > > > 2011-03-16 Jack Howarth <howa...@bromo.med.uc.edu> > > > > * configure.ac: Re-enable LTO on *-apple-darwin9. > > * configure: Regenerate. > > > > Index: configure.ac > > =================================================================== > > --- configure.ac (revision 171047) > > +++ configure.ac (working copy) > > @@ -1743,7 +1743,7 @@ ACX_ELF_TARGET_IFELSE([# ELF platforms b > > build_lto_plugin=yes > > ],[if test x"$default_enable_lto" = x"yes" ; then > > case $target in > > - *-cygwin* | *-mingw*) ;; > > + *-apple-darwin9 | *-cygwin* | *-mingw*) ;; > > # On other non-ELF platforms, LTO has yet to be validated. > > *) enable_lto=no ;; > > esac > > > >