From 56d3138b309b19cb9460ed4d05bb63302a97b703 Mon Sep 17 00:00:00 2001 From: Pavel Raiskup Date: Thu, 1 Apr 2021 17:17:52 +0200 Subject: [PATCH 1/5] configure.ac: avoid side-effects in AC_CACHE_VAL In the COMMANDS-TO-SET-IT argument, per Autoconf docs: https://www.gnu.org/software/autoconf/manual/autoconf-2.63/html_node/Caching-Results.html Signed-off-by: Pavel Raiskup --- configure.ac | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/configure.ac b/configure.ac index a106d35e..d333496d 100644 --- a/configure.ac +++ b/configure.ac @@ -220,11 +220,14 @@ void foo() { int i=0;} int main() { void *self, *ptr1, *ptr2; self=dlopen(NULL,RTLD_LAZY); if(self) { ptr1=dlsym(self,"foo"); ptr2=dlsym(self,"_foo"); if(ptr1 && !ptr2) exit(0); } exit(1); } -], [sasl_cv_dlsym_adds_uscore=yes], sasl_cv_dlsym_adds_uscore=no - AC_DEFINE(DLSYM_NEEDS_UNDERSCORE, [], [Do we need a leading _ for dlsym?]), +], [sasl_cv_dlsym_adds_uscore=yes], sasl_cv_dlsym_adds_uscore=no, AC_MSG_WARN(cross-compiler, we'll do our best))) LIBS="$cmu_save_LIBS" AC_MSG_RESULT($sasl_cv_dlsym_adds_uscore) + + if test "$sasl_cv_dlsym_adds_uscore" = no; then + AC_DEFINE(DLSYM_NEEDS_UNDERSCORE, [], [Do we need a leading _ for dlsym?]) + fi fi fi From 004869fdf66a2d951fdf0e1c7809652394188368 Mon Sep 17 00:00:00 2001 From: Pavel Raiskup Date: Thu, 1 Apr 2021 17:26:28 +0200 Subject: [PATCH 2/5] configure.ac: properly quote macro arguments Autoconf 2.70+ is more picky about the quotation (even though with previous versions the arguments should have been quoted, too). When we don't quote macros inside the AC_CACHE_VAL macro - some of the Autoconf initialization is wrongly ordered in ./configure script and we keep seeing bugs like: ./configure: line 2165: ac_fn_c_try_run: command not found Original report: https://bugzilla.redhat.com/1943013 Signed-off-by: Pavel Raiskup --- configure.ac | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/configure.ac b/configure.ac index d333496d..7281cba0 100644 --- a/configure.ac +++ b/configure.ac @@ -213,15 +213,16 @@ if test $sasl_cv_uscore = yes; then AC_MSG_CHECKING(whether dlsym adds the underscore for us) cmu_save_LIBS="$LIBS" LIBS="$LIBS $SASL_DL_LIB" - AC_CACHE_VAL(sasl_cv_dlsym_adds_uscore,AC_TRY_RUN( [ + AC_CACHE_VAL([sasl_cv_dlsym_adds_uscore], + [AC_TRY_RUN([ #include #include void foo() { int i=0;} int main() { void *self, *ptr1, *ptr2; self=dlopen(NULL,RTLD_LAZY); if(self) { ptr1=dlsym(self,"foo"); ptr2=dlsym(self,"_foo"); if(ptr1 && !ptr2) exit(0); } exit(1); } -], [sasl_cv_dlsym_adds_uscore=yes], sasl_cv_dlsym_adds_uscore=no, - AC_MSG_WARN(cross-compiler, we'll do our best))) +], [sasl_cv_dlsym_adds_uscore=yes], [sasl_cv_dlsym_adds_uscore=no], + [AC_MSG_WARN(cross-compiler, we'll do our best)])]) LIBS="$cmu_save_LIBS" AC_MSG_RESULT($sasl_cv_dlsym_adds_uscore) From 999255e05719f61bdbce8125be2ee774493aa64a Mon Sep 17 00:00:00 2001 From: Ignacio Casal Quinteiro Date: Wed, 3 Mar 2021 09:18:09 +0100 Subject: [PATCH 3/5] configure: fix check for dlsym underscore The exit function requires to include stdlib otherwise this will fail on new versions of MacOS Signed-off-by: Ignacio Casal Quinteiro --- configure.ac | 1 + 1 file changed, 1 insertion(+) diff --git a/configure.ac b/configure.ac index a106d35e..f3e5ddc3 100644 --- a/configure.ac +++ b/configure.ac @@ -216,6 +216,7 @@ if test $sasl_cv_uscore = yes; then AC_CACHE_VAL(sasl_cv_dlsym_adds_uscore,AC_TRY_RUN( [ #include #include +#include void foo() { int i=0;} int main() { void *self, *ptr1, *ptr2; self=dlopen(NULL,RTLD_LAZY); if(self) { ptr1=dlsym(self,"foo"); ptr2=dlsym(self,"_foo"); From 15cbc14aeb4b754b1b3db65f7c892c7deabaab41 Mon Sep 17 00:00:00 2001 From: Pavel Raiskup Date: Thu, 1 Apr 2021 17:17:52 +0200 Subject: [PATCH 4/5] configure.ac: avoid side-effects in AC_CACHE_VAL In the COMMANDS-TO-SET-IT argument, per Autoconf docs: https://www.gnu.org/software/autoconf/manual/autoconf-2.63/html_node/Caching-Results.html Signed-off-by: Pavel Raiskup --- configure.ac | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/configure.ac b/configure.ac index f3e5ddc3..79c93c86 100644 --- a/configure.ac +++ b/configure.ac @@ -221,11 +221,14 @@ void foo() { int i=0;} int main() { void *self, *ptr1, *ptr2; self=dlopen(NULL,RTLD_LAZY); if(self) { ptr1=dlsym(self,"foo"); ptr2=dlsym(self,"_foo"); if(ptr1 && !ptr2) exit(0); } exit(1); } -], [sasl_cv_dlsym_adds_uscore=yes], sasl_cv_dlsym_adds_uscore=no - AC_DEFINE(DLSYM_NEEDS_UNDERSCORE, [], [Do we need a leading _ for dlsym?]), +], [sasl_cv_dlsym_adds_uscore=yes], sasl_cv_dlsym_adds_uscore=no, AC_MSG_WARN(cross-compiler, we'll do our best))) LIBS="$cmu_save_LIBS" AC_MSG_RESULT($sasl_cv_dlsym_adds_uscore) + + if test "$sasl_cv_dlsym_adds_uscore" = no; then + AC_DEFINE(DLSYM_NEEDS_UNDERSCORE, [], [Do we need a leading _ for dlsym?]) + fi fi fi From 5664c3f535289ce9efb513a2897991b5c436bb44 Mon Sep 17 00:00:00 2001 From: Pavel Raiskup Date: Thu, 1 Apr 2021 17:26:28 +0200 Subject: [PATCH 5/5] configure.ac: properly quote macro arguments Autoconf 2.70+ is more picky about the quotation (even though with previous versions the arguments should have been quoted, too). When we don't quote macros inside the AC_CACHE_VAL macro - some of the Autoconf initialization is wrongly ordered in ./configure script and we keep seeing bugs like: ./configure: line 2165: ac_fn_c_try_run: command not found Original report: https://bugzilla.redhat.com/1943013 Signed-off-by: Pavel Raiskup --- configure.ac | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/configure.ac b/configure.ac index 79c93c86..aa0dc38c 100644 --- a/configure.ac +++ b/configure.ac @@ -213,7 +213,8 @@ if test $sasl_cv_uscore = yes; then AC_MSG_CHECKING(whether dlsym adds the underscore for us) cmu_save_LIBS="$LIBS" LIBS="$LIBS $SASL_DL_LIB" - AC_CACHE_VAL(sasl_cv_dlsym_adds_uscore,AC_TRY_RUN( [ + AC_CACHE_VAL([sasl_cv_dlsym_adds_uscore], + [AC_TRY_RUN([ #include #include #include @@ -221,8 +222,8 @@ void foo() { int i=0;} int main() { void *self, *ptr1, *ptr2; self=dlopen(NULL,RTLD_LAZY); if(self) { ptr1=dlsym(self,"foo"); ptr2=dlsym(self,"_foo"); if(ptr1 && !ptr2) exit(0); } exit(1); } -], [sasl_cv_dlsym_adds_uscore=yes], sasl_cv_dlsym_adds_uscore=no, - AC_MSG_WARN(cross-compiler, we'll do our best))) +], [sasl_cv_dlsym_adds_uscore=yes], [sasl_cv_dlsym_adds_uscore=no], + [AC_MSG_WARN(cross-compiler, we'll do our best)])]) LIBS="$cmu_save_LIBS" AC_MSG_RESULT($sasl_cv_dlsym_adds_uscore)