>From 8078980022fa6a78a4f34d2abb66d2d9b8509a5e Mon Sep 17 00:00:00 2001 From: Paul Eggert Date: Tue, 29 Aug 2017 14:52:57 -0700 Subject: [PATCH 4/4] 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 --- INSTALL | 18 +++++++----------- configure.ac | 8 ++------ 2 files changed, 9 insertions(+), 17 deletions(-) diff --git a/INSTALL b/INSTALL index 33084b9da3..b018055f02 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 3dee40704d..609ecdc8f1 100644 --- a/configure.ac +++ b/configure.ac @@ -1041,12 +1041,8 @@ AC_DEFUN 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 -- 2.13.5