On Sat, Nov 8, 2025 at 10:06 PM Sandra Loosemore
<[email protected]> wrote:
>
> 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.

OK.

Thanks,
Richard.

> 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