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. --- This doesn't actually fix the problem Ronny points out, but a more serious one where configure can actually fail when using gcc, if e.g. nonsense is passed in CFLAGS. configure | 30 ++++++++++++++++++++++++++++-- 1 file changed, 28 insertions(+), 2 deletions(-) diff --git a/configure b/configure index 4af7ba9..cf618e8 100755 --- a/configure +++ b/configure @@ -269,6 +269,34 @@ 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} ${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 <<EOF +*** Error: Initial sanity checking of environment failed. Please try +running configure in a clean environment, and if the problem persists, +report a bug. +EOF + exit 1 +fi if pkg-config --version > /dev/null 2>&1; then have_pkg_config=1 @@ -690,8 +718,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 -- 2.1.4