From ccd7c0b0e6222ca41670eb9a29cc1f9346dad772 Mon Sep 17 00:00:00 2001 From: David Bremner Date: Tue, 19 May 2015 22:48:24 +0200 Subject: [PATCH] configure: Add sanity checking for environment variables Passing in environment variables incompatible with the compiler may cause other parts of the configure script to fail in hard to understand ways, so we abort early. --- configure | 32 ++++++++++++++++++++++++++++++-- 1 file changed, 30 insertions(+), 2 deletions(-) diff --git a/configure b/configure index 4af7ba94..2065fcdf 100755 --- a/configure +++ b/configure @@ -47,6 +47,7 @@ CC=${CC:-cc} CXX=${CXX:-c++} CFLAGS=${CFLAGS:--g -O2} CPPFLAGS=${CPPFLAGS:-} +CXXFLAGS_for_sh=${CXXFLAGS:-${CFLAGS}} CXXFLAGS=${CXXFLAGS:-\$(CFLAGS)} LDFLAGS=${LDFLAGS:-} XAPIAN_CONFIG=${XAPIAN_CONFIG:-xapian-config} @@ -269,6 +270,35 @@ dependencies are available: EOF errors=0 +printf "int main(void){return 0;}\n" > minimal.c + +printf "Sanity checking C compilation environment... " +if ${CC} ${CFLAGS} ${CPPFLAGS} minimal.c ${LDFLAGS} -o minimal > /dev/null 2>&1 +then + printf "OK.\n" +else + printf "Fail.\n" + errors=$((errors + 1)) +fi + +printf "Sanity checking C++ compilation environment... " +if ${CXX} ${CXXFLAGS_for_sh} ${CPPFLAGS} minimal.c ${LDFLAGS} -o minimal > /dev/null 2>&1 +then + printf "OK.\n" +else + printf "Fail.\n" + errors=$((errors + 1)) +fi + +if [ $errors -gt 0 ]; then + cat < /dev/null 2>&1; then have_pkg_config=1 @@ -690,8 +720,6 @@ else fi rm -f compat/check_asctime -printf "int main(void){return 0;}\n" > minimal.c - printf "Checking for rpath support... " if ${CC} -Wl,--enable-new-dtags -Wl,-rpath,/tmp/ -o minimal minimal.c >/dev/null 2>&1 then