From 1aa75cea1de6b318d015b205f584ec5760f866e3 Mon Sep 17 00:00:00 2001 From: Brian Anderson Date: Mon, 23 Mar 2015 14:27:09 -0700 Subject: [PATCH] configure: Fix detection of 32-bit Linux userspace The variable '$SHELL' is not actually defined by 'sh'. --- configure | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/configure b/configure index fdc28eee8c8..683c7fd0563 100755 --- a/configure +++ b/configure @@ -479,10 +479,19 @@ esac # Detect 64 bit linux systems with 32 bit userland and force 32 bit compilation if [ $CFG_OSTYPE = unknown-linux-gnu -a $CFG_CPUTYPE = x86_64 ] then - file -L "$SHELL" | grep -q "x86[_-]64" - if [ $? != 0 ]; then - CFG_CPUTYPE=i686 + # $SHELL does not exist in standard 'sh', so probably only exists + # if configure is running in an interactive bash shell. /usr/bin/env + # exists *everywhere*. + BIN_TO_PROBE="$SHELL" + if [ -z "$BIN_TO_PROBE" -a -e "/usr/bin/env" ]; then + BIN_TO_PROBE="/usr/bin/env" fi + if [ -n "$BIN_TO_PROBE" ]; then + file -L "$BIN_TO_PROBE" | grep -q "x86[_-]64" + if [ $? != 0 ]; then + CFG_CPUTYPE=i686 + fi + fi fi