This patch adds documentation for several options that the GCC driver
passes to the linker via specs without further interpretation.  I've
also added some comments/documentation strings to common.opt for these
and a couple other options that previously didn't have any.

gcc/ChangeLog
        PR other/122243
        * common.opt: Add comments/documentation for -N, -Q, -S, -T,
        -Tbss, -Tdata, -Ttext, -Z, -n, -Q, -s, -t, -z.
        * doc/invoke.texi: Add documentation for -Tbss, -Tdata, -Ttext,
        -N, -n, -t, -Z.
---
 gcc/common.opt      | 20 +++++++++++++++++++-
 gcc/doc/invoke.texi | 25 ++++++++++++++++++++-----
 2 files changed, 39 insertions(+), 6 deletions(-)

diff --git a/gcc/common.opt b/gcc/common.opt
index 9cbd2d8a794..cb8732d9336 100644
--- a/gcc/common.opt
+++ b/gcc/common.opt
@@ -457,6 +457,7 @@ Driver Joined Separate
 
 N
 Driver
+Passed to the linker.
 
 O
 Common JoinedOrMissing Optimization
@@ -478,8 +479,10 @@ Oz
 Common Optimization
 Optimize for space aggressively rather than speed.
 
+; Driver passes -quiet to the front end if -Q is not specified.
 Q
 Driver
+-Q --help prints what options are enabled.  Just -Q enables verbose messages.
 
 Qn
 Driver Negative(Qy)
@@ -492,27 +495,35 @@ Driver Joined Separate
 
 S
 Driver
+Stop processing after generating assembly code; do not assemble.
 
 T
 Driver Joined Separate
+Passed to the linker.
 
 Tbss
 Driver Separate
+Passed to the linker.
 
 Tbss=
 Driver Joined
+Passed to the linker.
 
 Tdata
 Driver Separate
+Passed to the linker.
 
 Tdata=
 Driver Joined
+Passed to the linker.
 
 Ttext
 Driver Separate
+Passed to the linker.
 
 Ttext=
 Driver Joined
+Passed to the linker.
 
 W
 Common RejectNegative Warning Alias(Wextra)
@@ -929,6 +940,7 @@ Driver Separate
 
 Z
 Driver
+Passed to the linker.
 
 aux-info
 Common Separate Var(aux_info_file_name)
@@ -3827,6 +3839,7 @@ Driver Joined Separate
 
 n
 Driver
+Passed to the linker.
 
 no-canonical-prefixes
 Driver
@@ -3900,15 +3913,18 @@ Driver Var(print_sysroot)
 print-sysroot-headers-suffix
 Driver Var(print_sysroot_headers_suffix)
 
+; The driver doesn't understand -quiet, only its inverse -Q.
 quiet
-Common Var(quiet_flag) RejectDriver
+Common Var(quiet_flag) RejectDriver Undocumented
 Do not display functions compiled or elapsed time.
 
 r
 Driver
+Produce a relocatable object as output.
 
 s
 Driver
+Remove all symbol table and relocation information from the executable.
 
 save-temps
 Driver
@@ -3918,6 +3934,7 @@ Driver Joined
 
 t
 Driver
+Passed to the linker.
 
 time
 Driver Var(report_times)
@@ -4028,6 +4045,7 @@ Create a static position independent executable.
 
 z
 Driver Joined Separate
+Passed to the linker.
 
 fipa-ra
 Common Var(flag_ipa_ra) Optimization
diff --git a/gcc/doc/invoke.texi b/gcc/doc/invoke.texi
index 809bbc61b33..887a54e947e 100644
--- a/gcc/doc/invoke.texi
+++ b/gcc/doc/invoke.texi
@@ -777,7 +777,9 @@ Objective-C and Objective-C++ Dialects}.
 -static-libasan  -static-libtsan  -static-liblsan  -static-libubsan
 -shared  -shared-libgcc  -symbolic
 -T @var{script}  -Wl,@var{option}  -Xlinker @var{option}
--u @var{symbol}  -z @var{keyword}
+-u @var{symbol}
+-Tbss=@var{addr}  -Tdata=@var{addr}  -Ttext=@var{addr}
+-N  -n  -t  -Z  -z @var{keyword}
 --entry=@var{entry}  --for-linker=@var{option}
 --force-link=@var{symbol}  --no-standard-library
 --pie  --static  --static-pie  --symbolic}
@@ -20081,11 +20083,24 @@ Pretend the symbol @var{symbol} is undefined, to 
force linking of
 library modules to define it.  You can use @option{-u} multiple times with
 different symbols to force loading of additional library modules.
 
+@opindex Tbss
+@opindex Tdata
+@opindex Ttext
+@opindex N
+@opindex n
+@opindex t
+@opindex Z
 @opindex z
-@item -z @var{keyword}
-@option{-z} is passed directly on to the linker along with the keyword
-@var{keyword}. See the section in the documentation of your linker for
-permitted values and their meanings.
+@item -Tbss=@var{addr}
+@itemx -Tdata=@var{addr}
+@itemx -Ttext=@var{addr}
+@itemx -N
+@itemx -n
+@itemx -t
+@itemx -Z
+@itemx -z @var{keyword}
+These options are passed through to the linker without interpretation by GCC.
+Refer to your linker documentation for the meanings of these options.
 @end table
 
 @node Directory Options
-- 
2.39.5

Reply via email to