diff options
| -rw-r--r-- | ConfigureChecks.cmake | 12 | ||||
| -rw-r--r-- | config.h.cmake | 1 | ||||
| -rw-r--r-- | src/socket_wrapper.c | 6 |
3 files changed, 19 insertions, 0 deletions
diff --git a/ConfigureChecks.cmake b/ConfigureChecks.cmake index 48455ef..71b34ce 100644 --- a/ConfigureChecks.cmake +++ b/ConfigureChecks.cmake @@ -172,6 +172,18 @@ int main(void) { }" HAVE_SOCKADDR_STORAGE) check_c_source_compiles(" +void test_constructor_attribute(void) __attribute__ ((constructor)); + +void test_constructor_attribute(void) +{ + return; +} + +int main(void) { + return 0; +}" HAVE_CONSTRUCTOR_ATTRIBUTE) + +check_c_source_compiles(" void test_destructor_attribute(void) __attribute__ ((destructor)); void test_destructor_attribute(void) diff --git a/config.h.cmake b/config.h.cmake index a9b8ce8..6786b8a 100644 --- a/config.h.cmake +++ b/config.h.cmake @@ -58,6 +58,7 @@ /**************************** OPTIONS ****************************/ #cmakedefine HAVE_GCC_THREAD_LOCAL_STORAGE 1 +#cmakedefine HAVE_CONSTRUCTOR_ATTRIBUTE 1 #cmakedefine HAVE_DESTRUCTOR_ATTRIBUTE 1 #cmakedefine HAVE_ADDRESS_SANITIZER_ATTRIBUTE 1 #cmakedefine HAVE_SOCKADDR_STORAGE 1 diff --git a/src/socket_wrapper.c b/src/socket_wrapper.c index e205a36..18c1626 100644 --- a/src/socket_wrapper.c +++ b/src/socket_wrapper.c @@ -95,6 +95,12 @@ enum swrap_dbglvl_e { #define PRINTF_ATTRIBUTE(a,b) #endif /* HAVE_FUNCTION_ATTRIBUTE_FORMAT */ +#ifdef HAVE_CONSTRUCTOR_ATTRIBUTE +#define CONSTRUCTOR_ATTRIBUTE __attribute__ ((constructor)) +#else +#define CONSTRUCTOR_ATTRIBUTE +#endif /* HAVE_CONSTRUCTOR_ATTRIBUTE */ + #ifdef HAVE_DESTRUCTOR_ATTRIBUTE #define DESTRUCTOR_ATTRIBUTE __attribute__ ((destructor)) #else |
