mirror of
https://github.com/postgres/postgres.git
synced 2025-07-28 23:42:10 +03:00
Add ./configure check for "lz4" command
Some environments may compile with --with-lz4 while the command "lz4" goes missing, causing two failures in the TAP tests of pg_verifybackup (008_untar.pl and 010_client_untar.pl) as the code assumed that the command always existed with a hardcoded value in src/Makefile.global. Rather than this method, this adds a ./configure check based on PGAC_PATH_PROGS() to find automatically the command and get an absolute path to it. Both tests need to be adjusted for the case where the command does not exist, actually, as Makefile.global would set now LZ4 to an empty value in this case. The TAP tests of pg_receivewal already do that. Per report from buildfarm member copperhead, as an effect ofdab2984
. The origin of the failure is actuallybabbbb5
that did not centralize the check for the existence of a "lz4" command at ./configure to shave a few cycles. Note that one just needs to tweak an environment to move "lz4" out of the way to reproduce the problem, which is what I did to test this change. Per discussion with Robert Haas, Tom Lane, Andres Freund and myself. Discussion: https://postgr.es/m/Ygc51WVAFGocSu4h@paquier.xyz
This commit is contained in:
55
configure
vendored
55
configure
vendored
@ -650,6 +650,7 @@ CFLAGS_ARMV8_CRC32C
|
||||
CFLAGS_SSE42
|
||||
have_win32_dbghelp
|
||||
LIBOBJS
|
||||
LZ4
|
||||
UUID_LIBS
|
||||
LDAP_LIBS_BE
|
||||
LDAP_LIBS_FE
|
||||
@ -13832,6 +13833,60 @@ fi
|
||||
|
||||
fi
|
||||
|
||||
if test -z "$LZ4"; then
|
||||
for ac_prog in lz4
|
||||
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_path_LZ4+:} false; then :
|
||||
$as_echo_n "(cached) " >&6
|
||||
else
|
||||
case $LZ4 in
|
||||
[\\/]* | ?:[\\/]*)
|
||||
ac_cv_path_LZ4="$LZ4" # Let the user override the test with a path.
|
||||
;;
|
||||
*)
|
||||
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_path_LZ4="$as_dir/$ac_word$ac_exec_ext"
|
||||
$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
|
||||
|
||||
;;
|
||||
esac
|
||||
fi
|
||||
LZ4=$ac_cv_path_LZ4
|
||||
if test -n "$LZ4"; then
|
||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $LZ4" >&5
|
||||
$as_echo "$LZ4" >&6; }
|
||||
else
|
||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
|
||||
$as_echo "no" >&6; }
|
||||
fi
|
||||
|
||||
|
||||
test -n "$LZ4" && break
|
||||
done
|
||||
|
||||
else
|
||||
# Report the value of LZ4 in configure's output in all cases.
|
||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for LZ4" >&5
|
||||
$as_echo_n "checking for LZ4... " >&6; }
|
||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $LZ4" >&5
|
||||
$as_echo "$LZ4" >&6; }
|
||||
fi
|
||||
|
||||
if test "$with_lz4" = yes; then
|
||||
for ac_header in lz4.h
|
||||
do :
|
||||
|
Reference in New Issue
Block a user