[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