From 3b0149cf3d235247b051b7cb7663bc3dadbb999b Mon Sep 17 00:00:00 2001 From: Pavel Raiskup Date: Thu, 1 Apr 2021 17:17:52 +0200 Subject: [PATCH] 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 --- 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 d3bcaf62f6213e7635e9c4a574f39a831e333980 Mon Sep 17 00:00:00 2001 From: Pavel Raiskup Date: Thu, 1 Apr 2021 17:26:28 +0200 Subject: [PATCH] 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 --- 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)