configure: check for pragma init/fini for constructors/destructors
authorBjörn Jacke <bjacke@samba.org>
Fri, 30 Oct 2020 14:31:42 +0000 (15:31 +0100)
committerAndreas Schneider <asn@samba.org>
Wed, 4 Nov 2020 15:39:54 +0000 (16:39 +0100)
Signed-off-by: Bjoern Jacke <bjacke@samba.org>
Reviewed-by: Andreas Schneider <asn@samba.org>
ConfigureChecks.cmake
config.h.cmake

index 4a2f55e95258f67ad310f0c9671a28ce0333fa61..3c8e61573a7a392738e89fcf4e427b38643d8615 100644 (file)
@@ -216,6 +216,32 @@ int main(void) {
     return 0;
 }" 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))
 
index d3ceb238f0274e8905d1e2535f6dea30dbd52b13..38166d20d6d21e8e4c2329159f20657cedb8afa1 100644 (file)
@@ -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