]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
nss-systemd: work around -Werror=zero-as-null-pointer-constant issue with PTHREAD_MUT...
authorLennart Poettering <lennart@poettering.net>
Thu, 16 Jan 2025 12:46:18 +0000 (13:46 +0100)
committerYu Watanabe <watanabe.yu+github@gmail.com>
Thu, 16 Jan 2025 19:09:12 +0000 (04:09 +0900)
This fixes builds on Fedora:

../src/nss-systemd/nss-systemd.c:105:18: error: zero as null pointer constant [-Werror=zero-as-null-pointer-constant]
  105 |         .mutex = PTHREAD_MUTEX_INITIALIZER,
      |                  ^~~~~~~~~~~~~~~~~~~~~~~~~
../src/nss-systemd/nss-systemd.c:105:18: error: zero as null pointer constant [-Werror=zero-as-null-pointer-constant]
../src/nss-systemd/nss-systemd.c:109:18: error: zero as null pointer constant [-Werror=zero-as-null-pointer-constant]
  109 |         .mutex = PTHREAD_MUTEX_INITIALIZER,
      |                  ^~~~~~~~~~~~~~~~~~~~~~~~~
../src/nss-systemd/nss-systemd.c:109:18: error: zero as null pointer constant [-Werror=zero-as-null-pointer-constant]
../src/nss-systemd/nss-systemd.c:113:18: error: zero as null pointer constant [-Werror=zero-as-null-pointer-constant]
  113 |         .mutex = PTHREAD_MUTEX_INITIALIZER,
      |                  ^~~~~~~~~~~~~~~~~~~~~~~~~
../src/nss-systemd/nss-systemd.c:113:18: error: zero as null pointer constant [-Werror=zero-as-null-pointer-constant]
../src/nss-systemd/nss-systemd.c:117:18: error: zero as null pointer constant [-Werror=zero-as-null-pointer-constant]
  117 |         .mutex = PTHREAD_MUTEX_INITIALIZER,
      |                  ^~~~~~~~~~~~~~~~~~~~~~~~~
../src/nss-systemd/nss-systemd.c:117:18: error: zero as null pointer constant [-Werror=zero-as-null-pointer-constant]
cc1: all warnings being treated as errors

src/fundamental/macro-fundamental.h
src/nss-systemd/nss-systemd.c

index 6122a0a92b3b2200380ff48103a63642cfd87499..7bee2915e1b255a2bae80c857197ce5fb098350c 100644 (file)
         _Pragma("GCC diagnostic push");                                 \
         _Pragma("GCC diagnostic ignored \"-Wzero-length-bounds\"")
 
+#define DISABLE_WARNING_ZERO_AS_NULL_POINTER_CONSTANT                   \
+        _Pragma("GCC diagnostic push");                                 \
+        _Pragma("GCC diagnostic ignored \"-Wzero-as-null-pointer-constant\"")
+
 #define REENABLE_WARNING                                                \
         _Pragma("GCC diagnostic pop")
 
index d686d920fc906965c45b36cecb8f72a24b4fea65..683352fab9708ed3abfa3ff2561e1f2c4646e94d 100644 (file)
@@ -101,6 +101,9 @@ typedef struct GetentData {
         bool by_membership;
 } GetentData;
 
+/* On current glibc PTHREAD_MUTEX_INITIALIZER is defined in a way incompatible with
+ * -Wzero-as-null-pointer-constant, work around this for now. */
+DISABLE_WARNING_ZERO_AS_NULL_POINTER_CONSTANT;
 static GetentData getpwent_data = {
         .mutex = PTHREAD_MUTEX_INITIALIZER,
 };
@@ -116,6 +119,7 @@ static GetentData getspent_data = {
 static GetentData getsgent_data = {
         .mutex = PTHREAD_MUTEX_INITIALIZER,
 };
+REENABLE_WARNING;
 
 static void setup_logging_once(void) {
         static pthread_once_t once = PTHREAD_ONCE_INIT;