https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71767
--- Comment #38 from Eric Gallager <egall at gwmail dot gwu.edu> --- (In reply to Iain Sandoe from comment #34) > (In reply to Eric Gallager from comment #33) > > I'm not sure if this is due to the patches from this bug report, or if it's > > due to some other change made to GCC recently, but my fork of Emacs now > > fails to build with LTO due to a bunch of undefined local symbols: > > honestly, rather hard to tell from the info given, please can you identify > what you've built (and what version) and on what Darwin etc. $ /usr/local/bin/gcc -v Using built-in specs. COLLECT_GCC=/usr/local/bin/gcc COLLECT_LTO_WRAPPER=/usr/local/libexec/gcc/i386-apple-darwin9.8.0/7.0.0/lto-wrapper Target: i386-apple-darwin9.8.0 Configured with: ../configure --disable-werror --disable-werror-always --enable-languages=c,c++,lto,objc,obj-c++ --enable-stage1-checking=release -C --with-system-libunwind --enable-secureplt --enable-frame-pointer --enable-debug --with-isl --enable-objc-gc --enable-host-shared --enable-maintainer-mode --with-ld64 CC=/usr/local/bin/gcc CXX=/usr/local/bin/g++ : (reconfigured) ../configure --disable-werror --disable-werror-always --enable-languages=c,c++,lto,objc,obj-c++ --enable-stage1-checking=release -C --with-system-libunwind --enable-secureplt --enable-frame-pointer --enable-debug --with-isl --enable-objc-gc --enable-host-shared --enable-maintainer-mode --with-ld64 CC=/usr/local/bin/gcc CXX=/usr/local/bin/g++ Thread model: posix gcc version 7.0.0 20161005 (experimental) (GCC) $ uname -a Darwin ian-gallagers-macbook.local 9.8.0 Darwin Kernel Version 9.8.0: Wed Jul 15 16:55:01 PDT 2009; root:xnu-1228.15.4~1/RELEASE_I386 i386 There were also a bunch of -Wlto-type-mismatch warnings when linking, but they were there before, so I trimmed them off. > > > I was figuring it might have something to do with this patch because this > > patch messed with the "L_" prefixing of symbols. GCC's LTO worked with my > > fork of Emacs a few months ago. > > yeah, it's possible - although if you look at the logic that adds the "L" > onto objc local syms it wasn't touched (and they shouldn't pass equality > test with "LC" either). > > Can you find any reproducer smaller than "emacs" ? > > I have a current build of 241437 under test with rebased patches and it > doesn't show this in the LTO tests in the test-suite. However it might be > being hidden by some other error. [I'll re-test with my work-around for > instancetype applied]. (In reply to Jack Howarth from comment #35) > (In reply to Eric Gallager from comment #33) > > I'm not sure if this is due to the patches from this bug report, or if it's > > due to some other change made to GCC recently, but my fork of Emacs now > > fails to build with LTO due to a bunch of undefined local symbols: > > Did you actually add the patches for this bug report to your local gcc > build? The patches haven't been posted to gcc-patches yet or committed into > trunk. Yes, I did, I posted test results with them above in this bug, too. I had also applied a few other patches from gcc-patches that hadn't been committed to trunk yet. This actually caused a conflict with the patch from this bug that touched the gcc subdirectory's configure script, so I had to regenerate that manually.