Skip to content

Commit

Permalink
Set ARCH to x86 on mixed 32/64-bit Linux systems.
Browse files Browse the repository at this point in the history
Remove the explicit if OS = Darwin test around the setting of -m32/-m64.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@66765 91177308-0d34-0410-b5e6-96231b3b80d8
  • Loading branch information
nlewycky committed Mar 12, 2009
1 parent 054401b commit 8bc0803
Show file tree
Hide file tree
Showing 3 changed files with 29 additions and 7 deletions.
12 changes: 5 additions & 7 deletions Makefile.rules
Original file line number Diff line number Diff line change
Expand Up @@ -522,13 +522,11 @@ ifdef UNIVERSAL
# Building universal cannot compute dependencies automatically.
DISABLE_AUTO_DEPENDENCIES=1
else
ifeq ($(OS),Darwin)
ifeq ($(ARCH),x86_64)
CompileCommonOpts += -m64
else
ifeq ($(ARCH),x86)
CompileCommonOpts += -m32
endif
ifeq ($(ARCH),x86_64)
CompileCommonOpts += -m64
else
ifeq ($(ARCH),x86)
CompileCommonOpts += -m32
endif
endif
endif
Expand Down
7 changes: 7 additions & 0 deletions autoconf/configure.ac
Original file line number Diff line number Diff line change
Expand Up @@ -233,6 +233,13 @@ if test "$llvm_cv_target_arch" = "Unknown" ; then
AC_MSG_WARN([Configuring LLVM for an unknown target archicture])
fi

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

dnl Define a substitution, ARCH, for the target architecture
AC_SUBST(ARCH,$llvm_cv_target_arch)

Expand Down
17 changes: 17 additions & 0 deletions autoconf/m4/linux_mixed_64_32.m4
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
#
# Some Linux machines run a 64-bit kernel with a 32-bit userspace. 'uname -m'
# shows these at x86_64, so in that case, 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])
])
])

0 comments on commit 8bc0803

Please sign in to comment.