[SCM] pam wrapper repository - branch master updated
Andreas Schneider
asn at samba.org
Thu Dec 3 13:20:42 UTC 2020
The branch, master has been updated
via 7401af4 pam_wrapper.c: fall back to pragma init/fini for constructor/destructor if possible
via f7ba680 configure: check for pragma init/fini for constructors/destructors
from ab2d90c Bump version to 1.1.3
https://git.samba.org/?p=pam_wrapper.git;a=shortlog;h=master
- Log -----------------------------------------------------------------
commit 7401af4dbe1a8dc5849c3d7fc2a7890413ab394e
Author: Björn Jacke <bjacke at samba.org>
Date: Fri Oct 30 15:52:40 2020 +0100
pam_wrapper.c: fall back to pragma init/fini for constructor/destructor if possible
Signed-off-by: Bjoern Jacke <bjacke at samba.org>
Reviewed-by: Andreas Schneider <asn at samba.org>
commit f7ba680493ec6ae191a633799682eededdea1d83
Author: Björn Jacke <bjacke at samba.org>
Date: Fri Oct 30 15:51:38 2020 +0100
configure: check for pragma init/fini for constructors/destructors
Signed-off-by: Bjoern Jacke <bjacke at samba.org>
Reviewed-by: Andreas Schneider <asn at samba.org>
-----------------------------------------------------------------------
Summary of changes:
ConfigureChecks.cmake | 26 ++++++++++++++++++++++++++
config.h.cmake | 2 ++
src/pam_wrapper.c | 7 +++++++
3 files changed, 35 insertions(+)
Changeset truncated at 500 lines:
diff --git a/ConfigureChecks.cmake b/ConfigureChecks.cmake
index 8dcf978..dcf5f31 100644
--- a/ConfigureChecks.cmake
+++ b/ConfigureChecks.cmake
@@ -140,6 +140,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("
void log_fn(const char *format, ...) __attribute__ ((format (printf, 1, 2)));
diff --git a/config.h.cmake b/config.h.cmake
index 01a54f3..80208aa 100644
--- a/config.h.cmake
+++ b/config.h.cmake
@@ -40,6 +40,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_FUNCTION_ATTRIBUTE_FORMAT 1
/*************************** ENDIAN *****************************/
diff --git a/src/pam_wrapper.c b/src/pam_wrapper.c
index dd69c43..6801d7b 100644
--- a/src/pam_wrapper.c
+++ b/src/pam_wrapper.c
@@ -311,7 +311,14 @@ static struct pwrap pwrap;
*********************************************************/
bool pam_wrapper_enabled(void);
+#if ! defined(HAVE_CONSTRUCTOR_ATTRIBUTE) && defined(HAVE_PRAGMA_INIT)
+/* xlC and other oldschool compilers support (only) this */
+#pragma init (pwrap_constructor)
+#endif
void pwrap_constructor(void) CONSTRUCTOR_ATTRIBUTE;
+#if ! defined(HAVE_DESTRUCTOR_ATTRIBUTE) && defined(HAVE_PRAGMA_FINI)
+#pragma fini (pwrap_destructor)
+#endif
void pwrap_destructor(void) DESTRUCTOR_ATTRIBUTE;
/*********************************************************
--
pam wrapper repository
More information about the samba-cvs
mailing list