Message ID | 87zg0bhzep.fsf@oldenburg.str.redhat.com |
---|---|
State | New |
Headers | show |
Series | gcc.c-torture/execute/builtins/fputs.c: Define _GNU_SOURCE | expand |
On 10/22/23 01:47, Florian Weimer wrote: > Current glibc headers only declare fputs_unlocked for _GNU_SOURCE. > Defining the macro avoids an implicit function declaration. > > gcc/testsuite/ > > * gcc.c-torture/execute/builtins/fputs.c (_GNU_SOURCE): > Define. OK jeff
On Sun, Oct 22, 2023 at 12:47 AM Florian Weimer <fweimer@redhat.com> wrote: > > Current glibc headers only declare fputs_unlocked for _GNU_SOURCE. > Defining the macro avoids an implicit function declaration. This does not help targets that don't use glibc though. Note for builtins testsuite there is a lib-fputs.c file which will define a fputs_unlock which is how it will link even if the libc does not define a fputs_unlock. Thanks, Andrew Pinski > > gcc/testsuite/ > > * gcc.c-torture/execute/builtins/fputs.c (_GNU_SOURCE): > Define. > > --- > gcc/testsuite/gcc.c-torture/execute/builtins/fputs.c | 1 + > 1 file changed, 1 insertion(+) > > diff --git a/gcc/testsuite/gcc.c-torture/execute/builtins/fputs.c b/gcc/testsuite/gcc.c-torture/execute/builtins/fputs.c > index 93fa9736449..13e30724355 100644 > --- a/gcc/testsuite/gcc.c-torture/execute/builtins/fputs.c > +++ b/gcc/testsuite/gcc.c-torture/execute/builtins/fputs.c > @@ -5,6 +5,7 @@ > > Written by Kaveh R. Ghazi, 10/30/2000. */ > > +#define _GNU_SOURCE /* For fputs_unlocked. */ > #include <stdio.h> > extern void abort(void); > >
On 10/22/23 10:09, Andrew Pinski wrote: > On Sun, Oct 22, 2023 at 12:47 AM Florian Weimer <fweimer@redhat.com> wrote: >> >> Current glibc headers only declare fputs_unlocked for _GNU_SOURCE. >> Defining the macro avoids an implicit function declaration. > > This does not help targets that don't use glibc though. > Note for builtins testsuite there is a lib-fputs.c file which will > define a fputs_unlock which is how it will link even if the libc does > not define a fputs_unlock. But isn't fputs_unlocked glibc specific to begin with? ie, the test really doesn't make sense AFAICT on non-glibc targets. Jeff
On 22 October 2023 21:45:12 CEST, Jeff Law <jeffreyalaw@gmail.com> wrote: > > >On 10/22/23 10:09, Andrew Pinski wrote: >> On Sun, Oct 22, 2023 at 12:47 AM Florian Weimer <fweimer@redhat.com> wrote: >>> >>> Current glibc headers only declare fputs_unlocked for _GNU_SOURCE. >>> Defining the macro avoids an implicit function declaration. >> >> This does not help targets that don't use glibc though. >> Note for builtins testsuite there is a lib-fputs.c file which will >> define a fputs_unlock which is how it will link even if the libc does >> not define a fputs_unlock. >But isn't fputs_unlocked glibc specific to begin with? ie, the test really doesn't make sense AFAICT on non-glibc targets. I think uClibc had it too, at least at one point in the past.
On Sun, Oct 22, 2023 at 4:03 PM <rep.dot.nop@gmail.com> wrote: > > On 22 October 2023 21:45:12 CEST, Jeff Law <jeffreyalaw@gmail.com> wrote: > > > > > >On 10/22/23 10:09, Andrew Pinski wrote: > >> On Sun, Oct 22, 2023 at 12:47 AM Florian Weimer <fweimer@redhat.com> wrote: > >>> > >>> Current glibc headers only declare fputs_unlocked for _GNU_SOURCE. > >>> Defining the macro avoids an implicit function declaration. > >> > >> This does not help targets that don't use glibc though. > >> Note for builtins testsuite there is a lib-fputs.c file which will > >> define a fputs_unlock which is how it will link even if the libc does > >> not define a fputs_unlock. > >But isn't fputs_unlocked glibc specific to begin with? ie, the test really doesn't make sense AFAICT on non-glibc targets. > > I think uClibc had it too, at least at one point in the past. > gnulib has these portability notes about fputs_unlocked: https://www.gnu.org/software/gnulib/manual/html_node/fputs_005funlocked.html Unfortunately, it only lists the platforms that *don't* have it, not the ones that *do* have it, so I'm afraid its notes aren't actually that helpful after all... oh well, never mind...
* Andrew Pinski: > On Sun, Oct 22, 2023 at 12:47 AM Florian Weimer <fweimer@redhat.com> wrote: >> >> Current glibc headers only declare fputs_unlocked for _GNU_SOURCE. >> Defining the macro avoids an implicit function declaration. > > This does not help targets that don't use glibc though. > Note for builtins testsuite there is a lib-fputs.c file which will > define a fputs_unlock which is how it will link even if the libc does > not define a fputs_unlock. That's a good point. I've sent a v2 which also adds a prototype declaration in addition to _GNU_SOURCE. I've thought about it for a bit and it seems to be the least intrusive option. Thanks, Florian
diff --git a/gcc/testsuite/gcc.c-torture/execute/builtins/fputs.c b/gcc/testsuite/gcc.c-torture/execute/builtins/fputs.c index 93fa9736449..13e30724355 100644 --- a/gcc/testsuite/gcc.c-torture/execute/builtins/fputs.c +++ b/gcc/testsuite/gcc.c-torture/execute/builtins/fputs.c @@ -5,6 +5,7 @@ Written by Kaveh R. Ghazi, 10/30/2000. */ +#define _GNU_SOURCE /* For fputs_unlocked. */ #include <stdio.h> extern void abort(void);