Re: [v2 PATCH] system: Disable glibc warning on sigsetmask

2018-11-21 Thread Antonio Ospite
On Wed, 21 Nov 2018 11:45:04 +0800
Herbert Xu  wrote:

> On Tue, Nov 20, 2018 at 11:48:20PM +0100, Antonio Ospite wrote:
> > 
> > Just for the record, compiling with clang (CC=clang ./configure && make)
> > still gives a warning:
> 
> OK, we could disable it completely unless it's gcc:
>

That works with clang.

> ---8<---
> As sigsetmask is set as deprecated in glibc this patch adds the
> pragmas to disable the warning in gcc around our one and only use
> of sigsetmask.
>
> It also disables it completely for non-gcc compilers and older
> gcc compilers as they may generate a warning too.
>

The "it" in the last sentence may look like it refers to the
warning while AFAIU it refers to the function call itself.

So maybe say "It also disables sigsetmask() completely ..."?

Also a brief note in the commit message about _why_ sigsetmask() is
kept around when using gcc would be useful IMHO.

Thank you,
   Antonio

> Reported-by: Antonio Ospite 
> Signed-off-by: Herbert Xu 
> 
> diff --git a/src/system.h b/src/system.h
> index a8d09b3..007952c 100644
> --- a/src/system.h
> +++ b/src/system.h
> @@ -36,8 +36,17 @@
>  
>  static inline void sigclearmask(void)
>  {
> -#ifdef HAVE_SIGSETMASK
> +#if defined(HAVE_SIGSETMASK) && \
> +(!defined(__GLIBC__) || \
> + (defined(__GNUC__) && (__GNUC__ * 1000 + __GNUC_MINOR__) >= 4006))
> +#ifdef __GLIBC__
> +#pragma GCC diagnostic push
> +#pragma GCC diagnostic ignored "-Wdeprecated-declarations"
> +#endif
>   sigsetmask(0);
> +#ifdef __GLIBC__
> +#pragma GCC diagnostic pop
> +#endif
>  #else
>   sigset_t set;
>   sigemptyset();
> -- 
> Email: Herbert Xu 
> Home Page: http://gondor.apana.org.au/~herbert/
> PGP Key: http://gondor.apana.org.au/~herbert/pubkey.txt


-- 
Antonio Ospite
https://ao2.it
https://twitter.com/ao2it

A: Because it messes up the order in which people normally read text.
   See http://en.wikipedia.org/wiki/Posting_style
Q: Why is top-posting such a bad thing?


[v2 PATCH] system: Disable glibc warning on sigsetmask

2018-11-20 Thread Herbert Xu
On Tue, Nov 20, 2018 at 11:48:20PM +0100, Antonio Ospite wrote:
> 
> Just for the record, compiling with clang (CC=clang ./configure && make)
> still gives a warning:

OK, we could disable it completely unless it's gcc:

---8<---
As sigsetmask is set as deprecated in glibc this patch adds the
pragmas to disable the warning in gcc around our one and only use
of sigsetmask.

It also disables it completely for non-gcc compilers and older
gcc compilers as they may generate a warning too.

Reported-by: Antonio Ospite 
Signed-off-by: Herbert Xu 

diff --git a/src/system.h b/src/system.h
index a8d09b3..007952c 100644
--- a/src/system.h
+++ b/src/system.h
@@ -36,8 +36,17 @@
 
 static inline void sigclearmask(void)
 {
-#ifdef HAVE_SIGSETMASK
+#if defined(HAVE_SIGSETMASK) && \
+(!defined(__GLIBC__) || \
+ (defined(__GNUC__) && (__GNUC__ * 1000 + __GNUC_MINOR__) >= 4006))
+#ifdef __GLIBC__
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wdeprecated-declarations"
+#endif
sigsetmask(0);
+#ifdef __GLIBC__
+#pragma GCC diagnostic pop
+#endif
 #else
sigset_t set;
sigemptyset();
-- 
Email: Herbert Xu 
Home Page: http://gondor.apana.org.au/~herbert/
PGP Key: http://gondor.apana.org.au/~herbert/pubkey.txt