summary refs log tree commit diff
path: root/src
diff options
context:
space:
mode:
authorHerbert Xu <herbert@gondor.apana.org.au>2018-11-21 11:45:04 +0800
committerHerbert Xu <herbert@gondor.apana.org.au>2018-12-14 13:48:03 +0800
commit284b9192ed12a80b35fa7b9b85d75055887b64e9 (patch)
treee1dc990ea0f2af07a764bcba4d9e9d332c5dc224 /src
parenteval: Use sh_warnx instead of warnx (diff)
downloaddash-284b9192ed12a80b35fa7b9b85d75055887b64e9.tar.gz
dash-284b9192ed12a80b35fa7b9b85d75055887b64e9.zip
system: Disable glibc warning on sigsetmask
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 <ao2@ao2.it>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Diffstat (limited to 'src')
-rw-r--r--src/system.h11
1 files changed, 10 insertions, 1 deletions
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(&set);