[commit: ghc] ghc-8.2: relnotes: Address split sections and linker changes (78ef8f2)

git at git.haskell.org git at git.haskell.org
Sat Jul 22 21:20:55 UTC 2017


Repository : ssh://git@git.haskell.org/ghc

On branch  : ghc-8.2
Link       : http://ghc.haskell.org/trac/ghc/changeset/78ef8f2fc495545c49d222abccbe337dd41cabbb/ghc

>---------------------------------------------------------------

commit 78ef8f2fc495545c49d222abccbe337dd41cabbb
Author: Ben Gamari <ben at smart-cactus.org>
Date:   Fri Jul 21 18:10:06 2017 -0400

    relnotes: Address split sections and linker changes
    
    Thanks to @duog for mentioning that this wasn't covered.


>---------------------------------------------------------------

78ef8f2fc495545c49d222abccbe337dd41cabbb
 docs/users_guide/8.2.1-notes.rst | 31 +++++++++++++++++++++++--------
 1 file changed, 23 insertions(+), 8 deletions(-)

diff --git a/docs/users_guide/8.2.1-notes.rst b/docs/users_guide/8.2.1-notes.rst
index 540d22c..fdd7d48 100644
--- a/docs/users_guide/8.2.1-notes.rst
+++ b/docs/users_guide/8.2.1-notes.rst
@@ -45,6 +45,29 @@ Language
 Compiler
 ~~~~~~~~
 
+- GHC will now use ``ld.gold`` or ``ld.lld`` instead of the system's default
+  ``ld``, if available. Linker availability will be evaluated at ``configure``
+  time. The user can manually override which linker to use by passing the ``LD``
+  variable to ``configure``. You can revert to the old behavior of using the
+  system's default ``ld`` by passing the ``--disable-ld-override`` flag to
+  ``configure``.
+
+- GHC now uses section splitting (i.e. :ghc-flag:`-split-sections`) instead of
+  object splitting (i.e. :ghc-flag:`-split-objs`) as the default mechanism for
+  linker-based dead code removal. While the effect is the same, split sections
+  tends to produce significantly smaller objects than split objects and more
+  closely mirrors the approach used by other compilers. Split objects will
+  be deprecated and eventually removed in a future GHC release.
+
+  Note that some versions of the ubiquitous BFD linker exhibit performance
+  trouble with large libraries with section splitting enabled (see
+  :ghc-ticket:`13739`). It is recommended that you use either the ``gold`` or
+  ``lld`` linker if you observe this. This will require that you install one of
+  these compilers, rerun ``configure``, and reinstall GHC.
+
+  Split sections is enabled by default in the official binary distributions for
+  platforms that support it.
+
 - Old profiling flags ``-auto-all``, ``-auto``, and ``-caf-all`` are deprecated
   and their usage provokes a compile-time warning.
 
@@ -317,14 +340,6 @@ Runtime system
 - advapi32, shell32 and user32 are now automatically loaded in GHCi. libGCC is also
   loaded when a depencency requires it. See :ghc-ticket:`13189`.
 
-Build system
-~~~~~~~~~~~~
-
-- GHC will now use ``ld.gold`` or ``ld.lld`` instead of the system's default
-  ``ld``, if available. Linker availability will be evaluated at ``configure``
-  time. The user can manually override which linker to use by passing the ``LD``
-  variable to ``configure``.
-
 hsc2hs
 ~~~~~~
 



More information about the ghc-commits mailing list