From f0f2e63bb2d5cd27e6a2464ee46a670a3159c5da Mon Sep 17 00:00:00 2001 From: Lennart Poettering Date: Thu, 20 Feb 2014 18:35:03 +0100 Subject: [PATCH] macro: introduce nice macro for disabling -Wmissing-prototypes warnigs --- Makefile.am | 6 ++++-- src/python-systemd/_daemon.c | 10 +++++----- src/python-systemd/_journal.c | 9 ++++----- src/python-systemd/_reader.c | 5 ++--- src/python-systemd/id128.c | 12 +++++++----- src/python-systemd/login.c | 11 +++++------ src/shared/macro.h | 4 ++++ 7 files changed, 31 insertions(+), 26 deletions(-) diff --git a/Makefile.am b/Makefile.am index 08b94d7b1..03a65bf08 100644 --- a/Makefile.am +++ b/Makefile.am @@ -4245,7 +4245,8 @@ id128_la_LDFLAGS = \ id128_la_LIBADD = \ $(PYTHON_DEVEL_LIBS) \ - libsystemd.la + libsystemd.la \ + libsystemd-shared.la _daemon_la_SOURCES = \ src/python-systemd/_daemon.c \ @@ -4266,7 +4267,8 @@ _daemon_la_LDFLAGS = \ _daemon_la_LIBADD = \ $(PYTHON_DEVEL_LIBS) \ - libsystemd.la + libsystemd.la \ + libsystemd-shared.la _reader_la_SOURCES = \ src/python-systemd/_reader.c \ diff --git a/src/python-systemd/_daemon.c b/src/python-systemd/_daemon.c index 3982e8542..7756a7880 100644 --- a/src/python-systemd/_daemon.c +++ b/src/python-systemd/_daemon.c @@ -31,6 +31,7 @@ #include #include "pyutil.h" +#include "macro.h" PyDoc_STRVAR(module__doc__, "Python interface to the libsystemd-daemon library.\n\n" @@ -284,11 +285,9 @@ static PyMethodDef methods[] = { { NULL, NULL, 0, NULL } /* Sentinel */ }; -#pragma GCC diagnostic push -#pragma GCC diagnostic ignored "-Wmissing-prototypes" - #if PY_MAJOR_VERSION < 3 +DISABLE_WARNING_MISSING_PROTOTYPES; PyMODINIT_FUNC init_daemon(void) { PyObject *m; @@ -299,6 +298,7 @@ PyMODINIT_FUNC init_daemon(void) { PyModule_AddIntConstant(m, "LISTEN_FDS_START", SD_LISTEN_FDS_START); PyModule_AddStringConstant(m, "__version__", PACKAGE_VERSION); } +REENABLE_WARNING; #else @@ -310,6 +310,7 @@ static struct PyModuleDef module = { methods }; +DISABLE_WARNING_MISSING_PROTOTYPES; PyMODINIT_FUNC PyInit__daemon(void) { PyObject *m; @@ -325,7 +326,6 @@ PyMODINIT_FUNC PyInit__daemon(void) { return m; } +REENABLE_WARNING; #endif - -#pragma GCC diagnostic pop diff --git a/src/python-systemd/_journal.c b/src/python-systemd/_journal.c index 8cc6d3e52..cbc661d83 100644 --- a/src/python-systemd/_journal.c +++ b/src/python-systemd/_journal.c @@ -113,11 +113,9 @@ static PyMethodDef methods[] = { { NULL, NULL, 0, NULL } /* Sentinel */ }; -#pragma GCC diagnostic push -#pragma GCC diagnostic ignored "-Wmissing-prototypes" - #if PY_MAJOR_VERSION < 3 +DISABLE_WARNING_MISSING_PROTOTYPES; PyMODINIT_FUNC init_journal(void) { PyObject *m; @@ -127,6 +125,7 @@ PyMODINIT_FUNC init_journal(void) { PyModule_AddStringConstant(m, "__version__", PACKAGE_VERSION); } +REENABLE_WARNING; #else @@ -138,6 +137,7 @@ static struct PyModuleDef module = { methods }; +DISABLE_WARNING_MISSING_PROTOTYPES; PyMODINIT_FUNC PyInit__journal(void) { PyObject *m; @@ -152,7 +152,6 @@ PyMODINIT_FUNC PyInit__journal(void) { return m; } +REENABLE_WARNING; #endif - -#pragma GCC diagnostic pop diff --git a/src/python-systemd/_reader.c b/src/python-systemd/_reader.c index ee25c4974..224a9169e 100644 --- a/src/python-systemd/_reader.c +++ b/src/python-systemd/_reader.c @@ -1046,8 +1046,7 @@ static PyModuleDef module = { static bool initialized = false; #endif -#pragma GCC diagnostic push -#pragma GCC diagnostic ignored "-Wmissing-prototypes" +DISABLE_WARNING_MISSING_PROTOTYPES; PyMODINIT_FUNC #if PY_MAJOR_VERSION >= 3 @@ -1110,4 +1109,4 @@ init_reader(void) #endif } -#pragma GCC diagnostic pop +REENABLE_WARNING; diff --git a/src/python-systemd/id128.c b/src/python-systemd/id128.c index ec1d9fb4a..6dadf7b2f 100644 --- a/src/python-systemd/id128.c +++ b/src/python-systemd/id128.c @@ -24,6 +24,9 @@ #include #include "pyutil.h" +#include "log.h" +#include "util.h" +#include "macro.h" PyDoc_STRVAR(module__doc__, "Python interface to the libsystemd-id128 library.\n\n" @@ -108,11 +111,9 @@ static int add_id(PyObject *module, const char* name, sd_id128_t id) { return PyModule_AddObject(module, name, obj); } -#pragma GCC diagnostic push -#pragma GCC diagnostic ignored "-Wmissing-prototypes" - #if PY_MAJOR_VERSION < 3 +DISABLE_WARNING_MISSING_PROTOTYPES; PyMODINIT_FUNC initid128(void) { PyObject *m; @@ -126,6 +127,7 @@ PyMODINIT_FUNC initid128(void) { #undef JOINER PyModule_AddStringConstant(m, "__version__", PACKAGE_VERSION); } +REENABLE_WARNING; #else @@ -137,6 +139,7 @@ static struct PyModuleDef module = { methods }; +DISABLE_WARNING_MISSING_PROTOTYPES; PyMODINIT_FUNC PyInit_id128(void) { PyObject *m; @@ -155,7 +158,6 @@ PyMODINIT_FUNC PyInit_id128(void) { return m; } +REENABLE_WARNING; #endif - -#pragma GCC diagnostic pop diff --git a/src/python-systemd/login.c b/src/python-systemd/login.c index 43f781922..e844f5fc6 100644 --- a/src/python-systemd/login.c +++ b/src/python-systemd/login.c @@ -316,12 +316,9 @@ static PyTypeObject MonitorType = { .tp_new = PyType_GenericNew, }; - -#pragma GCC diagnostic push -#pragma GCC diagnostic ignored "-Wmissing-prototypes" - #if PY_MAJOR_VERSION < 3 +DISABLE_WARNING_MISSING_PROTOTYPES; PyMODINIT_FUNC initlogin(void) { PyObject *m; @@ -337,6 +334,8 @@ PyMODINIT_FUNC initlogin(void) { Py_INCREF(&MonitorType); PyModule_AddObject(m, "Monitor", (PyObject *) &MonitorType); } +REENABLE_WARNING; + #else static struct PyModuleDef module = { @@ -347,6 +346,7 @@ static struct PyModuleDef module = { methods }; +DISABLE_WARNING_MISSING_PROTOTYPES; PyMODINIT_FUNC PyInit_login(void) { PyObject *m; @@ -371,7 +371,6 @@ PyMODINIT_FUNC PyInit_login(void) { return m; } +REENABLE_WARNING; #endif - -#pragma GCC diagnostic pop diff --git a/src/shared/macro.h b/src/shared/macro.h index 1941f0e65..458e0ebed 100644 --- a/src/shared/macro.h +++ b/src/shared/macro.h @@ -55,6 +55,10 @@ _Pragma("GCC diagnostic push"); \ _Pragma("GCC diagnostic ignored \"-Wformat-nonliteral\"") +#define DISABLE_WARNING_MISSING_PROTOTYPES \ + _Pragma("GCC diagnostic push"); \ + _Pragma("GCC diagnostic ignored \"-Wmissing-prototypes\"") + #define REENABLE_WARNING \ _Pragma("GCC diagnostic pop") -- 2.30.2