On Jan 19, 2025, at 12:47 PM, Torbjorn SVENSSON <torbjorn.svens...@foss.st.com> 
wrote:
> 
> On 2025-01-19 21:20, Andrew Pinski wrote:
>> On Sun, Jan 19, 2025 at 12:17 PM Torbjörn SVENSSON
>> <torbjorn.svens...@foss.st.com> wrote:
>>> 
>>> Ok for trunk?
>>> 
>>> --
>>> 
>>> Most baremetal toolchains will not have an implementation for alarm and
>>> sigaction as they are target specific.
>>> For arm-none-eabi with newlib, function signatures are exposed, but
>>> there is no implmentation and thus the test cases causes a undefined
>>> symbol link error.
>>> 
>>> gcc/testsuite/ChangeLog:
>>> 
>>>         * gcc.dg/pr78185.c: Remove dg-do and replace with
>>>         with dg-require-effective-target of signal and alarm.
>>>         * gcc.dg/pr116906-1.c: Likewise.
>>>         * gcc.dg/pr116906-1.c: Likewise.
>>>         * gcc.dg/vect/pr101145inf.c: Use effective-target alarm.
>>>         * gcc.dg/vect/pr101145inf_1.c: Likewise.
>>>         * lib/target-supports.exp(check_effective_target_alarm): New.
>>> 
>>> gcc/ChangeLog:
>>> 
>>>         * doc/sourcebuild.texi (Effective-Target Keywords): Document
>>>         'alarm'.
>>> 
>>> Signed-off-by: Torbjörn SVENSSON <torbjorn.svens...@foss.st.com>
>>> ---
>>>  gcc/doc/sourcebuild.texi                  |  3 +++
>>>  gcc/testsuite/gcc.dg/pr116906-1.c         |  3 ++-
>>>  gcc/testsuite/gcc.dg/pr116906-2.c         |  3 ++-
>>>  gcc/testsuite/gcc.dg/pr78185.c            |  3 ++-
>>>  gcc/testsuite/gcc.dg/vect/pr101145inf.c   |  1 +
>>>  gcc/testsuite/gcc.dg/vect/pr101145inf_1.c |  1 +
>>>  gcc/testsuite/lib/target-supports.exp     | 23 +++++++++++++++++++++++
>>>  7 files changed, 34 insertions(+), 3 deletions(-)
>>> 
>>> diff --git a/gcc/doc/sourcebuild.texi b/gcc/doc/sourcebuild.texi
>>> index b5c1b23e527..98ede70f23c 100644
>>> --- a/gcc/doc/sourcebuild.texi
>>> +++ b/gcc/doc/sourcebuild.texi
>>> @@ -2808,6 +2808,9 @@ both scalar and vector modes.
>>>  @subsubsection Environment attributes
>>> 
>>>  @table @code
>>> +@item alarm
>>> +Target supports @code{alarm}.
>>> +
>>>  @item c
>>>  The language for the compiler under test is C.
>>> 
>>> diff --git a/gcc/testsuite/gcc.dg/pr116906-1.c 
>>> b/gcc/testsuite/gcc.dg/pr116906-1.c
>>> index 27b1fdae02b..7187507a60d 100644
>>> --- a/gcc/testsuite/gcc.dg/pr116906-1.c
>>> +++ b/gcc/testsuite/gcc.dg/pr116906-1.c
>>> @@ -1,4 +1,5 @@
>>> -/* { dg-do run { target *-*-linux* *-*-gnu* *-*-uclinux* } } */
>>> +/* { dg-require-effective-target alarm } */
>>> +/* { dg-require-effective-target signal } */
>>>  /* { dg-options "-O2" } */
>>> 
>>>  #include <stdint.h>
>>> diff --git a/gcc/testsuite/gcc.dg/pr116906-2.c 
>>> b/gcc/testsuite/gcc.dg/pr116906-2.c
>>> index 3478771678c..41a352bf837 100644
>>> --- a/gcc/testsuite/gcc.dg/pr116906-2.c
>>> +++ b/gcc/testsuite/gcc.dg/pr116906-2.c
>>> @@ -1,4 +1,5 @@
>>> -/* { dg-do run { target *-*-linux* *-*-gnu* *-*-uclinux* } } */
>>> +/* { dg-require-effective-target alarm } */
>>> +/* { dg-require-effective-target signal } */
>>>  /* { dg-options "-O2 -fno-tree-ch" } */
>>> 
>>>  #include <unistd.h>
>>> diff --git a/gcc/testsuite/gcc.dg/pr78185.c b/gcc/testsuite/gcc.dg/pr78185.c
>>> index d7781b2080f..ada8b1b9f90 100644
>>> --- a/gcc/testsuite/gcc.dg/pr78185.c
>>> +++ b/gcc/testsuite/gcc.dg/pr78185.c
>>> @@ -1,4 +1,5 @@
>>> -/* { dg-do run { target *-*-linux* *-*-gnu* *-*-uclinux* } } */
>>> +/* { dg-require-effective-target alarm } */
>>> +/* { dg-require-effective-target signal } */
>>>  /* { dg-options "-O" } */
>>> 
>>>  #include <unistd.h>
>>> diff --git a/gcc/testsuite/gcc.dg/vect/pr101145inf.c 
>>> b/gcc/testsuite/gcc.dg/vect/pr101145inf.c
>>> index aa598875aa5..70aea94b6e0 100644
>>> --- a/gcc/testsuite/gcc.dg/vect/pr101145inf.c
>>> +++ b/gcc/testsuite/gcc.dg/vect/pr101145inf.c
>>> @@ -1,3 +1,4 @@
>>> +/* { dg-require-effective-target alarm } */
>>>  /* { dg-require-effective-target signal } */
>>>  /* { dg-additional-options "-O3" } */
>>>  #include <limits.h>
>>> diff --git a/gcc/testsuite/gcc.dg/vect/pr101145inf_1.c 
>>> b/gcc/testsuite/gcc.dg/vect/pr101145inf_1.c
>>> index 0465788c3cc..fe008284e1d 100644
>>> --- a/gcc/testsuite/gcc.dg/vect/pr101145inf_1.c
>>> +++ b/gcc/testsuite/gcc.dg/vect/pr101145inf_1.c
>>> @@ -1,3 +1,4 @@
>>> +/* { dg-require-effective-target alarm } */
>>>  /* { dg-require-effective-target signal } */
>>>  /* { dg-additional-options "-O3" } */
>>>  #include <limits.h>
>>> diff --git a/gcc/testsuite/lib/target-supports.exp 
>>> b/gcc/testsuite/lib/target-supports.exp
>>> index 939ef3a4119..93795a7e27f 100644
>>> --- a/gcc/testsuite/lib/target-supports.exp
>>> +++ b/gcc/testsuite/lib/target-supports.exp
>>> @@ -14255,3 +14255,26 @@ proc add_options_for_nvptx_alloca_ptx { flags } {
>>> 
>>>      return $flags
>>>  }
>>> +
>>> +# Return true if alarm is supported on the target.
>>> +
>>> +proc check_effective_target_alarm { } {
>> Maybe A small optimization is return false here if signal is not supported.
>> That is:
>>   if ![check_effective_target_signal] {
>>     return 0
>>   }
> 
> Sure, I'll add that.
> 
> Is it okay with this change?
> Or should I send a v2 with this?

Ok.

Reply via email to