public inbox for libc-alpha@sourceware.org
 help / color / mirror / Atom feed
* [PATCH] <signal.h>: Make bsd_signal available with _GNU_SOURCE
@ 2022-11-28 10:36 Florian Weimer
  2022-12-08 17:11 ` Adhemerval Zanella Netto
  0 siblings, 1 reply; 4+ messages in thread
From: Florian Weimer @ 2022-11-28 10:36 UTC (permalink / raw)
  To: libc-alpha

The declaration does not conflict with anything.  This simplifies
porting older software to C99 compilers which do not support implicit
function declarations and which need -D_GNU_SOURCE for other function
declarations.  Using __USE_MISC does not seem appropriate here because
other systems (e.g., FreeBSD) do not declare bsd_signal.

---
 signal/signal.h | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/signal/signal.h b/signal/signal.h
index 78d0d819aa..d175d7c3c4 100644
--- a/signal/signal.h
+++ b/signal/signal.h
@@ -98,7 +98,8 @@ extern __sighandler_t __REDIRECT_NTH (signal,
 # endif
 #endif
 
-#if defined __USE_XOPEN_EXTENDED && !defined __USE_XOPEN2K8
+#if (defined __USE_XOPEN_EXTENDED && !defined __USE_XOPEN2K8) \
+  || defined __USE_GNU
 /* The X/Open definition of `signal' conflicts with the BSD version.
    So they defined another function `bsd_signal'.  */
 extern __sighandler_t bsd_signal (int __sig, __sighandler_t __handler)

base-commit: f704192911c6c7b65a54beab3ab369fca7609a5d


^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [PATCH] <signal.h>: Make bsd_signal available with _GNU_SOURCE
  2022-11-28 10:36 [PATCH] <signal.h>: Make bsd_signal available with _GNU_SOURCE Florian Weimer
@ 2022-12-08 17:11 ` Adhemerval Zanella Netto
  2022-12-08 18:10   ` Florian Weimer
  0 siblings, 1 reply; 4+ messages in thread
From: Adhemerval Zanella Netto @ 2022-12-08 17:11 UTC (permalink / raw)
  To: Florian Weimer, libc-alpha



On 28/11/22 07:36, Florian Weimer via Libc-alpha wrote:
> The declaration does not conflict with anything.  This simplifies
> porting older software to C99 compilers which do not support implicit
> function declarations and which need -D_GNU_SOURCE for other function
> declarations.  Using __USE_MISC does not seem appropriate here because
> other systems (e.g., FreeBSD) do not declare bsd_signal.

I am not sure about this, bsd_signal is a POSIX deprecated and I think
old software should really move to sigaction or define the correct flags
to explicit use it.

> 
> ---
>  signal/signal.h | 3 ++-
>  1 file changed, 2 insertions(+), 1 deletion(-)
> 
> diff --git a/signal/signal.h b/signal/signal.h
> index 78d0d819aa..d175d7c3c4 100644
> --- a/signal/signal.h
> +++ b/signal/signal.h
> @@ -98,7 +98,8 @@ extern __sighandler_t __REDIRECT_NTH (signal,
>  # endif
>  #endif
>  
> -#if defined __USE_XOPEN_EXTENDED && !defined __USE_XOPEN2K8
> +#if (defined __USE_XOPEN_EXTENDED && !defined __USE_XOPEN2K8) \
> +  || defined __USE_GNU
>  /* The X/Open definition of `signal' conflicts with the BSD version.
>     So they defined another function `bsd_signal'.  */
>  extern __sighandler_t bsd_signal (int __sig, __sighandler_t __handler)
> 
> base-commit: f704192911c6c7b65a54beab3ab369fca7609a5d
> 

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [PATCH] <signal.h>: Make bsd_signal available with _GNU_SOURCE
  2022-12-08 17:11 ` Adhemerval Zanella Netto
@ 2022-12-08 18:10   ` Florian Weimer
  2022-12-08 18:23     ` Adhemerval Zanella Netto
  0 siblings, 1 reply; 4+ messages in thread
From: Florian Weimer @ 2022-12-08 18:10 UTC (permalink / raw)
  To: Adhemerval Zanella Netto; +Cc: libc-alpha

* Adhemerval Zanella Netto:

> On 28/11/22 07:36, Florian Weimer via Libc-alpha wrote:
>> The declaration does not conflict with anything.  This simplifies
>> porting older software to C99 compilers which do not support implicit
>> function declarations and which need -D_GNU_SOURCE for other function
>> declarations.  Using __USE_MISC does not seem appropriate here because
>> other systems (e.g., FreeBSD) do not declare bsd_signal.
>
> I am not sure about this, bsd_signal is a POSIX deprecated and I think
> old software should really move to sigaction or define the correct flags
> to explicit use it.

And I thought this was the least controversial patch. 8-/

If -D_GNU_SOURCE is not the superset of all functionalities, it gets
more difficult to obtain all function prototypes, as needed for building
with stricter C99 compilers.  Currently, with default GCC flags, this
builds anyway due to an implicit function declaration, and I'd like to
preserve this behavior with GCC 14.

What about adding a deprecation warning?

Thanks,
Florian


^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [PATCH] <signal.h>: Make bsd_signal available with _GNU_SOURCE
  2022-12-08 18:10   ` Florian Weimer
@ 2022-12-08 18:23     ` Adhemerval Zanella Netto
  0 siblings, 0 replies; 4+ messages in thread
From: Adhemerval Zanella Netto @ 2022-12-08 18:23 UTC (permalink / raw)
  To: Florian Weimer; +Cc: libc-alpha



On 08/12/22 15:10, Florian Weimer wrote:
> * Adhemerval Zanella Netto:
> 
>> On 28/11/22 07:36, Florian Weimer via Libc-alpha wrote:
>>> The declaration does not conflict with anything.  This simplifies
>>> porting older software to C99 compilers which do not support implicit
>>> function declarations and which need -D_GNU_SOURCE for other function
>>> declarations.  Using __USE_MISC does not seem appropriate here because
>>> other systems (e.g., FreeBSD) do not declare bsd_signal.
>>
>> I am not sure about this, bsd_signal is a POSIX deprecated and I think
>> old software should really move to sigaction or define the correct flags
>> to explicit use it.
> 
> And I thought this was the least controversial patch. 8-/
> 
> If -D_GNU_SOURCE is not the superset of all functionalities, it gets
> more difficult to obtain all function prototypes, as needed for building
> with stricter C99 compilers.  Currently, with default GCC flags, this
> builds anyway due to an implicit function declaration, and I'd like to
> preserve this behavior with GCC 14.
> 
> What about adding a deprecation warning?

I think deprecation works better here, I kind reluctant because moving it
to _GNU_SOURCE means that we are 'promoting' a symbol where there is
already a replacement. 

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2022-12-08 18:23 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-11-28 10:36 [PATCH] <signal.h>: Make bsd_signal available with _GNU_SOURCE Florian Weimer
2022-12-08 17:11 ` Adhemerval Zanella Netto
2022-12-08 18:10   ` Florian Weimer
2022-12-08 18:23     ` Adhemerval Zanella Netto

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).