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.