*PING* [PATCH] doc: gcc.c: Update documentation for spec files

2020-09-21 Thread Armin Brauns via Gcc-patches
Ping: https://gcc.gnu.org/pipermail/gcc-patches/2020-September/553321.html

On 06/09/2020 17.23, Armin Brauns wrote:
> There were some differences between the actual code in do_spec_1, its
> source comment, and the documentation in doc/invoke.texi. These should
> now be resolved.
>



Re: [patch] Add an if-exists-then-else spec function

2020-10-01 Thread Armin Brauns via Gcc-patches
On 01/10/2020 18.04, Olivier Hainque wrote:
> Hello,
>
> This patch is a proposal to add an if-exists-then-else
> builtin spec function, which tests for the existence of
> a file and returns one or the other of the following
> arguments depending on the result of the test.
>
Hello,

could you please make sure to update the documentation around 
gcc/doc/invoke.texi:31574 accordingly? There's already a pending patch to make 
it more complete at 
https://gcc.gnu.org/pipermail/gcc-patches/2020-September/553321.html, but there 
shouldn't be any major conflicts between the two.

Regards,

Armin




*PING^2* [PATCH] doc: gcc.c: Update documentation for spec files

2020-10-02 Thread Armin Brauns via Gcc-patches
On 06/09/2020 17.23, Armin Brauns wrote:
> There were some differences between the actual code in do_spec_1, its
> source comment, and the documentation in doc/invoke.texi. These should
> now be resolved.
PING: https://gcc.gnu.org/pipermail/gcc-patches/2020-September/553321.html


[PATCH] doc: gcc.c: Update documentation for spec files

2020-09-06 Thread Armin Brauns via Gcc-patches
There were some differences between the actual code in do_spec_1, its
source comment, and the documentation in doc/invoke.texi. These should
now be resolved.

gcc/ChangeLog:
* gcc.c: document %T spec file directive
* doc/invoke.texi:
remove %p, %P spec file directives
add %M, %R, %V, %nSTR, %>S, %S
+Similar to @samp{%  []  
+@end smallexample
+
+It returns @code{result} if the comparison evaluates to true, and NULL if it 
doesn't.
+The supported @code{comparison-op} values are:
+
+@table @code
+@item >=
+True if @code{switch} is a later (or same) version than @code{arg1}
+
+@item !>
+Opposite of @code{>=}
+
+@item <
+True if @code{switch} is an earlier version than @code{arg1}
+
+@item !<
+Opposite of @code{<}
+
+@item ><
+True if @code{switch} is @code{arg1} or later, and earlier than @code{arg2}
+
+@item <>
+True if @code{switch} is earlier than @code{arg1}, or is @code{arg2} or later
+@end table
+
+If the @code{switch} is not present at all, the condition is false unless the 
first character
+of the @code{comparison-op} is @code{!}.
+
+@smallexample
+%:version-compare(>= 10.3 mmacosx-version-min= -lmx)
+@end smallexample
+
+The above example would add @option{-lmx} if 
@option{-mmacosx-version-min=10.3.9} was
+passed.
+
+@item @code{include}
+The @code{include} spec function behaves much like @code{%include}, with the 
advantage
+that it can be nested inside a spec and thus be conditionalized.  It takes one 
argument,
+the filename, and looks for it in the startfile path.  It always returns NULL.
+
+@smallexample
+%@{static-libasan|static:%:include(libsanitizer.spec)%(link_libasan)@}
+@end smallexample
+
 @item @code{pass-through-libs}
 The @code{pass-through-libs} spec function takes any number of arguments.  It
 finds any @option{-l} options and any non-options ending in @file{.a} (which it
@@ -31436,6 +31502,25 @@ Use "-Wa,OPTION" to pass "OPTION" to the assembler.
 
 It is used to separate compiler options from assembler options
 in the @option{--target-help} output.
+
+@item @code{gt}
+The @code{gt} spec function takes two or more arguments.  It returns @code{""} 
(the
+empty string) if the second-to-last argument is greater than the last 
argument, and NULL
+otherwise.  The following example inserts the @code{link_gomp} spec if the last
+@option{-ftree-parallelize-loops=} option given on the command line is greater 
than 1:
+
+@smallexample
+%@{%:gt(%@{ftree-parallelize-loops=*:%*@} 
1):%:include(libgomp.spec)%(link_gomp)@}
+@end smallexample
+
+@item @code{debug-level-gt}
+The @code{debug-level-gt} spec function takes one argument and returns 
@code{""} (the
+empty string) if @code{debug_info_level} is greater than the specified number, 
and NULL
+otherwise.
+
+@smallexample
+%@{%:debug-level-gt(0):%@{gdwarf*:--gdwarf2@}@}
+@end smallexample
 @end table
 
 @item %@{S@}
@@ -31450,6 +31535,10 @@ and outputs the command-line option @option{-foo}.
 Like %@{@code{S}@} but mark last argument supplied within as a file to be
 deleted on failure.
 
+@item %@@@{S@}
+Like %@{@code{S}@} but puts the result into a @code{FILE} and substitutes
+@code{@@FILE} if an @code{@@file} argument has been supplied.
+
 @item %@{S*@}
 Substitutes all the switches specified to GCC whose names start
 with @code{-S}, but which also take an argument.  This is used for
@@ -31532,6 +31621,12 @@ jim.d -bar -boggle
 -d jim.d  -bar -baz -boggle
 @end smallexample
 
+@item %@{%:@var{function}(@var{args}):X@}
+
+Call function named @var{function} with args @var{args}.  If the
+function returns non-NULL, then @code{X} is substituted, if it returns
+NULL, it isn't substituted.
+
 @item %@{S:X; T:Y; :D@}
 
 If @code{S} is given to GCC, substitutes @code{X}; else if @code{T} is
diff --git a/gcc/gcc.c b/gcc/gcc.c
index 531f4e02dbd..72490847274 100644
--- a/gcc/gcc.c
+++ b/gcc/gcc.c
@@ -540,6 +540,12 @@ or with constant text in a single argument.
  %s current argument is the name of a library or startup file of some sort.
 Search for that file in a standard list of directories
and substitute the full name found.
+ %Tcurrent argument is the name of a linker script.
+   Search for that file in the current list of directories to scan for
+   libraries.  If the file is located, insert a --script option into the
+   command line followed by the full path name found.  If the file is
+   not found then generate an error message.
+   Note: the current working directory is not searched.
  %eSTR  Print STR as an error message.  STR is terminated by a newline.
 Use this when inconsistent options are detected.
  %nSTR  Print STR as a notice.  STR is terminated by a newline.
-- 
2.28.0



*PING^3* [PATCH] doc: gcc.c: Update documentation for spec files

2020-10-15 Thread Armin Brauns via Gcc-patches
On 02/10/2020 19.20, Armin Brauns wrote:
> On 06/09/2020 17.23, Armin Brauns wrote:
>> There were some differences between the actual code in do_spec_1, its
>> source comment, and the documentation in doc/invoke.texi. These should
>> now be resolved.
> PING: https://gcc.gnu.org/pipermail/gcc-patches/2020-September/553321.html

PING: https://gcc.gnu.org/pipermail/gcc-patches/2020-September/553321.html



*PING^4* [PATCH] doc: gcc.c: Update documentation for spec files

2020-10-27 Thread Armin Brauns via Gcc-patches
On 15/10/2020 10.11, Armin Brauns wrote:
> On 02/10/2020 19.20, Armin Brauns wrote:
>> On 06/09/2020 17.23, Armin Brauns wrote:
>>> There were some differences between the actual code in do_spec_1, its
>>> source comment, and the documentation in doc/invoke.texi. These should
>>> now be resolved.
>> PING: https://gcc.gnu.org/pipermail/gcc-patches/2020-September/553321.html
> PING: https://gcc.gnu.org/pipermail/gcc-patches/2020-September/553321.html
>
PING: https://gcc.gnu.org/pipermail/gcc-patches/2020-September/553321.html