diff options
| author | Paul Eggert | 2017-08-29 14:52:57 -0700 |
|---|---|---|
| committer | Paul Eggert | 2017-08-29 14:58:49 -0700 |
| commit | 9b4b2e9fc8dfd37ad8f44940a16330c477f896ea (patch) | |
| tree | 5bef08feb71816f3de5805465d966514ca13ff4b | |
| parent | e13bdfee1742a7cc1eff5dc3bfbe2d71ea3532ef (diff) | |
| download | emacs-9b4b2e9fc8dfd37ad8f44940a16330c477f896ea.tar.gz emacs-9b4b2e9fc8dfd37ad8f44940a16330c477f896ea.zip | |
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
| -rw-r--r-- | INSTALL | 18 | ||||
| -rw-r--r-- | configure.ac | 8 |
2 files changed, 9 insertions, 17 deletions
| @@ -339,17 +339,13 @@ Use --disable-silent-rules to cause 'make' to give more details about | |||
| 339 | the commands it executes. This can be helpful when debugging a build | 339 | the commands it executes. This can be helpful when debugging a build |
| 340 | that goes awry. 'make V=1' also enables the extra chatter. | 340 | that goes awry. 'make V=1' also enables the extra chatter. |
| 341 | 341 | ||
| 342 | Use --enable-link-time-optimization to enable link-time optimizer. If | 342 | Use --enable-link-time-optimization to enable link-time optimization. |
| 343 | you're using GNU compiler, this feature is supported since version 4.5.0. | 343 | With GCC, you need GCC 4.5.0 and later, and 'configure' arranges for |
| 344 | If 'configure' can determine number of online CPUS on your system, final | 344 | linking to be parallelized if possible. With Clang, you need GNU |
| 345 | link-time optimization and code generation is executed in parallel using | 345 | binutils with the gold linker and plugin support, along with the LLVM |
| 346 | one job per each available online CPU. | 346 | gold plugin <http://llvm.org/docs/GoldPlugin.html>. Link time |
| 347 | 347 | optimization is not the default as it tends to cause crashes and to | |
| 348 | This option is also supported for clang. You should have GNU binutils | 348 | make Emacs slower. |
| 349 | with 'gold' linker and plugin support, and clang with LLVMgold.so plugin. | ||
| 350 | Read http://llvm.org/docs/GoldPlugin.html for details. Also note that | ||
| 351 | this feature is still experimental, so prepare to build binutils and | ||
| 352 | clang from the corresponding source code repositories. | ||
| 353 | 349 | ||
| 354 | The '--prefix=PREFIXDIR' option specifies where the installation process | 350 | The '--prefix=PREFIXDIR' option specifies where the installation process |
| 355 | should put emacs and its data files. This defaults to '/usr/local'. | 351 | 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=" | |||
| 1041 | 1041 | ||
| 1042 | AC_ARG_ENABLE(link-time-optimization, | 1042 | AC_ARG_ENABLE(link-time-optimization, |
| 1043 | [AS_HELP_STRING([--enable-link-time-optimization], | 1043 | [AS_HELP_STRING([--enable-link-time-optimization], |
| 1044 | [build emacs with link-time optimization. | 1044 | [build with link-time optimization |
| 1045 | This requires GCC 4.5.0 or later, or clang. | 1045 | (experimental; see INSTALL)])]) |
| 1046 | (Note that clang support is experimental - see INSTALL.) | ||
| 1047 | It also makes Emacs harder to debug, and when we tried it | ||
| 1048 | with GCC 4.9.0 x86-64 it made Emacs slower, so it's not | ||
| 1049 | recommended for typical use.])], | ||
| 1050 | if test "${enableval}" != "no"; then | 1046 | if test "${enableval}" != "no"; then |
| 1051 | ac_lto_supported=no | 1047 | ac_lto_supported=no |
| 1052 | if test "$emacs_cv_clang" = yes; then | 1048 | if test "$emacs_cv_clang" = yes; then |