mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2024-11-01 15:11:24 +00:00
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
This commit is contained in:
parent
0475c9170e
commit
558aef86c2
@ -284,6 +284,14 @@ if test "$llvm_cv_target_arch" = "Unknown" ; then
|
||||
AC_MSG_WARN([Configuring LLVM for an unknown target archicture])
|
||||
fi
|
||||
|
||||
dnl Handle 32-bit linux systems running a 64-bit kernel.
|
||||
if test "$llvm_cv_os_type" = "Linux" -a "$llvm_cv_target_arch" = "x86_64" ; then
|
||||
AC_IS_LINUX_MIXED
|
||||
if test "$llvm_cv_linux_mixed" = "yes"; then
|
||||
llvm_cv_target_arch="x86"
|
||||
fi
|
||||
fi
|
||||
|
||||
# Determine the LLVM native architecture for the target
|
||||
case "$llvm_cv_target_arch" in
|
||||
x86) LLVM_NATIVE_ARCH="X86" ;;
|
||||
|
17
autoconf/m4/linux_mixed_64_32.m4
Normal file
17
autoconf/m4/linux_mixed_64_32.m4
Normal file
@ -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])
|
||||
])
|
||||
])
|
Loading…
Reference in New Issue
Block a user