summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--ConfigureChecks.cmake8
-rw-r--r--config.h.cmake1
-rw-r--r--src/socket_wrapper.c4
3 files changed, 11 insertions, 2 deletions
diff --git a/ConfigureChecks.cmake b/ConfigureChecks.cmake
index dd3fdb8..5b4813b 100644
--- a/ConfigureChecks.cmake
+++ b/ConfigureChecks.cmake
@@ -169,6 +169,14 @@ int main(void) {
return 0;
}" HAVE_GCC_THREAD_LOCAL_STORAGE)
+check_c_source_compiles("
+void log_fn(const char *format, ...) __attribute__ ((format (printf, 1, 2)));
+
+int main(void) {
+ return 0;
+}" HAVE_FUNCTION_ATTRIBUTE_FORMAT)
+
+
check_library_exists(dl dlopen "" HAVE_LIBDL)
if (HAVE_LIBDL)
find_library(DLFCN_LIBRARY dl)
diff --git a/config.h.cmake b/config.h.cmake
index 3def5e7..81a6c85 100644
--- a/config.h.cmake
+++ b/config.h.cmake
@@ -36,6 +36,7 @@
#cmakedefine HAVE_DESTRUCTOR_ATTRIBUTE 1
#cmakedefine HAVE_SOCKADDR_STORAGE 1
#cmakedefine HAVE_IPV6 1
+#cmakedefine HAVE_FUNCTION_ATTRIBUTE_FORMAT 1
#cmakedefine HAVE_APPLE 1
#cmakedefine HAVE_LIBSOCKET 1
diff --git a/src/socket_wrapper.c b/src/socket_wrapper.c
index 4964ec1..f6e14b7 100644
--- a/src/socket_wrapper.c
+++ b/src/socket_wrapper.c
@@ -73,11 +73,11 @@ enum swrap_dbglvl_e {
};
/* GCC have printf type attribute check. */
-#ifdef __GNUC__
+#ifdef HAVE_FUNCTION_ATTRIBUTE_FORMAT
#define PRINTF_ATTRIBUTE(a,b) __attribute__ ((__format__ (__printf__, a, b)))
#else
#define PRINTF_ATTRIBUTE(a,b)
-#endif /* __GNUC__ */
+#endif /* HAVE_FUNCTION_ATTRIBUTE_FORMAT */
#ifdef HAVE_DESTRUCTOR_ATTRIBUTE
#define DESTRUCTOR_ATTRIBUTE __attribute__ ((destructor))