Update -ffunction/data-sections documentation
authorSebastian Huber <sebastian.huber@embedded-brains.de>
Wed, 18 Oct 2017 07:36:38 +0000 (07:36 +0000)
committerSebastian Huber <sh@gcc.gnu.org>
Wed, 18 Oct 2017 07:36:38 +0000 (07:36 +0000)
gcc/
* doc/invoke.texi (ffunction-sections and fdata-sections):
Update.

From-SVN: r253842

gcc/ChangeLog
gcc/doc/invoke.texi

index c8a4680cc683044d50b9e248dbd16da1196abb38..a59161d9b544aecafc212e0cfeab6a3870d7948a 100644 (file)
@@ -1,3 +1,8 @@
+2017-10-18  Sebastian Huber  <sebastian.huber@embedded-brains.de>
+
+       * doc/invoke.texi (ffunction-sections and fdata-sections):
+       Update.
+
 2017-10-17  Eric Botcazou  <ebotcazou@adacore.com>
 
        * tree-ssa-loop-ivopts.c (add_autoinc_candidates): Bail out only if
index 6518ac0be374066d0d761e36cb828e158f685ff7..5e88279528f4b320b689e84accb059390ec088e7 100644 (file)
@@ -9712,18 +9712,26 @@ file if the target supports arbitrary sections.  The name of the
 function or the name of the data item determines the section's name
 in the output file.
 
-Use these options on systems where the linker can perform optimizations
-to improve locality of reference in the instruction space.  Most systems
-using the ELF object format and SPARC processors running Solaris 2 have
-linkers with such optimizations.  AIX may have these optimizations in
-the future.
-
-Only use these options when there are significant benefits from doing
-so.  When you specify these options, the assembler and linker
-create larger object and executable files and are also slower.
-You cannot use @command{gprof} on all systems if you
-specify this option, and you may have problems with debugging if
-you specify both this option and @option{-g}.
+Use these options on systems where the linker can perform optimizations to
+improve locality of reference in the instruction space.  Most systems using the
+ELF object format have linkers with such optimizations.  On AIX, the linker
+rearranges sections (CSECTs) based on the call graph.  The performance impact
+varies.
+
+Together with a linker garbage collection (linker @option{--gc-sections}
+option) these options may lead to smaller statically-linked executables (after
+stripping).
+
+On ELF/DWARF systems these options do not degenerate the quality of the debug
+information.  There could be issues with other object files/debug info formats.
+
+Only use these options when there are significant benefits from doing so.  When
+you specify these options, the assembler and linker create larger object and
+executable files and are also slower.  These options affect code generation.
+They prevent optimizations by the compiler and assembler using relative
+locations inside a translation unit since the locations are unknown until
+link time.  An example of such an optimization is relaxing calls to short call
+instructions.
 
 @item -fbranch-target-load-optimize
 @opindex fbranch-target-load-optimize