diff options
| author | Alex Crichton <alex@alexcrichton.com> | 2015-03-23 15:11:18 -0700 |
|---|---|---|
| committer | Alex Crichton <alex@alexcrichton.com> | 2015-03-23 15:11:18 -0700 |
| commit | d8b06284ea88bdebdd95317e1313bd05a2ef5388 (patch) | |
| tree | 8263dfebaa991dba2dcd9cfcc9f79532d595cabe | |
| parent | 7101ff4513c1756c69d6023a391fdebe0809ea37 (diff) | |
| parent | 1aa75cea1de6b318d015b205f584ec5760f866e3 (diff) | |
| download | rust-d8b06284ea88bdebdd95317e1313bd05a2ef5388.tar.gz rust-d8b06284ea88bdebdd95317e1313bd05a2ef5388.zip | |
rollup merge of #23650: brson/32-bit-userspace
The variable '$SHELL' is not actually defined by 'sh'. This makes Rust build correctly in popular Docker images.
| -rwxr-xr-x | configure | 15 |
1 files 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 |
