From: Tom Lane Date: Sun, 18 Nov 2018 04:16:00 +0000 (-0500) Subject: Fix AC_REQUIRES breakage in LLVM autoconf tests. X-Git-Tag: REL_11_2~179 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=b81ef6386ea890423f1f15a67ff3bc679f9f63d6;p=postgresql Fix AC_REQUIRES breakage in LLVM autoconf tests. Any Autoconf macro that uses AC_REQUIRES -- directly or indirectly -- must not be inside a plain shell "if" test; if it is, whatever code gets pulled in by the AC_REQUIRES will also be inside that "if". Instead of "if" we can use AS_IF, which knows how to get this right (cf commit 01051a987). The only immediate problem from getting this wrong was that AC_PROG_AWK had to be run twice, once inside the "if llvm" block and once in the main line. However, it broke a different patch I'm about to submit more thoroughly. --- diff --git a/configure b/configure index 6787a4b23c..0980773206 100755 --- a/configure +++ b/configure @@ -4765,8 +4765,7 @@ fi -if test "$with_llvm" = yes ; then - for ac_prog in gawk mawk nawk awk +for ac_prog in gawk mawk nawk awk do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 @@ -4808,6 +4807,7 @@ fi test -n "$AWK" && break done +if test "$with_llvm" = yes; then : @@ -9175,48 +9175,6 @@ else $as_echo "no, using $LN_S" >&6; } fi -for ac_prog in gawk mawk nawk awk -do - # Extract the first word of "$ac_prog", so it can be a program name with args. -set dummy $ac_prog; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_AWK+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$AWK"; then - ac_cv_prog_AWK="$AWK" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_AWK="$ac_prog" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -AWK=$ac_cv_prog_AWK -if test -n "$AWK"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AWK" >&5 -$as_echo "$AWK" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - - test -n "$AWK" && break -done - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for a thread-safe mkdir -p" >&5 $as_echo_n "checking for a thread-safe mkdir -p... " >&6; } if test -z "$MKDIR_P"; then diff --git a/configure.in b/configure.in index c1bc8ca3b2..3ff842f171 100644 --- a/configure.in +++ b/configure.in @@ -383,9 +383,8 @@ AC_SUBST(SUN_STUDIO_CC) PGAC_ARG_BOOL(with, llvm, no, [build with LLVM based JIT support], [AC_DEFINE([USE_LLVM], 1, [Define to 1 to build with LLVM based JIT support. (--with-llvm)])]) AC_SUBST(with_llvm) -if test "$with_llvm" = yes ; then - PGAC_LLVM_SUPPORT() -fi +dnl must use AS_IF here, else AC_REQUIRES inside PGAC_LLVM_SUPPORT malfunctions +AS_IF([test "$with_llvm" = yes], [PGAC_LLVM_SUPPORT()]) unset CFLAGS @@ -1009,7 +1008,6 @@ AC_SUBST(install_bin) PGAC_PATH_PROGS(TAR, tar) AC_PROG_LN_S -AC_PROG_AWK AC_PROG_MKDIR_P # When Autoconf chooses install-sh as mkdir -p program it tries to generate # a relative path to it in each makefile where it substitutes it. This clashes