From 6a9d8c7fa456f267daca50bc3d754922ff839a86 Mon Sep 17 00:00:00 2001 From: Glenn Washburn Date: Fri, 13 Nov 2015 16:42:08 +0100 Subject: [PATCH] build: disable Pragmas for pre 4.6 gcc Gcc 4.6 introduced Pragma "GCC diagnostic" (https://gcc.gnu.org/gcc-4.6/changes.html) Don't use them for older gcc. [thaller@redhat.com: modified original patch] https://bugzilla.gnome.org/show_bug.cgi?id=757910 (cherry picked from commit 6263703286b67795ddee770b86445c57cf71cc81) --- include/nm-macros-internal.h | 4 ++-- src/dhcp-manager/systemd-dhcp/src/shared/macro.h | 9 +++++++++ 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/include/nm-macros-internal.h b/include/nm-macros-internal.h index 3c5adcc1cf..31e583bd81 100644 --- a/include/nm-macros-internal.h +++ b/include/nm-macros-internal.h @@ -84,7 +84,7 @@ * It's not that bad however, because gcc and clang often have the * same name for the same warning. */ -#if defined (__GNUC__) +#if defined (__GNUC__) && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 6)) #define NM_PRAGMA_WARNING_DISABLE(warning) \ _Pragma("GCC diagnostic push"); \ _Pragma(_NM_PRAGMA_WARNING_DO(warning)) @@ -96,7 +96,7 @@ #define NM_PRAGMA_WARNING_DISABLE(warning) #endif -#if defined (__GNUC__) +#if defined (__GNUC__) && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 6)) #define NM_PRAGMA_WARNING_REENABLE \ _Pragma("GCC diagnostic pop") #elif defined (__clang__) diff --git a/src/dhcp-manager/systemd-dhcp/src/shared/macro.h b/src/dhcp-manager/systemd-dhcp/src/shared/macro.h index e6cf6eecd7..bdda4dce10 100644 --- a/src/dhcp-manager/systemd-dhcp/src/shared/macro.h +++ b/src/dhcp-manager/systemd-dhcp/src/shared/macro.h @@ -46,6 +46,7 @@ #define _alignas_(x) __attribute__((aligned(__alignof(x)))) #define _cleanup_(x) __attribute__((cleanup(x))) +#if (defined (__GNUC__) && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 6))) || defined (__clang__) /* Temporarily disable some warnings */ #define DISABLE_WARNING_DECLARATION_AFTER_STATEMENT \ _Pragma("GCC diagnostic push"); \ @@ -69,6 +70,14 @@ #define REENABLE_WARNING \ _Pragma("GCC diagnostic pop") +#else +#define DISABLE_WARNING_DECLARATION_AFTER_STATEMENT +#define DISABLE_WARNING_FORMAT_NONLITERAL +#define DISABLE_WARNING_MISSING_PROTOTYPES +#define DISABLE_WARNING_NONNULL +#define DISABLE_WARNING_SHADOW +#define REENABLE_WARNING +#endif /* automake test harness */ #define EXIT_TEST_SKIP 77