From: Paul Eggert Date: Tue, 29 Aug 2017 21:52:57 +0000 (-0700) Subject: Be more conservative in link time optimization doc X-Git-Tag: emacs-26.0.90~307 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=9b4b2e9fc8dfd37ad8f44940a16330c477f896ea;p=emacs.git Be more conservative in link time optimization doc While testing --enable-link-time-optimization with GCC 7.1.1 I ran into a serious GCC code-generation bug which makes me think that --enable-link-time-optimization should be discouraged for typical installs (Bug#28213). See: https://bugzilla.redhat.com/show_bug.cgi?id=1486455 --- diff --git a/INSTALL b/INSTALL index 33084b9da38..b018055f028 100644 --- a/INSTALL +++ b/INSTALL @@ -339,17 +339,13 @@ Use --disable-silent-rules to cause 'make' to give more details about the commands it executes. This can be helpful when debugging a build that goes awry. 'make V=1' also enables the extra chatter. -Use --enable-link-time-optimization to enable link-time optimizer. If -you're using GNU compiler, this feature is supported since version 4.5.0. -If 'configure' can determine number of online CPUS on your system, final -link-time optimization and code generation is executed in parallel using -one job per each available online CPU. - -This option is also supported for clang. You should have GNU binutils -with 'gold' linker and plugin support, and clang with LLVMgold.so plugin. -Read http://llvm.org/docs/GoldPlugin.html for details. Also note that -this feature is still experimental, so prepare to build binutils and -clang from the corresponding source code repositories. +Use --enable-link-time-optimization to enable link-time optimization. +With GCC, you need GCC 4.5.0 and later, and 'configure' arranges for +linking to be parallelized if possible. With Clang, you need GNU +binutils with the gold linker and plugin support, along with the LLVM +gold plugin . Link time +optimization is not the default as it tends to cause crashes and to +make Emacs slower. The '--prefix=PREFIXDIR' option specifies where the installation process should put emacs and its data files. This defaults to '/usr/local'. diff --git a/configure.ac b/configure.ac index 3dee40704dd..609ecdc8f1a 100644 --- a/configure.ac +++ b/configure.ac @@ -1041,12 +1041,8 @@ edit_cflags=" AC_ARG_ENABLE(link-time-optimization, [AS_HELP_STRING([--enable-link-time-optimization], - [build emacs with link-time optimization. - This requires GCC 4.5.0 or later, or clang. - (Note that clang support is experimental - see INSTALL.) - It also makes Emacs harder to debug, and when we tried it - with GCC 4.9.0 x86-64 it made Emacs slower, so it's not - recommended for typical use.])], + [build with link-time optimization + (experimental; see INSTALL)])]) if test "${enableval}" != "no"; then ac_lto_supported=no if test "$emacs_cv_clang" = yes; then