aboutsummaryrefslogtreecommitdiff
path: root/libgo/configure.ac
diff options
context:
space:
mode:
authorIan Lance Taylor <ian@gcc.gnu.org>2011-01-24 23:42:22 +0000
committerIan Lance Taylor <ian@gcc.gnu.org>2011-01-24 23:42:22 +0000
commitca11cc98b9daa5e5514b17c24563b49cdcbdc58c (patch)
treed68735895798976d2d62e7deab3a8b9b61b97a32 /libgo/configure.ac
parente8ba94fc1fe2d7d96bfc2fa5293c1bb0b86a5b52 (diff)
downloadgcc-ca11cc98b9daa5e5514b17c24563b49cdcbdc58c.zip
gcc-ca11cc98b9daa5e5514b17c24563b49cdcbdc58c.tar.gz
gcc-ca11cc98b9daa5e5514b17c24563b49cdcbdc58c.tar.bz2
Recognize m68k, mips, PPC. Don't require arch syscall files to exist.
From-SVN: r169185
Diffstat (limited to 'libgo/configure.ac')
-rw-r--r--libgo/configure.ac61
1 files changed, 54 insertions, 7 deletions
diff --git a/libgo/configure.ac b/libgo/configure.ac
index 3d272ec..e1c0dd0 100644
--- a/libgo/configure.ac
+++ b/libgo/configure.ac
@@ -135,11 +135,20 @@ AC_SUBST(GOOS)
dnl N.B. Keep in sync with gcc/testsuite/go.test/go-test.exp (go-set-goarch).
is_386=no
is_arm=no
+is_m68k=no
+is_mips=no
+is_mips64=no
+is_ppc=no
+is_ppc64=no
is_sparc=no
is_sparc64=no
is_x86_64=no
GOARCH=unknown
case ${host} in
+ arm*-*-* | strongarm*-*-* | ep9312*-*-* | xscale-*-*)
+ is_arm=yes
+ GOARCH=arm
+ ;;
changequote(,)dnl
i[34567]86-*-* | x86_64-*-*)
changequote([,])dnl
@@ -149,16 +158,38 @@ changequote([,])dnl
#endif],
[is_386=yes], [is_x86_64=yes])
if test "$is_386" = "yes"; then
- is_386=yes
GOARCH=386
else
- is_x86_64=yes
GOARCH=amd64
fi
;;
- arm*-*-* | strongarm*-*-* | ep9312*-*-* | xscale-*-*)
- is_arm=yes
- GOARCH=arm
+ m68k*-*-*)
+ is_m68k=yes
+ GOARCH=m68k
+ ;;
+ mips*-*-*)
+ AC_PREPROC_IFELSE([
+#ifdef __mips64
+#error 64-bit
+#endif],
+[is_mips=yes], [is_mips64=yes])
+ if test "$is_mips" = "yes"; then
+ GOARCH=mips
+ else
+ GOARCH=mips64
+ fi
+ ;;
+ rs6000*-*-* | powerpc*-*-*)
+ AC_PREPROC_IFELSE([
+#ifdef _ARCH_PPC64
+#error 64-bit
+#endif],
+[is_ppc=yes], [is_ppc64=yes])
+ if test "$is_ppc" = "yes"; then
+ GOARCH=ppc
+ else
+ GOARCH=ppc64
+ fi
;;
sparc*-*-*)
AC_PREPROC_IFELSE([
@@ -167,21 +198,37 @@ changequote([,])dnl
#endif],
[is_sparc=yes], [is_sparc64=yes])
if test "$is_sparc" = "yes"; then
- is_sparc=yes
GOARCH=sparc
else
- is_sparc64=yes
GOARCH=sparc64
fi
;;
esac
AM_CONDITIONAL(LIBGO_IS_386, test $is_386 = yes)
AM_CONDITIONAL(LIBGO_IS_ARM, test $is_arm = yes)
+AM_CONDITIONAL(LIBGO_IS_M68K, test $is_m68k = yes)
+AM_CONDITIONAL(LIBGO_IS_MIPS, test $is_mips = yes)
+AM_CONDITIONAL(LIBGO_IS_MIPS64, test $is_mips64 = yes)
+AM_CONDITIONAL(LIBGO_IS_PPC, test $is_ppc = yes)
+AM_CONDITIONAL(LIBGO_IS_PPC64, test $is_ppc64 = yes)
AM_CONDITIONAL(LIBGO_IS_SPARC, test $is_sparc = yes)
AM_CONDITIONAL(LIBGO_IS_SPARC64, test $is_sparc64 = yes)
AM_CONDITIONAL(LIBGO_IS_X86_64, test $is_x86_64 = yes)
AC_SUBST(GOARCH)
+dnl Some files are only present when needed for specific architectures.
+GO_SYSCALLS_SYSCALL_OS_ARCH_FILE=
+if test -f ${srcdir}/syscalls/syscall_${GOOS}_${GOARCH}.go; then
+ GO_SYSCALLS_SYSCALL_OS_ARCH_FILE=syscalls/syscall_${GOOS}_${GOARCH}.go
+fi
+AC_SUBST(GO_SYSCALLS_SYSCALL_OS_ARCH_FILE)
+
+GO_DEBUG_PROC_REGS_OS_ARCH_FILE=
+if test -f ${srcdir}/go/debug/proc/regs_${GOOS}_${GOARCH}.go; then
+ GO_DEBUG_PROC_REGS_OS_ARCH_FILE=go/debug/proc/regs_${GOOS}_${GOARCH}.go
+fi
+AC_SUBST(GO_DEBUG_PROC_REGS_OS_ARCH_FILE)
+
dnl Use -fsplit-stack when compiling C code if available.
AC_CACHE_CHECK([whether -fsplit-stack is supported],
[libgo_cv_c_split_stack_supported],