diff options
author | Nick Lewycky <nicholas@mxc.ca> | 2009-09-29 05:40:45 +0000 |
---|---|---|
committer | Nick Lewycky <nicholas@mxc.ca> | 2009-09-29 05:40:45 +0000 |
commit | 558aef86c2d923e2c4bb62a7cf328dd5869525de (patch) | |
tree | 6c3105edc31fa3f0b8c9220b2ffbb21c1f9d4a98 /autoconf/m4 | |
parent | 0475c9170e9621292a48c688c3976031be5650bb (diff) |
On Linux, uname -m reports the kernel type. Some Linux systems are 32-bit but
with a 64-bit kernel, which confuses LLVM. Make LLVM double-check this by
checking which defines the system gcc actually sets.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83047 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'autoconf/m4')
-rw-r--r-- | autoconf/m4/linux_mixed_64_32.m4 | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/autoconf/m4/linux_mixed_64_32.m4 b/autoconf/m4/linux_mixed_64_32.m4 new file mode 100644 index 0000000000..123491f87e --- /dev/null +++ b/autoconf/m4/linux_mixed_64_32.m4 @@ -0,0 +1,17 @@ +# +# Some Linux machines run a 64-bit kernel with a 32-bit userspace. 'uname -m' +# shows these as x86_64. Ask the system 'gcc' what it thinks. +# +AC_DEFUN([AC_IS_LINUX_MIXED], +[AC_CACHE_CHECK(for 32-bit userspace on 64-bit system,llvm_cv_linux_mixed, +[ AC_LANG_PUSH([C]) + AC_COMPILE_IFELSE([AC_LANG_PROGRAM( + [[#ifndef __x86_64__ + error: Not x86-64 even if uname says so! + #endif + ]])], + [llvm_cv_linux_mixed=no], + [llvm_cv_linux_mixed=yes]) + AC_LANG_POP([C]) +]) +]) |