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

index 0e2d84f90d16f9b7afeb0016dcd6f8473fbbf944..930904e403687e48dfd12227d6f00c6b687ee817 100644 (file)
@@ -163,6 +163,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)
+
 # If this produces a warning treat it as error!
 set(CMAKE_REQUIRED_FLAGS "-Werror")
 check_c_source_compiles("
index a3f38156942141d1d923d87f01c6669885ac9247..8e0572342ec2d107d1fa393277ee7465c1e2a952 100644 (file)
@@ -61,6 +61,8 @@
 #cmakedefine HAVE_GCC_ATOMIC_BUILTINS 1
 #cmakedefine HAVE_CONSTRUCTOR_ATTRIBUTE 1
 #cmakedefine HAVE_DESTRUCTOR_ATTRIBUTE 1
+#cmakedefine HAVE_PRAGMA_INIT 1
+#cmakedefine HAVE_PRAGMA_FINI 1
 #cmakedefine HAVE_ADDRESS_SANITIZER_ATTRIBUTE 1
 #cmakedefine HAVE_FUNCTION_ATTRIBUTE_FORMAT 1
 #cmakedefine HAVE_FALLTHROUGH_ATTRIBUTE 1