summaryrefslogtreecommitdiff
path: root/docs
diff options
context:
space:
mode:
authorBen Gamari <ben@smart-cactus.org>2018-11-26 17:21:12 -0500
committerMarge Bot <ben+marge-bot@smart-cactus.org>2019-03-05 22:22:40 -0500
commit37f257afcd6a52cf4d76c60d766b1aeb520b9f05 (patch)
treeac800e46fbf94c16ce39170f4a720637b07dde06 /docs
parent646b6dfbe125aa756a935e840979ba11b4a882c0 (diff)
downloadhaskell-37f257afcd6a52cf4d76c60d766b1aeb520b9f05.tar.gz
Rip out object splitting
The splitter is an evil Perl script that processes assembler code. Its job can be done better by the linker's --gc-sections flag. GHC passes this flag to the linker whenever -split-sections is passed on the command line. This is based on @DemiMarie's D2768. Fixes Trac #11315 Fixes Trac #9832 Fixes Trac #8964 Fixes Trac #8685 Fixes Trac #8629
Diffstat (limited to 'docs')
-rw-r--r--docs/storage-mgt/rp.tex1
-rw-r--r--docs/users_guide/8.8.1-notes.rst5
-rw-r--r--docs/users_guide/packages.rst4
-rw-r--r--docs/users_guide/phases.rst19
4 files changed, 8 insertions, 21 deletions
diff --git a/docs/storage-mgt/rp.tex b/docs/storage-mgt/rp.tex
index 2f83532893..199b284b19 100644
--- a/docs/storage-mgt/rp.tex
+++ b/docs/storage-mgt/rp.tex
@@ -173,7 +173,6 @@ Installing the GHC is done as follows:
\begin{code}
./fptools/mk vi build.mk
GhcHcOpts = -O -fasm -Rghc-timing
- SplitObjs = NO
GhcRtsHcOpts =
GhcRtsCcOpts = -g
STRIP_CMD =:
diff --git a/docs/users_guide/8.8.1-notes.rst b/docs/users_guide/8.8.1-notes.rst
index c5bc89a586..8ca0433ba4 100644
--- a/docs/users_guide/8.8.1-notes.rst
+++ b/docs/users_guide/8.8.1-notes.rst
@@ -92,6 +92,11 @@ Compiler
taking advantage of :extension:`DerivingStrategies`. The warning is supplied at each
``deriving`` site.
+- Support for object splitting with the flag ``-split-objs`` is removed. Using
+ this flag now results in a warning and does nothing. Use
+ :ghc-flag:`-split-sections` instead.
+
+
Runtime system
~~~~~~~~~~~~~~
diff --git a/docs/users_guide/packages.rst b/docs/users_guide/packages.rst
index 632162f6c8..9383b8ad68 100644
--- a/docs/users_guide/packages.rst
+++ b/docs/users_guide/packages.rst
@@ -1023,9 +1023,9 @@ extra indirection).
``HSfoo.o`` file that has been pre-linked. Loading the ``.o`` file is
slightly quicker, but at the expense of having another copy of the
compiled package. The rule of thumb is that if the modules of the
- package were compiled with :ghc-flag:`-split-objs` then building the
+ package were compiled with :ghc-flag:`-split-sections` then building the
``HSfoo.o`` is worthwhile because it saves time when loading the
- package into GHCi. Without :ghc-flag:`-split-objs`, there is not much
+ package into GHCi. Without :ghc-flag:`-split-sections`, there is not much
difference in load time between the ``.o`` and ``.a`` libraries, so
it is better to save the disk space and only keep the ``.a`` around.
In a GHC distribution we provide ``.o`` files for most packages
diff --git a/docs/users_guide/phases.rst b/docs/users_guide/phases.rst
index f5f735b81b..0f70368047 100644
--- a/docs/users_guide/phases.rst
+++ b/docs/users_guide/phases.rst
@@ -732,21 +732,6 @@ for example).
option for Apple's Linker (``-F`` already means something else for
GHC).
-.. ghc-flag:: -split-objs
- :shortdesc: Split objects (for libraries)
- :type: dynamic
- :category: linking
-
- Tell the linker to split the single object file that would normally
- be generated into multiple object files, one per top-level Haskell
- function or type in the module. This only makes sense for libraries,
- where it means that executables linked against the library are
- smaller as they only link against the object files that they need.
- However, assembling all the sections separately is expensive, so
- this is slower than compiling normally. Additionally, the size of
- the library itself (the ``.a`` file) can be a factor of 2 to 2.5
- larger.
-
.. ghc-flag:: -split-sections
:shortdesc: Split sections for link-time dead-code stripping
:type: dynamic
@@ -758,9 +743,7 @@ for example).
output file.
When linking, the linker can automatically remove all unreferenced sections
- and thus produce smaller executables. The effect is similar to
- :ghc-flag:`-split-objs`, but somewhat more efficient - the generated library
- files are about 30% smaller than with :ghc-flag:`-split-objs`.
+ and thus produce smaller executables.
.. ghc-flag:: -static
:shortdesc: Use static Haskell libraries