diff options
| author | Björn Jacke <bjacke@samba.org> | 2020-10-30 15:31:42 +0100 |
|---|---|---|
| committer | Andreas Schneider <asn@samba.org> | 2020-11-04 16:39:54 +0100 |
| commit | 83a4c3c3c53c6ab171ee786ba7c9f509d73f36fd (patch) | |
| tree | 6436059d568d212b693bb7212293d005f19d2b63 | |
| parent | 3b6e2078e07cf379b5a65edb5e967d4f7c7b9e0a (diff) | |
| download | socket_wrapper-83a4c3c3c53c6ab171ee786ba7c9f509d73f36fd.tar.gz socket_wrapper-83a4c3c3c53c6ab171ee786ba7c9f509d73f36fd.tar.xz socket_wrapper-83a4c3c3c53c6ab171ee786ba7c9f509d73f36fd.zip | |
configure: check for pragma init/fini for constructors/destructors
Signed-off-by: Bjoern Jacke <bjacke@samba.org>
Reviewed-by: Andreas Schneider <asn@samba.org>
| -rw-r--r-- | ConfigureChecks.cmake | 26 | ||||
| -rw-r--r-- | config.h.cmake | 2 |
2 files changed, 28 insertions, 0 deletions
diff --git a/ConfigureChecks.cmake b/ConfigureChecks.cmake index 4a2f55e..3c8e615 100644 --- a/ConfigureChecks.cmake +++ b/ConfigureChecks.cmake @@ -217,6 +217,32 @@ int main(void) { }" HAVE_DESTRUCTOR_ATTRIBUTE) check_c_source_compiles(" +#pragma init (test_constructor) +void test_constructor(void); + +void test_constructor(void) +{ + return; +} + +int main(void) { + return 0; +}" HAVE_PRAGMA_INIT) + +check_c_source_compiles(" +#pragma fini (test_destructor) +void test_destructor(void); + +void test_destructor(void) +{ + return; +} + +int main(void) { + return 0; +}" HAVE_PRAGMA_FINI) + +check_c_source_compiles(" #define FALL_THROUGH __attribute__((fallthrough)) int main(void) { diff --git a/config.h.cmake b/config.h.cmake index d3ceb23..38166d2 100644 --- a/config.h.cmake +++ b/config.h.cmake @@ -66,6 +66,8 @@ #cmakedefine HAVE_GCC_THREAD_LOCAL_STORAGE 1 #cmakedefine HAVE_CONSTRUCTOR_ATTRIBUTE 1 #cmakedefine HAVE_DESTRUCTOR_ATTRIBUTE 1 +#cmakedefine HAVE_PRAGMA_INIT 1 +#cmakedefine HAVE_PRAGMA_FINI 1 #cmakedefine HAVE_FALLTHROUGH_ATTRIBUTE 1 #cmakedefine HAVE_ADDRESS_SANITIZER_ATTRIBUTE 1 #cmakedefine HAVE_SOCKADDR_STORAGE 1 |
