|
|
d69bc0f |
From 83195ff5ba73779514e3d06b1457d45f849c7fc2 Mon Sep 17 00:00:00 2001
|
|
|
d69bc0f |
From: Karel Gardas <karel.gardas@centrum.cz>
|
|
|
d69bc0f |
Date: Wed, 25 Apr 2012 09:04:50 +0200
|
|
|
d69bc0f |
Subject: [PATCH] add support for ARM hard-float ABI (fixes #5914)
|
|
|
d69bc0f |
|
|
|
d69bc0f |
This patch enhances Platform's ArchARM to include ARM ABI value. It also
|
|
|
d69bc0f |
tweaks configure machinery to detect hard-float ABI and to set it wherever
|
|
|
d69bc0f |
needed. Finally when hard-float ABI is in use, pass appropriate compiler
|
|
|
d69bc0f |
option to the LLVM's llc. Fixes #5914.
|
|
|
d69bc0f |
---
|
|
|
d69bc0f |
aclocal.m4 | 2 +-
|
|
|
d69bc0f |
compiler/main/DriverPipeline.hs | 16 +-
|
|
|
d69bc0f |
compiler/nativeGen/AsmCodeGen.lhs | 2 +-
|
|
|
d69bc0f |
compiler/nativeGen/RegAlloc/Graph/TrivColorable.hs | 56 ++--
|
|
|
d69bc0f |
compiler/nativeGen/RegAlloc/Linear/FreeRegs.hs | 14 +-
|
|
|
d69bc0f |
compiler/nativeGen/RegAlloc/Linear/Main.hs | 14 +-
|
|
|
d69bc0f |
compiler/nativeGen/TargetReg.hs | 70 ++--
|
|
|
d69bc0f |
compiler/utils/Platform.hs | 12 +-
|
|
|
d69bc0f |
config.guess | 482 ++++++++++----------
|
|
|
d69bc0f |
configure.ac | 14 +
|
|
|
d69bc0f |
10 files changed, 345 insertions(+), 337 deletions(-)
|
|
|
d69bc0f |
|
|
|
d69bc0f |
diff --git a/aclocal.m4 b/aclocal.m4
|
|
|
d69bc0f |
index 5652185..c196bdf 100644
|
|
|
d69bc0f |
--- a/aclocal.m4
|
|
|
d69bc0f |
+++ b/aclocal.m4
|
|
|
d69bc0f |
@@ -171,7 +171,7 @@ AC_DEFUN([FPTOOLS_SET_HASKELL_PLATFORM_VARS],
|
|
|
d69bc0f |
;;
|
|
|
d69bc0f |
arm)
|
|
|
d69bc0f |
GET_ARM_ISA()
|
|
|
d69bc0f |
- test -z "[$]2" || eval "[$]2=\"ArchARM {armISA = \$ARM_ISA, armISAExt = \$ARM_ISA_EXT}\""
|
|
|
d69bc0f |
+ test -z "[$]2" || eval "[$]2=\"ArchARM {armISA = \$ARM_ISA, armISAExt = \$ARM_ISA_EXT, armABI = \$ARM_ABI}\""
|
|
|
d69bc0f |
;;
|
|
|
d69bc0f |
alpha|mips|mipseb|mipsel|hppa|hppa1_1|ia64|m68k|rs6000|s390|s390x|sparc64|vax)
|
|
|
d69bc0f |
test -z "[$]2" || eval "[$]2=ArchUnknown"
|
|
|
d69bc0f |
diff -u ghc-7.4.1.20120508/compiler/main/DriverPipeline.hs.arm ghc-7.4.1.20120508/compiler/main/DriverPipeline.hs
|
|
|
d69bc0f |
--- ghc-7.4.1.20120508/compiler/main/DriverPipeline.hs.arm 2012-05-15 02:10:41.000000000 +0900
|
|
|
d69bc0f |
+++ ghc-7.4.1.20120508/compiler/main/DriverPipeline.hs 2012-05-18 12:19:22.779955285 +0900
|
|
|
d69bc0f |
@@ -1366,7 +1366,8 @@
|
|
|
d69bc0f |
SysTools.FileOption "" input_fn,
|
|
|
d69bc0f |
SysTools.Option "-o", SysTools.FileOption "" output_fn]
|
|
|
d69bc0f |
++ map SysTools.Option lc_opts
|
|
|
d69bc0f |
- ++ map SysTools.Option fpOpts)
|
|
|
d69bc0f |
+ ++ map SysTools.Option fpOpts
|
|
|
d69bc0f |
+ ++ map SysTools.Option abiOpts)
|
|
|
d69bc0f |
|
|
|
d69bc0f |
return (next_phase, output_fn)
|
|
|
d69bc0f |
where
|
|
|
d69bc0f |
@@ -1378,12 +1379,19 @@
|
|
|
d69bc0f |
-- while compiling GHC source code. It's probably due to fact that it
|
|
|
d69bc0f |
-- does not enable VFP by default. Let's do this manually here
|
|
|
d69bc0f |
fpOpts = case platformArch (targetPlatform dflags) of
|
|
|
d69bc0f |
- ArchARM ARMv7 ext -> if (elem VFPv3 ext)
|
|
|
d69bc0f |
+ ArchARM ARMv7 ext _ -> if (elem VFPv3 ext)
|
|
|
d69bc0f |
then ["-mattr=+v7,+vfp3"]
|
|
|
d69bc0f |
else if (elem VFPv3D16 ext)
|
|
|
d69bc0f |
then ["-mattr=+v7,+vfp3,+d16"]
|
|
|
d69bc0f |
else []
|
|
|
d69bc0f |
_ -> []
|
|
|
d69bc0f |
+ -- On Ubuntu/Debian with ARM hard float ABI, LLVM's llc still
|
|
|
d69bc0f |
+ -- compiles into soft-float ABI. We need to explicitly set abi
|
|
|
d69bc0f |
+ -- to hard
|
|
|
d69bc0f |
+ abiOpts = case platformArch (targetPlatform dflags) of
|
|
|
d69bc0f |
+ ArchARM ARMv7 _ HARD -> ["-float-abi=hard"]
|
|
|
d69bc0f |
+ ArchARM ARMv7 _ _ -> []
|
|
|
d69bc0f |
+ _ -> []
|
|
|
d69bc0f |
|
|
|
d69bc0f |
-----------------------------------------------------------------------------
|
|
|
d69bc0f |
-- LlvmMangle phase
|
|
|
d69bc0f |
@@ -1532,8 +1540,8 @@
|
|
|
d69bc0f |
|
|
|
d69bc0f |
elfSectionNote :: String
|
|
|
d69bc0f |
elfSectionNote = case platformArch (targetPlatform dflags) of
|
|
|
d69bc0f |
- ArchARM _ _ -> "%note"
|
|
|
d69bc0f |
- _ -> "@note"
|
|
|
d69bc0f |
+ ArchARM _ _ _ -> "%note"
|
|
|
d69bc0f |
+ _ -> "@note"
|
|
|
d69bc0f |
|
|
|
d69bc0f |
-- The "link info" is a string representing the parameters of the
|
|
|
d69bc0f |
-- link. We save this information in the binary, and the next time we
|
|
|
d69bc0f |
diff --git a/compiler/nativeGen/AsmCodeGen.lhs b/compiler/nativeGen/AsmCodeGen.lhs
|
|
|
d69bc0f |
index 1ad1242..e976e58 100644
|
|
|
d69bc0f |
--- a/compiler/nativeGen/AsmCodeGen.lhs
|
|
|
d69bc0f |
+++ b/compiler/nativeGen/AsmCodeGen.lhs
|
|
|
d69bc0f |
@@ -200,7 +200,7 @@ nativeCodeGen dflags h us cmms
|
|
|
d69bc0f |
,ncgExpandTop = map SPARC.CodeGen.Expand.expandTop
|
|
|
d69bc0f |
,ncgMakeFarBranches = id
|
|
|
d69bc0f |
}
|
|
|
d69bc0f |
- ArchARM _ _ ->
|
|
|
d69bc0f |
+ ArchARM _ _ _ ->
|
|
|
d69bc0f |
panic "nativeCodeGen: No NCG for ARM"
|
|
|
d69bc0f |
ArchPPC_64 ->
|
|
|
d69bc0f |
panic "nativeCodeGen: No NCG for PPC 64"
|
|
|
d69bc0f |
diff --git a/compiler/nativeGen/RegAlloc/Graph/TrivColorable.hs b/compiler/nativeGen/RegAlloc/Graph/TrivColorable.hs
|
|
|
d69bc0f |
index 6067f23..6cd3f00 100644
|
|
|
d69bc0f |
--- a/compiler/nativeGen/RegAlloc/Graph/TrivColorable.hs
|
|
|
d69bc0f |
+++ b/compiler/nativeGen/RegAlloc/Graph/TrivColorable.hs
|
|
|
d69bc0f |
@@ -107,13 +107,13 @@ trivColorable
|
|
|
d69bc0f |
trivColorable platform virtualRegSqueeze realRegSqueeze RcInteger conflicts exclusions
|
|
|
d69bc0f |
| let !cALLOCATABLE_REGS_INTEGER
|
|
|
d69bc0f |
= iUnbox (case platformArch platform of
|
|
|
d69bc0f |
- ArchX86 -> 3
|
|
|
d69bc0f |
- ArchX86_64 -> 5
|
|
|
d69bc0f |
- ArchPPC -> 16
|
|
|
d69bc0f |
- ArchSPARC -> 14
|
|
|
d69bc0f |
- ArchPPC_64 -> panic "trivColorable ArchPPC_64"
|
|
|
d69bc0f |
- ArchARM _ _ -> panic "trivColorable ArchARM"
|
|
|
d69bc0f |
- ArchUnknown -> panic "trivColorable ArchUnknown")
|
|
|
d69bc0f |
+ ArchX86 -> 3
|
|
|
d69bc0f |
+ ArchX86_64 -> 5
|
|
|
d69bc0f |
+ ArchPPC -> 16
|
|
|
d69bc0f |
+ ArchSPARC -> 14
|
|
|
d69bc0f |
+ ArchPPC_64 -> panic "trivColorable ArchPPC_64"
|
|
|
d69bc0f |
+ ArchARM _ _ _ -> panic "trivColorable ArchARM"
|
|
|
d69bc0f |
+ ArchUnknown -> panic "trivColorable ArchUnknown")
|
|
|
d69bc0f |
, count2 <- accSqueeze (_ILIT(0)) cALLOCATABLE_REGS_INTEGER
|
|
|
d69bc0f |
(virtualRegSqueeze RcInteger)
|
|
|
d69bc0f |
conflicts
|
|
|
d69bc0f |
@@ -127,13 +127,13 @@ trivColorable platform virtualRegSqueeze realRegSqueeze RcInteger conflicts excl
|
|
|
d69bc0f |
trivColorable platform virtualRegSqueeze realRegSqueeze RcFloat conflicts exclusions
|
|
|
d69bc0f |
| let !cALLOCATABLE_REGS_FLOAT
|
|
|
d69bc0f |
= iUnbox (case platformArch platform of
|
|
|
d69bc0f |
- ArchX86 -> 0
|
|
|
d69bc0f |
- ArchX86_64 -> 0
|
|
|
d69bc0f |
- ArchPPC -> 0
|
|
|
d69bc0f |
- ArchSPARC -> 22
|
|
|
d69bc0f |
- ArchPPC_64 -> panic "trivColorable ArchPPC_64"
|
|
|
d69bc0f |
- ArchARM _ _ -> panic "trivColorable ArchARM"
|
|
|
d69bc0f |
- ArchUnknown -> panic "trivColorable ArchUnknown")
|
|
|
d69bc0f |
+ ArchX86 -> 0
|
|
|
d69bc0f |
+ ArchX86_64 -> 0
|
|
|
d69bc0f |
+ ArchPPC -> 0
|
|
|
d69bc0f |
+ ArchSPARC -> 22
|
|
|
d69bc0f |
+ ArchPPC_64 -> panic "trivColorable ArchPPC_64"
|
|
|
d69bc0f |
+ ArchARM _ _ _ -> panic "trivColorable ArchARM"
|
|
|
d69bc0f |
+ ArchUnknown -> panic "trivColorable ArchUnknown")
|
|
|
d69bc0f |
, count2 <- accSqueeze (_ILIT(0)) cALLOCATABLE_REGS_FLOAT
|
|
|
d69bc0f |
(virtualRegSqueeze RcFloat)
|
|
|
d69bc0f |
conflicts
|
|
|
d69bc0f |
@@ -147,13 +147,13 @@ trivColorable platform virtualRegSqueeze realRegSqueeze RcFloat conflicts exclus
|
|
|
d69bc0f |
trivColorable platform virtualRegSqueeze realRegSqueeze RcDouble conflicts exclusions
|
|
|
d69bc0f |
| let !cALLOCATABLE_REGS_DOUBLE
|
|
|
d69bc0f |
= iUnbox (case platformArch platform of
|
|
|
d69bc0f |
- ArchX86 -> 6
|
|
|
d69bc0f |
- ArchX86_64 -> 0
|
|
|
d69bc0f |
- ArchPPC -> 26
|
|
|
d69bc0f |
- ArchSPARC -> 11
|
|
|
d69bc0f |
- ArchPPC_64 -> panic "trivColorable ArchPPC_64"
|
|
|
d69bc0f |
- ArchARM _ _ -> panic "trivColorable ArchARM"
|
|
|
d69bc0f |
- ArchUnknown -> panic "trivColorable ArchUnknown")
|
|
|
d69bc0f |
+ ArchX86 -> 6
|
|
|
d69bc0f |
+ ArchX86_64 -> 0
|
|
|
d69bc0f |
+ ArchPPC -> 26
|
|
|
d69bc0f |
+ ArchSPARC -> 11
|
|
|
d69bc0f |
+ ArchPPC_64 -> panic "trivColorable ArchPPC_64"
|
|
|
d69bc0f |
+ ArchARM _ _ _ -> panic "trivColorable ArchARM"
|
|
|
d69bc0f |
+ ArchUnknown -> panic "trivColorable ArchUnknown")
|
|
|
d69bc0f |
, count2 <- accSqueeze (_ILIT(0)) cALLOCATABLE_REGS_DOUBLE
|
|
|
d69bc0f |
(virtualRegSqueeze RcDouble)
|
|
|
d69bc0f |
conflicts
|
|
|
d69bc0f |
@@ -167,13 +167,13 @@ trivColorable platform virtualRegSqueeze realRegSqueeze RcDouble conflicts exclu
|
|
|
d69bc0f |
trivColorable platform virtualRegSqueeze realRegSqueeze RcDoubleSSE conflicts exclusions
|
|
|
d69bc0f |
| let !cALLOCATABLE_REGS_SSE
|
|
|
d69bc0f |
= iUnbox (case platformArch platform of
|
|
|
d69bc0f |
- ArchX86 -> 8
|
|
|
d69bc0f |
- ArchX86_64 -> 10
|
|
|
d69bc0f |
- ArchPPC -> 0
|
|
|
d69bc0f |
- ArchSPARC -> 0
|
|
|
d69bc0f |
- ArchPPC_64 -> panic "trivColorable ArchPPC_64"
|
|
|
d69bc0f |
- ArchARM _ _ -> panic "trivColorable ArchARM"
|
|
|
d69bc0f |
- ArchUnknown -> panic "trivColorable ArchUnknown")
|
|
|
d69bc0f |
+ ArchX86 -> 8
|
|
|
d69bc0f |
+ ArchX86_64 -> 10
|
|
|
d69bc0f |
+ ArchPPC -> 0
|
|
|
d69bc0f |
+ ArchSPARC -> 0
|
|
|
d69bc0f |
+ ArchPPC_64 -> panic "trivColorable ArchPPC_64"
|
|
|
d69bc0f |
+ ArchARM _ _ _ -> panic "trivColorable ArchARM"
|
|
|
d69bc0f |
+ ArchUnknown -> panic "trivColorable ArchUnknown")
|
|
|
d69bc0f |
, count2 <- accSqueeze (_ILIT(0)) cALLOCATABLE_REGS_SSE
|
|
|
d69bc0f |
(virtualRegSqueeze RcDoubleSSE)
|
|
|
d69bc0f |
conflicts
|
|
|
d69bc0f |
diff --git a/compiler/nativeGen/RegAlloc/Linear/FreeRegs.hs b/compiler/nativeGen/RegAlloc/Linear/FreeRegs.hs
|
|
|
d69bc0f |
index 6fbbd04..fd1fd27 100644
|
|
|
d69bc0f |
--- a/compiler/nativeGen/RegAlloc/Linear/FreeRegs.hs
|
|
|
d69bc0f |
+++ b/compiler/nativeGen/RegAlloc/Linear/FreeRegs.hs
|
|
|
d69bc0f |
@@ -68,11 +68,11 @@ instance FR SPARC.FreeRegs where
|
|
|
d69bc0f |
maxSpillSlots :: Platform -> Int
|
|
|
d69bc0f |
maxSpillSlots platform
|
|
|
d69bc0f |
= case platformArch platform of
|
|
|
d69bc0f |
- ArchX86 -> X86.Instr.maxSpillSlots True -- 32bit
|
|
|
d69bc0f |
- ArchX86_64 -> X86.Instr.maxSpillSlots False -- not 32bit
|
|
|
d69bc0f |
- ArchPPC -> PPC.Instr.maxSpillSlots
|
|
|
d69bc0f |
- ArchSPARC -> SPARC.Instr.maxSpillSlots
|
|
|
d69bc0f |
- ArchARM _ _ -> panic "maxSpillSlots ArchARM"
|
|
|
d69bc0f |
- ArchPPC_64 -> panic "maxSpillSlots ArchPPC_64"
|
|
|
d69bc0f |
- ArchUnknown -> panic "maxSpillSlots ArchUnknown"
|
|
|
d69bc0f |
+ ArchX86 -> X86.Instr.maxSpillSlots True -- 32bit
|
|
|
d69bc0f |
+ ArchX86_64 -> X86.Instr.maxSpillSlots False -- not 32bit
|
|
|
d69bc0f |
+ ArchPPC -> PPC.Instr.maxSpillSlots
|
|
|
d69bc0f |
+ ArchSPARC -> SPARC.Instr.maxSpillSlots
|
|
|
d69bc0f |
+ ArchARM _ _ _ -> panic "maxSpillSlots ArchARM"
|
|
|
d69bc0f |
+ ArchPPC_64 -> panic "maxSpillSlots ArchPPC_64"
|
|
|
d69bc0f |
+ ArchUnknown -> panic "maxSpillSlots ArchUnknown"
|
|
|
d69bc0f |
|
|
|
d69bc0f |
diff --git a/compiler/nativeGen/RegAlloc/Linear/Main.hs b/compiler/nativeGen/RegAlloc/Linear/Main.hs
|
|
|
d69bc0f |
index fc0bde4..64b0f68 100644
|
|
|
d69bc0f |
--- a/compiler/nativeGen/RegAlloc/Linear/Main.hs
|
|
|
d69bc0f |
+++ b/compiler/nativeGen/RegAlloc/Linear/Main.hs
|
|
|
d69bc0f |
@@ -180,13 +180,13 @@ linearRegAlloc
|
|
|
d69bc0f |
linearRegAlloc dflags first_id block_live sccs
|
|
|
d69bc0f |
= let platform = targetPlatform dflags
|
|
|
d69bc0f |
in case platformArch platform of
|
|
|
d69bc0f |
- ArchX86 -> linearRegAlloc' platform (frInitFreeRegs :: X86.FreeRegs) first_id block_live sccs
|
|
|
d69bc0f |
- ArchX86_64 -> linearRegAlloc' platform (frInitFreeRegs :: X86.FreeRegs) first_id block_live sccs
|
|
|
d69bc0f |
- ArchSPARC -> linearRegAlloc' platform (frInitFreeRegs :: SPARC.FreeRegs) first_id block_live sccs
|
|
|
d69bc0f |
- ArchPPC -> linearRegAlloc' platform (frInitFreeRegs :: PPC.FreeRegs) first_id block_live sccs
|
|
|
d69bc0f |
- ArchARM _ _ -> panic "linearRegAlloc ArchARM"
|
|
|
d69bc0f |
- ArchPPC_64 -> panic "linearRegAlloc ArchPPC_64"
|
|
|
d69bc0f |
- ArchUnknown -> panic "linearRegAlloc ArchUnknown"
|
|
|
d69bc0f |
+ ArchX86 -> linearRegAlloc' platform (frInitFreeRegs :: X86.FreeRegs) first_id block_live sccs
|
|
|
d69bc0f |
+ ArchX86_64 -> linearRegAlloc' platform (frInitFreeRegs :: X86.FreeRegs) first_id block_live sccs
|
|
|
d69bc0f |
+ ArchSPARC -> linearRegAlloc' platform (frInitFreeRegs :: SPARC.FreeRegs) first_id block_live sccs
|
|
|
d69bc0f |
+ ArchPPC -> linearRegAlloc' platform (frInitFreeRegs :: PPC.FreeRegs) first_id block_live sccs
|
|
|
d69bc0f |
+ ArchARM _ _ _ -> panic "linearRegAlloc ArchARM"
|
|
|
d69bc0f |
+ ArchPPC_64 -> panic "linearRegAlloc ArchPPC_64"
|
|
|
d69bc0f |
+ ArchUnknown -> panic "linearRegAlloc ArchUnknown"
|
|
|
d69bc0f |
|
|
|
d69bc0f |
linearRegAlloc'
|
|
|
d69bc0f |
:: (FR freeRegs, PlatformOutputable instr, Instruction instr)
|
|
|
d69bc0f |
diff --git a/compiler/nativeGen/TargetReg.hs b/compiler/nativeGen/TargetReg.hs
|
|
|
d69bc0f |
index cbc4c17..13293de 100644
|
|
|
d69bc0f |
--- a/compiler/nativeGen/TargetReg.hs
|
|
|
d69bc0f |
+++ b/compiler/nativeGen/TargetReg.hs
|
|
|
d69bc0f |
@@ -50,35 +50,35 @@ import qualified SPARC.Regs as SPARC
|
|
|
d69bc0f |
targetVirtualRegSqueeze :: Platform -> RegClass -> VirtualReg -> FastInt
|
|
|
d69bc0f |
targetVirtualRegSqueeze platform
|
|
|
d69bc0f |
= case platformArch platform of
|
|
|
d69bc0f |
- ArchX86 -> X86.virtualRegSqueeze
|
|
|
d69bc0f |
- ArchX86_64 -> X86.virtualRegSqueeze
|
|
|
d69bc0f |
- ArchPPC -> PPC.virtualRegSqueeze
|
|
|
d69bc0f |
- ArchSPARC -> SPARC.virtualRegSqueeze
|
|
|
d69bc0f |
- ArchPPC_64 -> panic "targetVirtualRegSqueeze ArchPPC_64"
|
|
|
d69bc0f |
- ArchARM _ _ -> panic "targetVirtualRegSqueeze ArchARM"
|
|
|
d69bc0f |
- ArchUnknown -> panic "targetVirtualRegSqueeze ArchUnknown"
|
|
|
d69bc0f |
+ ArchX86 -> X86.virtualRegSqueeze
|
|
|
d69bc0f |
+ ArchX86_64 -> X86.virtualRegSqueeze
|
|
|
d69bc0f |
+ ArchPPC -> PPC.virtualRegSqueeze
|
|
|
d69bc0f |
+ ArchSPARC -> SPARC.virtualRegSqueeze
|
|
|
d69bc0f |
+ ArchPPC_64 -> panic "targetVirtualRegSqueeze ArchPPC_64"
|
|
|
d69bc0f |
+ ArchARM _ _ _ -> panic "targetVirtualRegSqueeze ArchARM"
|
|
|
d69bc0f |
+ ArchUnknown -> panic "targetVirtualRegSqueeze ArchUnknown"
|
|
|
d69bc0f |
|
|
|
d69bc0f |
targetRealRegSqueeze :: Platform -> RegClass -> RealReg -> FastInt
|
|
|
d69bc0f |
targetRealRegSqueeze platform
|
|
|
d69bc0f |
= case platformArch platform of
|
|
|
d69bc0f |
- ArchX86 -> X86.realRegSqueeze
|
|
|
d69bc0f |
- ArchX86_64 -> X86.realRegSqueeze
|
|
|
d69bc0f |
- ArchPPC -> PPC.realRegSqueeze
|
|
|
d69bc0f |
- ArchSPARC -> SPARC.realRegSqueeze
|
|
|
d69bc0f |
- ArchPPC_64 -> panic "targetRealRegSqueeze ArchPPC_64"
|
|
|
d69bc0f |
- ArchARM _ _ -> panic "targetRealRegSqueeze ArchARM"
|
|
|
d69bc0f |
- ArchUnknown -> panic "targetRealRegSqueeze ArchUnknown"
|
|
|
d69bc0f |
+ ArchX86 -> X86.realRegSqueeze
|
|
|
d69bc0f |
+ ArchX86_64 -> X86.realRegSqueeze
|
|
|
d69bc0f |
+ ArchPPC -> PPC.realRegSqueeze
|
|
|
d69bc0f |
+ ArchSPARC -> SPARC.realRegSqueeze
|
|
|
d69bc0f |
+ ArchPPC_64 -> panic "targetRealRegSqueeze ArchPPC_64"
|
|
|
d69bc0f |
+ ArchARM _ _ _ -> panic "targetRealRegSqueeze ArchARM"
|
|
|
d69bc0f |
+ ArchUnknown -> panic "targetRealRegSqueeze ArchUnknown"
|
|
|
d69bc0f |
|
|
|
d69bc0f |
targetClassOfRealReg :: Platform -> RealReg -> RegClass
|
|
|
d69bc0f |
targetClassOfRealReg platform
|
|
|
d69bc0f |
= case platformArch platform of
|
|
|
d69bc0f |
- ArchX86 -> X86.classOfRealReg
|
|
|
d69bc0f |
- ArchX86_64 -> X86.classOfRealReg
|
|
|
d69bc0f |
- ArchPPC -> PPC.classOfRealReg
|
|
|
d69bc0f |
- ArchSPARC -> SPARC.classOfRealReg
|
|
|
d69bc0f |
- ArchPPC_64 -> panic "targetClassOfRealReg ArchPPC_64"
|
|
|
d69bc0f |
- ArchARM _ _ -> panic "targetClassOfRealReg ArchARM"
|
|
|
d69bc0f |
- ArchUnknown -> panic "targetClassOfRealReg ArchUnknown"
|
|
|
d69bc0f |
+ ArchX86 -> X86.classOfRealReg
|
|
|
d69bc0f |
+ ArchX86_64 -> X86.classOfRealReg
|
|
|
d69bc0f |
+ ArchPPC -> PPC.classOfRealReg
|
|
|
d69bc0f |
+ ArchSPARC -> SPARC.classOfRealReg
|
|
|
d69bc0f |
+ ArchPPC_64 -> panic "targetClassOfRealReg ArchPPC_64"
|
|
|
d69bc0f |
+ ArchARM _ _ _ -> panic "targetClassOfRealReg ArchARM"
|
|
|
d69bc0f |
+ ArchUnknown -> panic "targetClassOfRealReg ArchUnknown"
|
|
|
d69bc0f |
|
|
|
d69bc0f |
-- TODO: This should look at targetPlatform too
|
|
|
d69bc0f |
targetWordSize :: Size
|
|
|
d69bc0f |
@@ -87,24 +87,24 @@ targetWordSize = intSize wordWidth
|
|
|
d69bc0f |
targetMkVirtualReg :: Platform -> Unique -> Size -> VirtualReg
|
|
|
d69bc0f |
targetMkVirtualReg platform
|
|
|
d69bc0f |
= case platformArch platform of
|
|
|
d69bc0f |
- ArchX86 -> X86.mkVirtualReg
|
|
|
d69bc0f |
- ArchX86_64 -> X86.mkVirtualReg
|
|
|
d69bc0f |
- ArchPPC -> PPC.mkVirtualReg
|
|
|
d69bc0f |
- ArchSPARC -> SPARC.mkVirtualReg
|
|
|
d69bc0f |
- ArchPPC_64 -> panic "targetMkVirtualReg ArchPPC_64"
|
|
|
d69bc0f |
- ArchARM _ _ -> panic "targetMkVirtualReg ArchARM"
|
|
|
d69bc0f |
- ArchUnknown -> panic "targetMkVirtualReg ArchUnknown"
|
|
|
d69bc0f |
+ ArchX86 -> X86.mkVirtualReg
|
|
|
d69bc0f |
+ ArchX86_64 -> X86.mkVirtualReg
|
|
|
d69bc0f |
+ ArchPPC -> PPC.mkVirtualReg
|
|
|
d69bc0f |
+ ArchSPARC -> SPARC.mkVirtualReg
|
|
|
d69bc0f |
+ ArchPPC_64 -> panic "targetMkVirtualReg ArchPPC_64"
|
|
|
d69bc0f |
+ ArchARM _ _ _ -> panic "targetMkVirtualReg ArchARM"
|
|
|
d69bc0f |
+ ArchUnknown -> panic "targetMkVirtualReg ArchUnknown"
|
|
|
d69bc0f |
|
|
|
d69bc0f |
targetRegDotColor :: Platform -> RealReg -> SDoc
|
|
|
d69bc0f |
targetRegDotColor platform
|
|
|
d69bc0f |
= case platformArch platform of
|
|
|
d69bc0f |
- ArchX86 -> X86.regDotColor platform
|
|
|
d69bc0f |
- ArchX86_64 -> X86.regDotColor platform
|
|
|
d69bc0f |
- ArchPPC -> PPC.regDotColor
|
|
|
d69bc0f |
- ArchSPARC -> SPARC.regDotColor
|
|
|
d69bc0f |
- ArchPPC_64 -> panic "targetRegDotColor ArchPPC_64"
|
|
|
d69bc0f |
- ArchARM _ _ -> panic "targetRegDotColor ArchARM"
|
|
|
d69bc0f |
- ArchUnknown -> panic "targetRegDotColor ArchUnknown"
|
|
|
d69bc0f |
+ ArchX86 -> X86.regDotColor platform
|
|
|
d69bc0f |
+ ArchX86_64 -> X86.regDotColor platform
|
|
|
d69bc0f |
+ ArchPPC -> PPC.regDotColor
|
|
|
d69bc0f |
+ ArchSPARC -> SPARC.regDotColor
|
|
|
d69bc0f |
+ ArchPPC_64 -> panic "targetRegDotColor ArchPPC_64"
|
|
|
d69bc0f |
+ ArchARM _ _ _ -> panic "targetRegDotColor ArchARM"
|
|
|
d69bc0f |
+ ArchUnknown -> panic "targetRegDotColor ArchUnknown"
|
|
|
d69bc0f |
|
|
|
d69bc0f |
|
|
|
d69bc0f |
targetClassOfReg :: Platform -> Reg -> RegClass
|
|
|
d69bc0f |
diff --git a/compiler/utils/Platform.hs b/compiler/utils/Platform.hs
|
|
|
d69bc0f |
index 47dd779..8252621 100644
|
|
|
d69bc0f |
--- a/compiler/utils/Platform.hs
|
|
|
d69bc0f |
+++ b/compiler/utils/Platform.hs
|
|
|
d69bc0f |
@@ -7,6 +7,7 @@ module Platform (
|
|
|
d69bc0f |
OS(..),
|
|
|
d69bc0f |
ArmISA(..),
|
|
|
d69bc0f |
ArmISAExt(..),
|
|
|
d69bc0f |
+ ArmABI(..),
|
|
|
d69bc0f |
|
|
|
d69bc0f |
target32Bit,
|
|
|
d69bc0f |
osElfTarget
|
|
|
d69bc0f |
@@ -41,7 +42,9 @@ data Arch
|
|
|
d69bc0f |
| ArchSPARC
|
|
|
d69bc0f |
| ArchARM
|
|
|
d69bc0f |
{ armISA :: ArmISA
|
|
|
d69bc0f |
- , armISAExt :: [ArmISAExt] }
|
|
|
d69bc0f |
+ , armISAExt :: [ArmISAExt]
|
|
|
d69bc0f |
+ , armABI :: ArmABI
|
|
|
d69bc0f |
+ }
|
|
|
d69bc0f |
deriving (Read, Show, Eq)
|
|
|
d69bc0f |
|
|
|
d69bc0f |
|
|
|
d69bc0f |
@@ -61,7 +64,7 @@ data OS
|
|
|
d69bc0f |
| OSHaiku
|
|
|
d69bc0f |
deriving (Read, Show, Eq)
|
|
|
d69bc0f |
|
|
|
d69bc0f |
--- | ARM Instruction Set Architecture and Extensions
|
|
|
d69bc0f |
+-- | ARM Instruction Set Architecture, Extensions and ABI
|
|
|
d69bc0f |
--
|
|
|
d69bc0f |
data ArmISA
|
|
|
d69bc0f |
= ARMv5
|
|
|
d69bc0f |
@@ -77,6 +80,11 @@ data ArmISAExt
|
|
|
d69bc0f |
| IWMMX2
|
|
|
d69bc0f |
deriving (Read, Show, Eq)
|
|
|
d69bc0f |
|
|
|
d69bc0f |
+data ArmABI
|
|
|
d69bc0f |
+ = SOFT
|
|
|
d69bc0f |
+ | SOFTFP
|
|
|
d69bc0f |
+ | HARD
|
|
|
d69bc0f |
+ deriving (Read, Show, Eq)
|
|
|
d69bc0f |
|
|
|
d69bc0f |
target32Bit :: Platform -> Bool
|
|
|
d69bc0f |
target32Bit p = platformWordSize p == 4
|
|
|
d69bc0f |
diff --git a/config.guess b/config.guess
|
|
|
d69bc0f |
index 463a03a..d622a44 100644
|
|
|
d69bc0f |
--- a/config.guess
|
|
|
d69bc0f |
+++ b/config.guess
|
|
|
d69bc0f |
@@ -1,10 +1,10 @@
|
|
|
d69bc0f |
#! /bin/sh
|
|
|
d69bc0f |
# Attempt to guess a canonical system name.
|
|
|
d69bc0f |
# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
|
|
|
d69bc0f |
-# 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008
|
|
|
d69bc0f |
-# Free Software Foundation, Inc.
|
|
|
d69bc0f |
+# 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010,
|
|
|
d69bc0f |
+# 2011, 2012 Free Software Foundation, Inc.
|
|
|
d69bc0f |
|
|
|
d69bc0f |
-timestamp='2008-11-15'
|
|
|
d69bc0f |
+timestamp='2012-02-10'
|
|
|
d69bc0f |
|
|
|
d69bc0f |
# This file is free software; you can redistribute it and/or modify it
|
|
|
d69bc0f |
# under the terms of the GNU General Public License as published by
|
|
|
d69bc0f |
@@ -17,9 +17,7 @@ timestamp='2008-11-15'
|
|
|
d69bc0f |
# General Public License for more details.
|
|
|
d69bc0f |
#
|
|
|
d69bc0f |
# You should have received a copy of the GNU General Public License
|
|
|
d69bc0f |
-# along with this program; if not, write to the Free Software
|
|
|
d69bc0f |
-# Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA
|
|
|
d69bc0f |
-# 02110-1301, USA.
|
|
|
d69bc0f |
+# along with this program; if not, see <http://www.gnu.org/licenses/>.
|
|
|
d69bc0f |
#
|
|
|
d69bc0f |
# As a special exception to the GNU General Public License, if you
|
|
|
d69bc0f |
# distribute this file as part of a program that contains a
|
|
|
d69bc0f |
@@ -27,16 +25,16 @@ timestamp='2008-11-15'
|
|
|
d69bc0f |
# the same distribution terms that you use for the rest of that program.
|
|
|
d69bc0f |
|
|
|
d69bc0f |
|
|
|
d69bc0f |
-# Originally written by Per Bothner <per@bothner.com>.
|
|
|
d69bc0f |
-# Please send patches to <config-patches@gnu.org>. Submit a context
|
|
|
d69bc0f |
-# diff and a properly formatted ChangeLog entry.
|
|
|
d69bc0f |
+# Originally written by Per Bothner. Please send patches (context
|
|
|
d69bc0f |
+# diff format) to <config-patches@gnu.org> and include a ChangeLog
|
|
|
d69bc0f |
+# entry.
|
|
|
d69bc0f |
#
|
|
|
d69bc0f |
# This script attempts to guess a canonical system name similar to
|
|
|
d69bc0f |
# config.sub. If it succeeds, it prints the system name on stdout, and
|
|
|
d69bc0f |
# exits with 0. Otherwise, it exits with 1.
|
|
|
d69bc0f |
#
|
|
|
d69bc0f |
-# The plan is that this can be called by configure scripts if you
|
|
|
d69bc0f |
-# don't specify an explicit build system type.
|
|
|
d69bc0f |
+# You can get the latest version of this script from:
|
|
|
d69bc0f |
+# http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess;hb=HEAD
|
|
|
d69bc0f |
|
|
|
d69bc0f |
me=`echo "$0" | sed -e 's,.*/,,'`
|
|
|
d69bc0f |
|
|
|
d69bc0f |
@@ -56,8 +54,9 @@ version="\
|
|
|
d69bc0f |
GNU config.guess ($timestamp)
|
|
|
d69bc0f |
|
|
|
d69bc0f |
Originally written by Per Bothner.
|
|
|
d69bc0f |
-Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001,
|
|
|
d69bc0f |
-2002, 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc.
|
|
|
d69bc0f |
+Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000,
|
|
|
d69bc0f |
+2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012
|
|
|
d69bc0f |
+Free Software Foundation, Inc.
|
|
|
d69bc0f |
|
|
|
d69bc0f |
This is free software; see the source for copying conditions. There is NO
|
|
|
d69bc0f |
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
|
|
|
d69bc0f |
@@ -144,7 +143,7 @@ UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown
|
|
|
d69bc0f |
case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
|
|
|
d69bc0f |
*:NetBSD:*:*)
|
|
|
d69bc0f |
# NetBSD (nbsd) targets should (where applicable) match one or
|
|
|
d69bc0f |
- # more of the tupples: *-*-netbsdelf*, *-*-netbsdaout*,
|
|
|
d69bc0f |
+ # more of the tuples: *-*-netbsdelf*, *-*-netbsdaout*,
|
|
|
d69bc0f |
# *-*-netbsdecoff* and *-*-netbsd*. For targets that recently
|
|
|
d69bc0f |
# switched to ELF, *-*-netbsd* would select the old
|
|
|
d69bc0f |
# object file format. This provides both forward
|
|
|
d69bc0f |
@@ -170,7 +169,7 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
|
|
|
d69bc0f |
arm*|i386|m68k|ns32k|sh3*|sparc|vax)
|
|
|
d69bc0f |
eval $set_cc_for_build
|
|
|
d69bc0f |
if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \
|
|
|
d69bc0f |
- | grep __ELF__ >/dev/null
|
|
|
d69bc0f |
+ | grep -q __ELF__
|
|
|
d69bc0f |
then
|
|
|
d69bc0f |
# Once all utilities can be ECOFF (netbsdecoff) or a.out (netbsdaout).
|
|
|
d69bc0f |
# Return netbsd for either. FIX?
|
|
|
d69bc0f |
@@ -180,7 +179,7 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
|
|
|
d69bc0f |
fi
|
|
|
d69bc0f |
;;
|
|
|
d69bc0f |
*)
|
|
|
d69bc0f |
- os=netbsd
|
|
|
d69bc0f |
+ os=netbsd
|
|
|
d69bc0f |
;;
|
|
|
d69bc0f |
esac
|
|
|
d69bc0f |
# The OS release
|
|
|
d69bc0f |
@@ -223,7 +222,7 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
|
|
|
d69bc0f |
UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'`
|
|
|
d69bc0f |
;;
|
|
|
d69bc0f |
*5.*)
|
|
|
d69bc0f |
- UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $4}'`
|
|
|
d69bc0f |
+ UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $4}'`
|
|
|
d69bc0f |
;;
|
|
|
d69bc0f |
esac
|
|
|
d69bc0f |
# According to Compaq, /usr/sbin/psrinfo has been available on
|
|
|
d69bc0f |
@@ -269,7 +268,10 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
|
|
|
d69bc0f |
# A Xn.n version is an unreleased experimental baselevel.
|
|
|
d69bc0f |
# 1.2 uses "1.2" for uname -r.
|
|
|
d69bc0f |
echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[PVTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'`
|
|
|
d69bc0f |
- exit ;;
|
|
|
d69bc0f |
+ # Reset EXIT trap before exiting to avoid spurious non-zero exit code.
|
|
|
d69bc0f |
+ exitcode=$?
|
|
|
d69bc0f |
+ trap '' 0
|
|
|
d69bc0f |
+ exit $exitcode ;;
|
|
|
d69bc0f |
Alpha\ *:Windows_NT*:*)
|
|
|
d69bc0f |
# How do we know it's Interix rather than the generic POSIX subsystem?
|
|
|
d69bc0f |
# Should we change UNAME_MACHINE based on the output of uname instead
|
|
|
d69bc0f |
@@ -295,7 +297,7 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
|
|
|
d69bc0f |
echo s390-ibm-zvmoe
|
|
|
d69bc0f |
exit ;;
|
|
|
d69bc0f |
*:OS400:*:*)
|
|
|
d69bc0f |
- echo powerpc-ibm-os400
|
|
|
d69bc0f |
+ echo powerpc-ibm-os400
|
|
|
d69bc0f |
exit ;;
|
|
|
d69bc0f |
arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*)
|
|
|
d69bc0f |
echo arm-acorn-riscix${UNAME_RELEASE}
|
|
|
d69bc0f |
@@ -324,12 +326,18 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
|
|
|
d69bc0f |
case `/usr/bin/uname -p` in
|
|
|
d69bc0f |
sparc) echo sparc-icl-nx7; exit ;;
|
|
|
d69bc0f |
esac ;;
|
|
|
d69bc0f |
+ s390x:SunOS:*:*)
|
|
|
d69bc0f |
+ echo ${UNAME_MACHINE}-ibm-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
|
|
|
d69bc0f |
+ exit ;;
|
|
|
d69bc0f |
sun4H:SunOS:5.*:*)
|
|
|
d69bc0f |
echo sparc-hal-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
|
|
|
d69bc0f |
exit ;;
|
|
|
d69bc0f |
sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*)
|
|
|
d69bc0f |
echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
|
|
|
d69bc0f |
exit ;;
|
|
|
d69bc0f |
+ i86pc:AuroraUX:5.*:* | i86xen:AuroraUX:5.*:*)
|
|
|
d69bc0f |
+ echo i386-pc-auroraux${UNAME_RELEASE}
|
|
|
d69bc0f |
+ exit ;;
|
|
|
d69bc0f |
i86pc:SunOS:5.*:* | i86xen:SunOS:5.*:*)
|
|
|
d69bc0f |
eval $set_cc_for_build
|
|
|
d69bc0f |
SUN_ARCH="i386"
|
|
|
d69bc0f |
@@ -337,17 +345,7 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
|
|
|
d69bc0f |
# Note that the Sun cc does not turn __LP64__ into 1 like gcc does.
|
|
|
d69bc0f |
# This test works for both compilers.
|
|
|
d69bc0f |
if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then
|
|
|
d69bc0f |
- # bash is not able to generate correct code here
|
|
|
d69bc0f |
- # i.e. it leaves \ns there
|
|
|
d69bc0f |
- # so we need to use /usr/bin/echo to get what we want
|
|
|
d69bc0f |
- # note that if config.guess is run by /bin/sh then
|
|
|
d69bc0f |
- # this works as expected even without /usr/bin/echo
|
|
|
d69bc0f |
- # but the problem is that configure is clever enough
|
|
|
d69bc0f |
- # to find bash installed and then runs config.guess
|
|
|
d69bc0f |
- # by bash instead of by /bin/sh
|
|
|
d69bc0f |
- # It seems that using /usr/bin/echo here is the most
|
|
|
d69bc0f |
- # portable Solaris fix
|
|
|
d69bc0f |
- if /usr/bin/echo '\n#ifdef __amd64\nIS_64BIT_ARCH\n#endif' | \
|
|
|
d69bc0f |
+ if (echo '#ifdef __amd64'; echo IS_64BIT_ARCH; echo '#endif') | \
|
|
|
d69bc0f |
(CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \
|
|
|
d69bc0f |
grep IS_64BIT_ARCH >/dev/null
|
|
|
d69bc0f |
then
|
|
|
d69bc0f |
@@ -398,23 +396,23 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
|
|
|
d69bc0f |
# MiNT. But MiNT is downward compatible to TOS, so this should
|
|
|
d69bc0f |
# be no problem.
|
|
|
d69bc0f |
atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*)
|
|
|
d69bc0f |
- echo m68k-atari-mint${UNAME_RELEASE}
|
|
|
d69bc0f |
+ echo m68k-atari-mint${UNAME_RELEASE}
|
|
|
d69bc0f |
exit ;;
|
|
|
d69bc0f |
atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*)
|
|
|
d69bc0f |
echo m68k-atari-mint${UNAME_RELEASE}
|
|
|
d69bc0f |
- exit ;;
|
|
|
d69bc0f |
+ exit ;;
|
|
|
d69bc0f |
*falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*)
|
|
|
d69bc0f |
- echo m68k-atari-mint${UNAME_RELEASE}
|
|
|
d69bc0f |
+ echo m68k-atari-mint${UNAME_RELEASE}
|
|
|
d69bc0f |
exit ;;
|
|
|
d69bc0f |
milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*)
|
|
|
d69bc0f |
- echo m68k-milan-mint${UNAME_RELEASE}
|
|
|
d69bc0f |
- exit ;;
|
|
|
d69bc0f |
+ echo m68k-milan-mint${UNAME_RELEASE}
|
|
|
d69bc0f |
+ exit ;;
|
|
|
d69bc0f |
hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*)
|
|
|
d69bc0f |
- echo m68k-hades-mint${UNAME_RELEASE}
|
|
|
d69bc0f |
- exit ;;
|
|
|
d69bc0f |
+ echo m68k-hades-mint${UNAME_RELEASE}
|
|
|
d69bc0f |
+ exit ;;
|
|
|
d69bc0f |
*:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*)
|
|
|
d69bc0f |
- echo m68k-unknown-mint${UNAME_RELEASE}
|
|
|
d69bc0f |
- exit ;;
|
|
|
d69bc0f |
+ echo m68k-unknown-mint${UNAME_RELEASE}
|
|
|
d69bc0f |
+ exit ;;
|
|
|
d69bc0f |
m68k:machten:*:*)
|
|
|
d69bc0f |
echo m68k-apple-machten${UNAME_RELEASE}
|
|
|
d69bc0f |
exit ;;
|
|
|
d69bc0f |
@@ -484,8 +482,8 @@ EOF
|
|
|
d69bc0f |
echo m88k-motorola-sysv3
|
|
|
d69bc0f |
exit ;;
|
|
|
d69bc0f |
AViiON:dgux:*:*)
|
|
|
d69bc0f |
- # DG/UX returns AViiON for all architectures
|
|
|
d69bc0f |
- UNAME_PROCESSOR=`/usr/bin/uname -p`
|
|
|
d69bc0f |
+ # DG/UX returns AViiON for all architectures
|
|
|
d69bc0f |
+ UNAME_PROCESSOR=`/usr/bin/uname -p`
|
|
|
d69bc0f |
if [ $UNAME_PROCESSOR = mc88100 ] || [ $UNAME_PROCESSOR = mc88110 ]
|
|
|
d69bc0f |
then
|
|
|
d69bc0f |
if [ ${TARGET_BINARY_INTERFACE}x = m88kdguxelfx ] || \
|
|
|
d69bc0f |
@@ -498,7 +496,7 @@ EOF
|
|
|
d69bc0f |
else
|
|
|
d69bc0f |
echo i586-dg-dgux${UNAME_RELEASE}
|
|
|
d69bc0f |
fi
|
|
|
d69bc0f |
- exit ;;
|
|
|
d69bc0f |
+ exit ;;
|
|
|
d69bc0f |
M88*:DolphinOS:*:*) # DolphinOS (SVR3)
|
|
|
d69bc0f |
echo m88k-dolphin-sysv3
|
|
|
d69bc0f |
exit ;;
|
|
|
d69bc0f |
@@ -555,7 +553,7 @@ EOF
|
|
|
d69bc0f |
echo rs6000-ibm-aix3.2
|
|
|
d69bc0f |
fi
|
|
|
d69bc0f |
exit ;;
|
|
|
d69bc0f |
- *:AIX:*:[456])
|
|
|
d69bc0f |
+ *:AIX:*:[4567])
|
|
|
d69bc0f |
IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'`
|
|
|
d69bc0f |
if /usr/sbin/lsattr -El ${IBM_CPU_ID} | grep ' POWER' >/dev/null 2>&1; then
|
|
|
d69bc0f |
IBM_ARCH=rs6000
|
|
|
d69bc0f |
@@ -598,52 +596,52 @@ EOF
|
|
|
d69bc0f |
9000/[678][0-9][0-9])
|
|
|
d69bc0f |
if [ -x /usr/bin/getconf ]; then
|
|
|
d69bc0f |
sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null`
|
|
|
d69bc0f |
- sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null`
|
|
|
d69bc0f |
- case "${sc_cpu_version}" in
|
|
|
d69bc0f |
- 523) HP_ARCH="hppa1.0" ;; # CPU_PA_RISC1_0
|
|
|
d69bc0f |
- 528) HP_ARCH="hppa1.1" ;; # CPU_PA_RISC1_1
|
|
|
d69bc0f |
- 532) # CPU_PA_RISC2_0
|
|
|
d69bc0f |
- case "${sc_kernel_bits}" in
|
|
|
d69bc0f |
- 32) HP_ARCH="hppa2.0n" ;;
|
|
|
d69bc0f |
- 64) HP_ARCH="hppa2.0w" ;;
|
|
|
d69bc0f |
+ sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null`
|
|
|
d69bc0f |
+ case "${sc_cpu_version}" in
|
|
|
d69bc0f |
+ 523) HP_ARCH="hppa1.0" ;; # CPU_PA_RISC1_0
|
|
|
d69bc0f |
+ 528) HP_ARCH="hppa1.1" ;; # CPU_PA_RISC1_1
|
|
|
d69bc0f |
+ 532) # CPU_PA_RISC2_0
|
|
|
d69bc0f |
+ case "${sc_kernel_bits}" in
|
|
|
d69bc0f |
+ 32) HP_ARCH="hppa2.0n" ;;
|
|
|
d69bc0f |
+ 64) HP_ARCH="hppa2.0w" ;;
|
|
|
d69bc0f |
'') HP_ARCH="hppa2.0" ;; # HP-UX 10.20
|
|
|
d69bc0f |
- esac ;;
|
|
|
d69bc0f |
- esac
|
|
|
d69bc0f |
+ esac ;;
|
|
|
d69bc0f |
+ esac
|
|
|
d69bc0f |
fi
|
|
|
d69bc0f |
if [ "${HP_ARCH}" = "" ]; then
|
|
|
d69bc0f |
eval $set_cc_for_build
|
|
|
d69bc0f |
- sed 's/^ //' << EOF >$dummy.c
|
|
|
d69bc0f |
+ sed 's/^ //' << EOF >$dummy.c
|
|
|
d69bc0f |
|
|
|
d69bc0f |
- #define _HPUX_SOURCE
|
|
|
d69bc0f |
- #include <stdlib.h>
|
|
|
d69bc0f |
- #include <unistd.h>
|
|
|
d69bc0f |
+ #define _HPUX_SOURCE
|
|
|
d69bc0f |
+ #include <stdlib.h>
|
|
|
d69bc0f |
+ #include <unistd.h>
|
|
|
d69bc0f |
|
|
|
d69bc0f |
- int main ()
|
|
|
d69bc0f |
- {
|
|
|
d69bc0f |
- #if defined(_SC_KERNEL_BITS)
|
|
|
d69bc0f |
- long bits = sysconf(_SC_KERNEL_BITS);
|
|
|
d69bc0f |
- #endif
|
|
|
d69bc0f |
- long cpu = sysconf (_SC_CPU_VERSION);
|
|
|
d69bc0f |
+ int main ()
|
|
|
d69bc0f |
+ {
|
|
|
d69bc0f |
+ #if defined(_SC_KERNEL_BITS)
|
|
|
d69bc0f |
+ long bits = sysconf(_SC_KERNEL_BITS);
|
|
|
d69bc0f |
+ #endif
|
|
|
d69bc0f |
+ long cpu = sysconf (_SC_CPU_VERSION);
|
|
|
d69bc0f |
|
|
|
d69bc0f |
- switch (cpu)
|
|
|
d69bc0f |
- {
|
|
|
d69bc0f |
- case CPU_PA_RISC1_0: puts ("hppa1.0"); break;
|
|
|
d69bc0f |
- case CPU_PA_RISC1_1: puts ("hppa1.1"); break;
|
|
|
d69bc0f |
- case CPU_PA_RISC2_0:
|
|
|
d69bc0f |
- #if defined(_SC_KERNEL_BITS)
|
|
|
d69bc0f |
- switch (bits)
|
|
|
d69bc0f |
- {
|
|
|
d69bc0f |
- case 64: puts ("hppa2.0w"); break;
|
|
|
d69bc0f |
- case 32: puts ("hppa2.0n"); break;
|
|
|
d69bc0f |
- default: puts ("hppa2.0"); break;
|
|
|
d69bc0f |
- } break;
|
|
|
d69bc0f |
- #else /* !defined(_SC_KERNEL_BITS) */
|
|
|
d69bc0f |
- puts ("hppa2.0"); break;
|
|
|
d69bc0f |
- #endif
|
|
|
d69bc0f |
- default: puts ("hppa1.0"); break;
|
|
|
d69bc0f |
- }
|
|
|
d69bc0f |
- exit (0);
|
|
|
d69bc0f |
- }
|
|
|
d69bc0f |
+ switch (cpu)
|
|
|
d69bc0f |
+ {
|
|
|
d69bc0f |
+ case CPU_PA_RISC1_0: puts ("hppa1.0"); break;
|
|
|
d69bc0f |
+ case CPU_PA_RISC1_1: puts ("hppa1.1"); break;
|
|
|
d69bc0f |
+ case CPU_PA_RISC2_0:
|
|
|
d69bc0f |
+ #if defined(_SC_KERNEL_BITS)
|
|
|
d69bc0f |
+ switch (bits)
|
|
|
d69bc0f |
+ {
|
|
|
d69bc0f |
+ case 64: puts ("hppa2.0w"); break;
|
|
|
d69bc0f |
+ case 32: puts ("hppa2.0n"); break;
|
|
|
d69bc0f |
+ default: puts ("hppa2.0"); break;
|
|
|
d69bc0f |
+ } break;
|
|
|
d69bc0f |
+ #else /* !defined(_SC_KERNEL_BITS) */
|
|
|
d69bc0f |
+ puts ("hppa2.0"); break;
|
|
|
d69bc0f |
+ #endif
|
|
|
d69bc0f |
+ default: puts ("hppa1.0"); break;
|
|
|
d69bc0f |
+ }
|
|
|
d69bc0f |
+ exit (0);
|
|
|
d69bc0f |
+ }
|
|
|
d69bc0f |
EOF
|
|
|
d69bc0f |
(CCOPTS= $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null) && HP_ARCH=`$dummy`
|
|
|
d69bc0f |
test -z "$HP_ARCH" && HP_ARCH=hppa
|
|
|
d69bc0f |
@@ -663,7 +661,7 @@ EOF
|
|
|
d69bc0f |
# => hppa64-hp-hpux11.23
|
|
|
d69bc0f |
|
|
|
d69bc0f |
if echo __LP64__ | (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) |
|
|
|
d69bc0f |
- grep __LP64__ >/dev/null
|
|
|
d69bc0f |
+ grep -q __LP64__
|
|
|
d69bc0f |
then
|
|
|
d69bc0f |
HP_ARCH="hppa2.0w"
|
|
|
d69bc0f |
else
|
|
|
d69bc0f |
@@ -734,22 +732,22 @@ EOF
|
|
|
d69bc0f |
exit ;;
|
|
|
d69bc0f |
C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*)
|
|
|
d69bc0f |
echo c1-convex-bsd
|
|
|
d69bc0f |
- exit ;;
|
|
|
d69bc0f |
+ exit ;;
|
|
|
d69bc0f |
C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*)
|
|
|
d69bc0f |
if getsysinfo -f scalar_acc
|
|
|
d69bc0f |
then echo c32-convex-bsd
|
|
|
d69bc0f |
else echo c2-convex-bsd
|
|
|
d69bc0f |
fi
|
|
|
d69bc0f |
- exit ;;
|
|
|
d69bc0f |
+ exit ;;
|
|
|
d69bc0f |
C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*)
|
|
|
d69bc0f |
echo c34-convex-bsd
|
|
|
d69bc0f |
- exit ;;
|
|
|
d69bc0f |
+ exit ;;
|
|
|
d69bc0f |
C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*)
|
|
|
d69bc0f |
echo c38-convex-bsd
|
|
|
d69bc0f |
- exit ;;
|
|
|
d69bc0f |
+ exit ;;
|
|
|
d69bc0f |
C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*)
|
|
|
d69bc0f |
echo c4-convex-bsd
|
|
|
d69bc0f |
- exit ;;
|
|
|
d69bc0f |
+ exit ;;
|
|
|
d69bc0f |
CRAY*Y-MP:*:*:*)
|
|
|
d69bc0f |
echo ymp-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
|
|
|
d69bc0f |
exit ;;
|
|
|
d69bc0f |
@@ -773,14 +771,14 @@ EOF
|
|
|
d69bc0f |
exit ;;
|
|
|
d69bc0f |
F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*)
|
|
|
d69bc0f |
FUJITSU_PROC=`uname -m | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'`
|
|
|
d69bc0f |
- FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'`
|
|
|
d69bc0f |
- FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'`
|
|
|
d69bc0f |
- echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}"
|
|
|
d69bc0f |
- exit ;;
|
|
|
d69bc0f |
+ FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'`
|
|
|
d69bc0f |
+ FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'`
|
|
|
d69bc0f |
+ echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}"
|
|
|
d69bc0f |
+ exit ;;
|
|
|
d69bc0f |
5000:UNIX_System_V:4.*:*)
|
|
|
d69bc0f |
- FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'`
|
|
|
d69bc0f |
- FUJITSU_REL=`echo ${UNAME_RELEASE} | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/ /_/'`
|
|
|
d69bc0f |
- echo "sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}"
|
|
|
d69bc0f |
+ FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'`
|
|
|
d69bc0f |
+ FUJITSU_REL=`echo ${UNAME_RELEASE} | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/ /_/'`
|
|
|
d69bc0f |
+ echo "sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}"
|
|
|
d69bc0f |
exit ;;
|
|
|
d69bc0f |
i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*)
|
|
|
d69bc0f |
echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE}
|
|
|
d69bc0f |
@@ -792,13 +790,12 @@ EOF
|
|
|
d69bc0f |
echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE}
|
|
|
d69bc0f |
exit ;;
|
|
|
d69bc0f |
*:FreeBSD:*:*)
|
|
|
d69bc0f |
- case ${UNAME_MACHINE} in
|
|
|
d69bc0f |
- pc98)
|
|
|
d69bc0f |
- echo i386-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;;
|
|
|
d69bc0f |
+ UNAME_PROCESSOR=`/usr/bin/uname -p`
|
|
|
d69bc0f |
+ case ${UNAME_PROCESSOR} in
|
|
|
d69bc0f |
amd64)
|
|
|
d69bc0f |
echo x86_64-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;;
|
|
|
d69bc0f |
*)
|
|
|
d69bc0f |
- echo ${UNAME_MACHINE}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;;
|
|
|
d69bc0f |
+ echo ${UNAME_PROCESSOR}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;;
|
|
|
d69bc0f |
esac
|
|
|
d69bc0f |
exit ;;
|
|
|
d69bc0f |
i*:CYGWIN*:*)
|
|
|
d69bc0f |
@@ -807,19 +804,22 @@ EOF
|
|
|
d69bc0f |
*:MINGW*:*)
|
|
|
d69bc0f |
echo ${UNAME_MACHINE}-pc-mingw32
|
|
|
d69bc0f |
exit ;;
|
|
|
d69bc0f |
+ i*:MSYS*:*)
|
|
|
d69bc0f |
+ echo ${UNAME_MACHINE}-pc-msys
|
|
|
d69bc0f |
+ exit ;;
|
|
|
d69bc0f |
i*:windows32*:*)
|
|
|
d69bc0f |
- # uname -m includes "-pc" on this system.
|
|
|
d69bc0f |
- echo ${UNAME_MACHINE}-mingw32
|
|
|
d69bc0f |
+ # uname -m includes "-pc" on this system.
|
|
|
d69bc0f |
+ echo ${UNAME_MACHINE}-mingw32
|
|
|
d69bc0f |
exit ;;
|
|
|
d69bc0f |
i*:PW*:*)
|
|
|
d69bc0f |
echo ${UNAME_MACHINE}-pc-pw32
|
|
|
d69bc0f |
exit ;;
|
|
|
d69bc0f |
- *:Interix*:[3456]*)
|
|
|
d69bc0f |
- case ${UNAME_MACHINE} in
|
|
|
d69bc0f |
+ *:Interix*:*)
|
|
|
d69bc0f |
+ case ${UNAME_MACHINE} in
|
|
|
d69bc0f |
x86)
|
|
|
d69bc0f |
echo i586-pc-interix${UNAME_RELEASE}
|
|
|
d69bc0f |
exit ;;
|
|
|
d69bc0f |
- EM64T | authenticamd | genuineintel)
|
|
|
d69bc0f |
+ authenticamd | genuineintel | EM64T)
|
|
|
d69bc0f |
echo x86_64-unknown-interix${UNAME_RELEASE}
|
|
|
d69bc0f |
exit ;;
|
|
|
d69bc0f |
IA64)
|
|
|
d69bc0f |
@@ -829,6 +829,9 @@ EOF
|
|
|
d69bc0f |
[345]86:Windows_95:* | [345]86:Windows_98:* | [345]86:Windows_NT:*)
|
|
|
d69bc0f |
echo i${UNAME_MACHINE}-pc-mks
|
|
|
d69bc0f |
exit ;;
|
|
|
d69bc0f |
+ 8664:Windows_NT:*)
|
|
|
d69bc0f |
+ echo x86_64-pc-mks
|
|
|
d69bc0f |
+ exit ;;
|
|
|
d69bc0f |
i*:Windows_NT*:* | Pentium*:Windows_NT*:*)
|
|
|
d69bc0f |
# How do we know it's Interix rather than the generic POSIX subsystem?
|
|
|
d69bc0f |
# It also conflicts with pre-2.0 versions of AT&T UWIN. Should we
|
|
|
d69bc0f |
@@ -858,6 +861,27 @@ EOF
|
|
|
d69bc0f |
i*86:Minix:*:*)
|
|
|
d69bc0f |
echo ${UNAME_MACHINE}-pc-minix
|
|
|
d69bc0f |
exit ;;
|
|
|
d69bc0f |
+ aarch64:Linux:*:*)
|
|
|
d69bc0f |
+ echo ${UNAME_MACHINE}-unknown-linux-gnu
|
|
|
d69bc0f |
+ exit ;;
|
|
|
d69bc0f |
+ aarch64_be:Linux:*:*)
|
|
|
d69bc0f |
+ UNAME_MACHINE=aarch64_be
|
|
|
d69bc0f |
+ echo ${UNAME_MACHINE}-unknown-linux-gnu
|
|
|
d69bc0f |
+ exit ;;
|
|
|
d69bc0f |
+ alpha:Linux:*:*)
|
|
|
d69bc0f |
+ case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in
|
|
|
d69bc0f |
+ EV5) UNAME_MACHINE=alphaev5 ;;
|
|
|
d69bc0f |
+ EV56) UNAME_MACHINE=alphaev56 ;;
|
|
|
d69bc0f |
+ PCA56) UNAME_MACHINE=alphapca56 ;;
|
|
|
d69bc0f |
+ PCA57) UNAME_MACHINE=alphapca56 ;;
|
|
|
d69bc0f |
+ EV6) UNAME_MACHINE=alphaev6 ;;
|
|
|
d69bc0f |
+ EV67) UNAME_MACHINE=alphaev67 ;;
|
|
|
d69bc0f |
+ EV68*) UNAME_MACHINE=alphaev68 ;;
|
|
|
d69bc0f |
+ esac
|
|
|
d69bc0f |
+ objdump --private-headers /bin/sh | grep -q ld.so.1
|
|
|
d69bc0f |
+ if test "$?" = 0 ; then LIBC="libc1" ; else LIBC="" ; fi
|
|
|
d69bc0f |
+ echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC}
|
|
|
d69bc0f |
+ exit ;;
|
|
|
d69bc0f |
arm*:Linux:*:*)
|
|
|
d69bc0f |
eval $set_cc_for_build
|
|
|
d69bc0f |
if echo __ARM_EABI__ | $CC_FOR_BUILD -E - 2>/dev/null \
|
|
|
d69bc0f |
@@ -865,20 +889,40 @@ EOF
|
|
|
d69bc0f |
then
|
|
|
d69bc0f |
echo ${UNAME_MACHINE}-unknown-linux-gnu
|
|
|
d69bc0f |
else
|
|
|
d69bc0f |
- echo ${UNAME_MACHINE}-unknown-linux-gnueabi
|
|
|
d69bc0f |
+ if echo __ARM_PCS_VFP | $CC_FOR_BUILD -E - 2>/dev/null \
|
|
|
d69bc0f |
+ | grep -q __ARM_PCS_VFP
|
|
|
d69bc0f |
+ then
|
|
|
d69bc0f |
+ echo ${UNAME_MACHINE}-unknown-linux-gnueabi
|
|
|
d69bc0f |
+ else
|
|
|
d69bc0f |
+ echo ${UNAME_MACHINE}-unknown-linux-gnueabihf
|
|
|
d69bc0f |
+ fi
|
|
|
d69bc0f |
fi
|
|
|
d69bc0f |
exit ;;
|
|
|
d69bc0f |
avr32*:Linux:*:*)
|
|
|
d69bc0f |
echo ${UNAME_MACHINE}-unknown-linux-gnu
|
|
|
d69bc0f |
exit ;;
|
|
|
d69bc0f |
cris:Linux:*:*)
|
|
|
d69bc0f |
- echo cris-axis-linux-gnu
|
|
|
d69bc0f |
+ echo ${UNAME_MACHINE}-axis-linux-gnu
|
|
|
d69bc0f |
exit ;;
|
|
|
d69bc0f |
crisv32:Linux:*:*)
|
|
|
d69bc0f |
- echo crisv32-axis-linux-gnu
|
|
|
d69bc0f |
+ echo ${UNAME_MACHINE}-axis-linux-gnu
|
|
|
d69bc0f |
exit ;;
|
|
|
d69bc0f |
frv:Linux:*:*)
|
|
|
d69bc0f |
- echo frv-unknown-linux-gnu
|
|
|
d69bc0f |
+ echo ${UNAME_MACHINE}-unknown-linux-gnu
|
|
|
d69bc0f |
+ exit ;;
|
|
|
d69bc0f |
+ hexagon:Linux:*:*)
|
|
|
d69bc0f |
+ echo ${UNAME_MACHINE}-unknown-linux-gnu
|
|
|
d69bc0f |
+ exit ;;
|
|
|
d69bc0f |
+ i*86:Linux:*:*)
|
|
|
d69bc0f |
+ LIBC=gnu
|
|
|
d69bc0f |
+ eval $set_cc_for_build
|
|
|
d69bc0f |
+ sed 's/^ //' << EOF >$dummy.c
|
|
|
d69bc0f |
+ #ifdef __dietlibc__
|
|
|
d69bc0f |
+ LIBC=dietlibc
|
|
|
d69bc0f |
+ #endif
|
|
|
d69bc0f |
+EOF
|
|
|
d69bc0f |
+ eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^LIBC'`
|
|
|
d69bc0f |
+ echo "${UNAME_MACHINE}-pc-linux-${LIBC}"
|
|
|
d69bc0f |
exit ;;
|
|
|
d69bc0f |
ia64:Linux:*:*)
|
|
|
d69bc0f |
echo ${UNAME_MACHINE}-unknown-linux-gnu
|
|
|
d69bc0f |
@@ -889,78 +933,34 @@ EOF
|
|
|
d69bc0f |
m68*:Linux:*:*)
|
|
|
d69bc0f |
echo ${UNAME_MACHINE}-unknown-linux-gnu
|
|
|
d69bc0f |
exit ;;
|
|
|
d69bc0f |
- mips:Linux:*:*)
|
|
|
d69bc0f |
- eval $set_cc_for_build
|
|
|
d69bc0f |
- sed 's/^ //' << EOF >$dummy.c
|
|
|
d69bc0f |
- #undef CPU
|
|
|
d69bc0f |
- #undef mips
|
|
|
d69bc0f |
- #undef mipsel
|
|
|
d69bc0f |
- #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL)
|
|
|
d69bc0f |
- CPU=mipsel
|
|
|
d69bc0f |
- #else
|
|
|
d69bc0f |
- #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB)
|
|
|
d69bc0f |
- CPU=mips
|
|
|
d69bc0f |
- #else
|
|
|
d69bc0f |
- CPU=
|
|
|
d69bc0f |
- #endif
|
|
|
d69bc0f |
- #endif
|
|
|
d69bc0f |
-EOF
|
|
|
d69bc0f |
- eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n '
|
|
|
d69bc0f |
- /^CPU/{
|
|
|
d69bc0f |
- s: ::g
|
|
|
d69bc0f |
- p
|
|
|
d69bc0f |
- }'`"
|
|
|
d69bc0f |
- test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; }
|
|
|
d69bc0f |
- ;;
|
|
|
d69bc0f |
- mips64:Linux:*:*)
|
|
|
d69bc0f |
+ mips:Linux:*:* | mips64:Linux:*:*)
|
|
|
d69bc0f |
eval $set_cc_for_build
|
|
|
d69bc0f |
sed 's/^ //' << EOF >$dummy.c
|
|
|
d69bc0f |
#undef CPU
|
|
|
d69bc0f |
- #undef mips64
|
|
|
d69bc0f |
- #undef mips64el
|
|
|
d69bc0f |
+ #undef ${UNAME_MACHINE}
|
|
|
d69bc0f |
+ #undef ${UNAME_MACHINE}el
|
|
|
d69bc0f |
#if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL)
|
|
|
d69bc0f |
- CPU=mips64el
|
|
|
d69bc0f |
+ CPU=${UNAME_MACHINE}el
|
|
|
d69bc0f |
#else
|
|
|
d69bc0f |
#if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB)
|
|
|
d69bc0f |
- CPU=mips64
|
|
|
d69bc0f |
+ CPU=${UNAME_MACHINE}
|
|
|
d69bc0f |
#else
|
|
|
d69bc0f |
CPU=
|
|
|
d69bc0f |
#endif
|
|
|
d69bc0f |
#endif
|
|
|
d69bc0f |
EOF
|
|
|
d69bc0f |
- eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n '
|
|
|
d69bc0f |
- /^CPU/{
|
|
|
d69bc0f |
- s: ::g
|
|
|
d69bc0f |
- p
|
|
|
d69bc0f |
- }'`"
|
|
|
d69bc0f |
+ eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^CPU'`
|
|
|
d69bc0f |
test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; }
|
|
|
d69bc0f |
;;
|
|
|
d69bc0f |
or32:Linux:*:*)
|
|
|
d69bc0f |
- echo or32-unknown-linux-gnu
|
|
|
d69bc0f |
- exit ;;
|
|
|
d69bc0f |
- ppc:Linux:*:*)
|
|
|
d69bc0f |
- echo powerpc-unknown-linux-gnu
|
|
|
d69bc0f |
- exit ;;
|
|
|
d69bc0f |
- ppc64:Linux:*:*)
|
|
|
d69bc0f |
- echo powerpc64-unknown-linux-gnu
|
|
|
d69bc0f |
- exit ;;
|
|
|
d69bc0f |
- alpha:Linux:*:*)
|
|
|
d69bc0f |
- case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in
|
|
|
d69bc0f |
- EV5) UNAME_MACHINE=alphaev5 ;;
|
|
|
d69bc0f |
- EV56) UNAME_MACHINE=alphaev56 ;;
|
|
|
d69bc0f |
- PCA56) UNAME_MACHINE=alphapca56 ;;
|
|
|
d69bc0f |
- PCA57) UNAME_MACHINE=alphapca56 ;;
|
|
|
d69bc0f |
- EV6) UNAME_MACHINE=alphaev6 ;;
|
|
|
d69bc0f |
- EV67) UNAME_MACHINE=alphaev67 ;;
|
|
|
d69bc0f |
- EV68*) UNAME_MACHINE=alphaev68 ;;
|
|
|
d69bc0f |
- esac
|
|
|
d69bc0f |
- objdump --private-headers /bin/sh | grep ld.so.1 >/dev/null
|
|
|
d69bc0f |
- if test "$?" = 0 ; then LIBC="libc1" ; else LIBC="" ; fi
|
|
|
d69bc0f |
- echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC}
|
|
|
d69bc0f |
+ echo ${UNAME_MACHINE}-unknown-linux-gnu
|
|
|
d69bc0f |
exit ;;
|
|
|
d69bc0f |
padre:Linux:*:*)
|
|
|
d69bc0f |
echo sparc-unknown-linux-gnu
|
|
|
d69bc0f |
exit ;;
|
|
|
d69bc0f |
+ parisc64:Linux:*:* | hppa64:Linux:*:*)
|
|
|
d69bc0f |
+ echo hppa64-unknown-linux-gnu
|
|
|
d69bc0f |
+ exit ;;
|
|
|
d69bc0f |
parisc:Linux:*:* | hppa:Linux:*:*)
|
|
|
d69bc0f |
# Look for CPU level
|
|
|
d69bc0f |
case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in
|
|
|
d69bc0f |
@@ -969,14 +969,17 @@ EOF
|
|
|
d69bc0f |
*) echo hppa-unknown-linux-gnu ;;
|
|
|
d69bc0f |
esac
|
|
|
d69bc0f |
exit ;;
|
|
|
d69bc0f |
- parisc64:Linux:*:* | hppa64:Linux:*:*)
|
|
|
d69bc0f |
- echo hppa64-unknown-linux-gnu
|
|
|
d69bc0f |
+ ppc64:Linux:*:*)
|
|
|
d69bc0f |
+ echo powerpc64-unknown-linux-gnu
|
|
|
d69bc0f |
+ exit ;;
|
|
|
d69bc0f |
+ ppc:Linux:*:*)
|
|
|
d69bc0f |
+ echo powerpc-unknown-linux-gnu
|
|
|
d69bc0f |
exit ;;
|
|
|
d69bc0f |
s390:Linux:*:* | s390x:Linux:*:*)
|
|
|
d69bc0f |
echo ${UNAME_MACHINE}-ibm-linux
|
|
|
d69bc0f |
exit ;;
|
|
|
d69bc0f |
sh64*:Linux:*:*)
|
|
|
d69bc0f |
- echo ${UNAME_MACHINE}-unknown-linux-gnu
|
|
|
d69bc0f |
+ echo ${UNAME_MACHINE}-unknown-linux-gnu
|
|
|
d69bc0f |
exit ;;
|
|
|
d69bc0f |
sh*:Linux:*:*)
|
|
|
d69bc0f |
echo ${UNAME_MACHINE}-unknown-linux-gnu
|
|
|
d69bc0f |
@@ -984,75 +987,18 @@ EOF
|
|
|
d69bc0f |
sparc:Linux:*:* | sparc64:Linux:*:*)
|
|
|
d69bc0f |
echo ${UNAME_MACHINE}-unknown-linux-gnu
|
|
|
d69bc0f |
exit ;;
|
|
|
d69bc0f |
+ tile*:Linux:*:*)
|
|
|
d69bc0f |
+ echo ${UNAME_MACHINE}-unknown-linux-gnu
|
|
|
d69bc0f |
+ exit ;;
|
|
|
d69bc0f |
vax:Linux:*:*)
|
|
|
d69bc0f |
echo ${UNAME_MACHINE}-dec-linux-gnu
|
|
|
d69bc0f |
exit ;;
|
|
|
d69bc0f |
x86_64:Linux:*:*)
|
|
|
d69bc0f |
- echo x86_64-unknown-linux-gnu
|
|
|
d69bc0f |
+ echo ${UNAME_MACHINE}-unknown-linux-gnu
|
|
|
d69bc0f |
exit ;;
|
|
|
d69bc0f |
xtensa*:Linux:*:*)
|
|
|
d69bc0f |
- echo ${UNAME_MACHINE}-unknown-linux-gnu
|
|
|
d69bc0f |
+ echo ${UNAME_MACHINE}-unknown-linux-gnu
|
|
|
d69bc0f |
exit ;;
|
|
|
d69bc0f |
- i*86:Linux:*:*)
|
|
|
d69bc0f |
- # The BFD linker knows what the default object file format is, so
|
|
|
d69bc0f |
- # first see if it will tell us. cd to the root directory to prevent
|
|
|
d69bc0f |
- # problems with other programs or directories called `ld' in the path.
|
|
|
d69bc0f |
- # Set LC_ALL=C to ensure ld outputs messages in English.
|
|
|
d69bc0f |
- ld_supported_targets=`cd /; LC_ALL=C ld --help 2>&1 \
|
|
|
d69bc0f |
- | sed -ne '/supported targets:/!d
|
|
|
d69bc0f |
- s/[ ][ ]*/ /g
|
|
|
d69bc0f |
- s/.*supported targets: *//
|
|
|
d69bc0f |
- s/ .*//
|
|
|
d69bc0f |
- p'`
|
|
|
d69bc0f |
- case "$ld_supported_targets" in
|
|
|
d69bc0f |
- elf32-i386)
|
|
|
d69bc0f |
- TENTATIVE="${UNAME_MACHINE}-pc-linux-gnu"
|
|
|
d69bc0f |
- ;;
|
|
|
d69bc0f |
- a.out-i386-linux)
|
|
|
d69bc0f |
- echo "${UNAME_MACHINE}-pc-linux-gnuaout"
|
|
|
d69bc0f |
- exit ;;
|
|
|
d69bc0f |
- "")
|
|
|
d69bc0f |
- # Either a pre-BFD a.out linker (linux-gnuoldld) or
|
|
|
d69bc0f |
- # one that does not give us useful --help.
|
|
|
d69bc0f |
- echo "${UNAME_MACHINE}-pc-linux-gnuoldld"
|
|
|
d69bc0f |
- exit ;;
|
|
|
d69bc0f |
- esac
|
|
|
d69bc0f |
- # Determine whether the default compiler is a.out or elf
|
|
|
d69bc0f |
- eval $set_cc_for_build
|
|
|
d69bc0f |
- sed 's/^ //' << EOF >$dummy.c
|
|
|
d69bc0f |
- #include <features.h>
|
|
|
d69bc0f |
- #ifdef __ELF__
|
|
|
d69bc0f |
- # ifdef __GLIBC__
|
|
|
d69bc0f |
- # if __GLIBC__ >= 2
|
|
|
d69bc0f |
- LIBC=gnu
|
|
|
d69bc0f |
- # else
|
|
|
d69bc0f |
- LIBC=gnulibc1
|
|
|
d69bc0f |
- # endif
|
|
|
d69bc0f |
- # else
|
|
|
d69bc0f |
- LIBC=gnulibc1
|
|
|
d69bc0f |
- # endif
|
|
|
d69bc0f |
- #else
|
|
|
d69bc0f |
- #if defined(__INTEL_COMPILER) || defined(__PGI) || defined(__SUNPRO_C) || defined(__SUNPRO_CC)
|
|
|
d69bc0f |
- LIBC=gnu
|
|
|
d69bc0f |
- #else
|
|
|
d69bc0f |
- LIBC=gnuaout
|
|
|
d69bc0f |
- #endif
|
|
|
d69bc0f |
- #endif
|
|
|
d69bc0f |
- #ifdef __dietlibc__
|
|
|
d69bc0f |
- LIBC=dietlibc
|
|
|
d69bc0f |
- #endif
|
|
|
d69bc0f |
-EOF
|
|
|
d69bc0f |
- eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n '
|
|
|
d69bc0f |
- /^LIBC/{
|
|
|
d69bc0f |
- s: ::g
|
|
|
d69bc0f |
- p
|
|
|
d69bc0f |
- }'`"
|
|
|
d69bc0f |
- test x"${LIBC}" != x && {
|
|
|
d69bc0f |
- echo "${UNAME_MACHINE}-pc-linux-${LIBC}"
|
|
|
d69bc0f |
- exit
|
|
|
d69bc0f |
- }
|
|
|
d69bc0f |
- test x"${TENTATIVE}" != x && { echo "${TENTATIVE}"; exit; }
|
|
|
d69bc0f |
- ;;
|
|
|
d69bc0f |
i*86:DYNIX/ptx:4*:*)
|
|
|
d69bc0f |
# ptx 4.0 does uname -s correctly, with DYNIX/ptx in there.
|
|
|
d69bc0f |
# earlier versions are messed up and put the nodename in both
|
|
|
d69bc0f |
@@ -1060,11 +1006,11 @@ EOF
|
|
|
d69bc0f |
echo i386-sequent-sysv4
|
|
|
d69bc0f |
exit ;;
|
|
|
d69bc0f |
i*86:UNIX_SV:4.2MP:2.*)
|
|
|
d69bc0f |
- # Unixware is an offshoot of SVR4, but it has its own version
|
|
|
d69bc0f |
- # number series starting with 2...
|
|
|
d69bc0f |
- # I am not positive that other SVR4 systems won't match this,
|
|
|
d69bc0f |
+ # Unixware is an offshoot of SVR4, but it has its own version
|
|
|
d69bc0f |
+ # number series starting with 2...
|
|
|
d69bc0f |
+ # I am not positive that other SVR4 systems won't match this,
|
|
|
d69bc0f |
# I just have to hope. -- rms.
|
|
|
d69bc0f |
- # Use sysv4.2uw... so that sysv4* matches it.
|
|
|
d69bc0f |
+ # Use sysv4.2uw... so that sysv4* matches it.
|
|
|
d69bc0f |
echo ${UNAME_MACHINE}-pc-sysv4.2uw${UNAME_VERSION}
|
|
|
d69bc0f |
exit ;;
|
|
|
d69bc0f |
i*86:OS/2:*:*)
|
|
|
d69bc0f |
@@ -1081,7 +1027,7 @@ EOF
|
|
|
d69bc0f |
i*86:syllable:*:*)
|
|
|
d69bc0f |
echo ${UNAME_MACHINE}-pc-syllable
|
|
|
d69bc0f |
exit ;;
|
|
|
d69bc0f |
- i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.0*:*)
|
|
|
d69bc0f |
+ i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.[02]*:*)
|
|
|
d69bc0f |
echo i386-unknown-lynxos${UNAME_RELEASE}
|
|
|
d69bc0f |
exit ;;
|
|
|
d69bc0f |
i*86:*DOS:*:*)
|
|
|
d69bc0f |
@@ -1096,7 +1042,7 @@ EOF
|
|
|
d69bc0f |
fi
|
|
|
d69bc0f |
exit ;;
|
|
|
d69bc0f |
i*86:*:5:[678]*)
|
|
|
d69bc0f |
- # UnixWare 7.x, OpenUNIX and OpenServer 6.
|
|
|
d69bc0f |
+ # UnixWare 7.x, OpenUNIX and OpenServer 6.
|
|
|
d69bc0f |
case `/bin/uname -X | grep "^Machine"` in
|
|
|
d69bc0f |
*486*) UNAME_MACHINE=i486 ;;
|
|
|
d69bc0f |
*Pentium) UNAME_MACHINE=i586 ;;
|
|
|
d69bc0f |
@@ -1124,10 +1070,13 @@ EOF
|
|
|
d69bc0f |
exit ;;
|
|
|
d69bc0f |
pc:*:*:*)
|
|
|
d69bc0f |
# Left here for compatibility:
|
|
|
d69bc0f |
- # uname -m prints for DJGPP always 'pc', but it prints nothing about
|
|
|
d69bc0f |
- # the processor, so we play safe by assuming i386.
|
|
|
d69bc0f |
- echo i386-pc-msdosdjgpp
|
|
|
d69bc0f |
- exit ;;
|
|
|
d69bc0f |
+ # uname -m prints for DJGPP always 'pc', but it prints nothing about
|
|
|
d69bc0f |
+ # the processor, so we play safe by assuming i586.
|
|
|
d69bc0f |
+ # Note: whatever this is, it MUST be the same as what config.sub
|
|
|
d69bc0f |
+ # prints for the "djgpp" host, or else GDB configury will decide that
|
|
|
d69bc0f |
+ # this is a cross-build.
|
|
|
d69bc0f |
+ echo i586-pc-msdosdjgpp
|
|
|
d69bc0f |
+ exit ;;
|
|
|
d69bc0f |
Intel:Mach:3*:*)
|
|
|
d69bc0f |
echo i386-pc-mach3
|
|
|
d69bc0f |
exit ;;
|
|
|
d69bc0f |
@@ -1162,8 +1111,18 @@ EOF
|
|
|
d69bc0f |
/bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \
|
|
|
d69bc0f |
&& { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;;
|
|
|
d69bc0f |
3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*)
|
|
|
d69bc0f |
- /bin/uname -p 2>/dev/null | grep 86 >/dev/null \
|
|
|
d69bc0f |
- && { echo i486-ncr-sysv4; exit; } ;;
|
|
|
d69bc0f |
+ /bin/uname -p 2>/dev/null | grep 86 >/dev/null \
|
|
|
d69bc0f |
+ && { echo i486-ncr-sysv4; exit; } ;;
|
|
|
d69bc0f |
+ NCR*:*:4.2:* | MPRAS*:*:4.2:*)
|
|
|
d69bc0f |
+ OS_REL='.3'
|
|
|
d69bc0f |
+ test -r /etc/.relid \
|
|
|
d69bc0f |
+ && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid`
|
|
|
d69bc0f |
+ /bin/uname -p 2>/dev/null | grep 86 >/dev/null \
|
|
|
d69bc0f |
+ && { echo i486-ncr-sysv4.3${OS_REL}; exit; }
|
|
|
d69bc0f |
+ /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \
|
|
|
d69bc0f |
+ && { echo i586-ncr-sysv4.3${OS_REL}; exit; }
|
|
|
d69bc0f |
+ /bin/uname -p 2>/dev/null | /bin/grep pteron >/dev/null \
|
|
|
d69bc0f |
+ && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;;
|
|
|
d69bc0f |
m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*)
|
|
|
d69bc0f |
echo m68k-unknown-lynxos${UNAME_RELEASE}
|
|
|
d69bc0f |
exit ;;
|
|
|
d69bc0f |
@@ -1176,7 +1135,7 @@ EOF
|
|
|
d69bc0f |
rs6000:LynxOS:2.*:*)
|
|
|
d69bc0f |
echo rs6000-unknown-lynxos${UNAME_RELEASE}
|
|
|
d69bc0f |
exit ;;
|
|
|
d69bc0f |
- PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.0*:*)
|
|
|
d69bc0f |
+ PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.[02]*:*)
|
|
|
d69bc0f |
echo powerpc-unknown-lynxos${UNAME_RELEASE}
|
|
|
d69bc0f |
exit ;;
|
|
|
d69bc0f |
SM[BE]S:UNIX_SV:*:*)
|
|
|
d69bc0f |
@@ -1196,10 +1155,10 @@ EOF
|
|
|
d69bc0f |
echo ns32k-sni-sysv
|
|
|
d69bc0f |
fi
|
|
|
d69bc0f |
exit ;;
|
|
|
d69bc0f |
- PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort
|
|
|
d69bc0f |
- # says <Richard.M.Bartel@ccMail.Census.GOV>
|
|
|
d69bc0f |
- echo i586-unisys-sysv4
|
|
|
d69bc0f |
- exit ;;
|
|
|
d69bc0f |
+ PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort
|
|
|
d69bc0f |
+ # says <Richard.M.Bartel@ccMail.Census.GOV>
|
|
|
d69bc0f |
+ echo i586-unisys-sysv4
|
|
|
d69bc0f |
+ exit ;;
|
|
|
d69bc0f |
*:UNIX_System_V:4*:FTX*)
|
|
|
d69bc0f |
# From Gerald Hewes <hewes@openmarket.com>.
|
|
|
d69bc0f |
# How about differentiating between stratus architectures? -djm
|
|
|
d69bc0f |
@@ -1225,11 +1184,11 @@ EOF
|
|
|
d69bc0f |
exit ;;
|
|
|
d69bc0f |
R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*)
|
|
|
d69bc0f |
if [ -d /usr/nec ]; then
|
|
|
d69bc0f |
- echo mips-nec-sysv${UNAME_RELEASE}
|
|
|
d69bc0f |
+ echo mips-nec-sysv${UNAME_RELEASE}
|
|
|
d69bc0f |
else
|
|
|
d69bc0f |
- echo mips-unknown-sysv${UNAME_RELEASE}
|
|
|
d69bc0f |
+ echo mips-unknown-sysv${UNAME_RELEASE}
|
|
|
d69bc0f |
fi
|
|
|
d69bc0f |
- exit ;;
|
|
|
d69bc0f |
+ exit ;;
|
|
|
d69bc0f |
BeBox:BeOS:*:*) # BeOS running on hardware made by Be, PPC only.
|
|
|
d69bc0f |
echo powerpc-be-beos
|
|
|
d69bc0f |
exit ;;
|
|
|
d69bc0f |
@@ -1269,6 +1228,16 @@ EOF
|
|
|
d69bc0f |
*:Darwin:*:*)
|
|
|
d69bc0f |
UNAME_PROCESSOR=`uname -p` || UNAME_PROCESSOR=unknown
|
|
|
d69bc0f |
case $UNAME_PROCESSOR in
|
|
|
d69bc0f |
+ i386)
|
|
|
d69bc0f |
+ eval $set_cc_for_build
|
|
|
d69bc0f |
+ if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then
|
|
|
d69bc0f |
+ if (echo '#ifdef __LP64__'; echo IS_64BIT_ARCH; echo '#endif') | \
|
|
|
d69bc0f |
+ (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \
|
|
|
d69bc0f |
+ grep IS_64BIT_ARCH >/dev/null
|
|
|
d69bc0f |
+ then
|
|
|
d69bc0f |
+ UNAME_PROCESSOR="x86_64"
|
|
|
d69bc0f |
+ fi
|
|
|
d69bc0f |
+ fi ;;
|
|
|
d69bc0f |
unknown) UNAME_PROCESSOR=powerpc ;;
|
|
|
d69bc0f |
esac
|
|
|
d69bc0f |
echo ${UNAME_PROCESSOR}-apple-darwin${UNAME_RELEASE}
|
|
|
d69bc0f |
@@ -1284,6 +1253,9 @@ EOF
|
|
|
d69bc0f |
*:QNX:*:4*)
|
|
|
d69bc0f |
echo i386-pc-qnx
|
|
|
d69bc0f |
exit ;;
|
|
|
d69bc0f |
+ NEO-?:NONSTOP_KERNEL:*:*)
|
|
|
d69bc0f |
+ echo neo-tandem-nsk${UNAME_RELEASE}
|
|
|
d69bc0f |
+ exit ;;
|
|
|
d69bc0f |
NSE-?:NONSTOP_KERNEL:*:*)
|
|
|
d69bc0f |
echo nse-tandem-nsk${UNAME_RELEASE}
|
|
|
d69bc0f |
exit ;;
|
|
|
d69bc0f |
@@ -1329,13 +1301,13 @@ EOF
|
|
|
d69bc0f |
echo pdp10-unknown-its
|
|
|
d69bc0f |
exit ;;
|
|
|
d69bc0f |
SEI:*:*:SEIUX)
|
|
|
d69bc0f |
- echo mips-sei-seiux${UNAME_RELEASE}
|
|
|
d69bc0f |
+ echo mips-sei-seiux${UNAME_RELEASE}
|
|
|
d69bc0f |
exit ;;
|
|
|
d69bc0f |
*:DragonFly:*:*)
|
|
|
d69bc0f |
echo ${UNAME_MACHINE}-unknown-dragonfly`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`
|
|
|
d69bc0f |
exit ;;
|
|
|
d69bc0f |
*:*VMS:*:*)
|
|
|
d69bc0f |
- UNAME_MACHINE=`(uname -p) 2>/dev/null`
|
|
|
d69bc0f |
+ UNAME_MACHINE=`(uname -p) 2>/dev/null`
|
|
|
d69bc0f |
case "${UNAME_MACHINE}" in
|
|
|
d69bc0f |
A*) echo alpha-dec-vms ; exit ;;
|
|
|
d69bc0f |
I*) echo ia64-dec-vms ; exit ;;
|
|
|
d69bc0f |
@@ -1350,6 +1322,12 @@ EOF
|
|
|
d69bc0f |
i*86:rdos:*:*)
|
|
|
d69bc0f |
echo ${UNAME_MACHINE}-pc-rdos
|
|
|
d69bc0f |
exit ;;
|
|
|
d69bc0f |
+ i*86:AROS:*:*)
|
|
|
d69bc0f |
+ echo ${UNAME_MACHINE}-pc-aros
|
|
|
d69bc0f |
+ exit ;;
|
|
|
d69bc0f |
+ x86_64:VMkernel:*:*)
|
|
|
d69bc0f |
+ echo ${UNAME_MACHINE}-unknown-esx
|
|
|
d69bc0f |
+ exit ;;
|
|
|
d69bc0f |
esac
|
|
|
d69bc0f |
|
|
|
d69bc0f |
#echo '(No uname command or uname output not recognized.)' 1>&2
|
|
|
d69bc0f |
@@ -1372,11 +1350,11 @@ main ()
|
|
|
d69bc0f |
#include <sys/param.h>
|
|
|
d69bc0f |
printf ("m68k-sony-newsos%s\n",
|
|
|
d69bc0f |
#ifdef NEWSOS4
|
|
|
d69bc0f |
- "4"
|
|
|
d69bc0f |
+ "4"
|
|
|
d69bc0f |
#else
|
|
|
d69bc0f |
- ""
|
|
|
d69bc0f |
+ ""
|
|
|
d69bc0f |
#endif
|
|
|
d69bc0f |
- ); exit (0);
|
|
|
d69bc0f |
+ ); exit (0);
|
|
|
d69bc0f |
#endif
|
|
|
d69bc0f |
#endif
|
|
|
d69bc0f |
|
|
|
d69bc0f |
diff --git a/configure.ac b/configure.ac
|
|
|
d69bc0f |
index 9237c77..8e3d9d2 100644
|
|
|
d69bc0f |
--- a/configure.ac
|
|
|
d69bc0f |
+++ b/configure.ac
|
|
|
d69bc0f |
@@ -210,6 +210,20 @@ AC_CANONICAL_BUILD
|
|
|
d69bc0f |
AC_CANONICAL_HOST
|
|
|
d69bc0f |
AC_CANONICAL_TARGET
|
|
|
d69bc0f |
|
|
|
d69bc0f |
+# Testing ARM ABI
|
|
|
d69bc0f |
+# required for code generation (LLVM options)
|
|
|
d69bc0f |
+ARM_ABI=SOFT
|
|
|
d69bc0f |
+echo HOST: $host
|
|
|
d69bc0f |
+
|
|
|
d69bc0f |
+case $host in
|
|
|
d69bc0f |
+ arm*-*-linux-gnueabihf)
|
|
|
d69bc0f |
+ ARM_ABI=HARD
|
|
|
d69bc0f |
+ ;;
|
|
|
d69bc0f |
+ arm*-*-linux-gnueabi)
|
|
|
d69bc0f |
+ ARM_ABI=SOFTFP
|
|
|
d69bc0f |
+ ;;
|
|
|
d69bc0f |
+esac
|
|
|
d69bc0f |
+
|
|
|
d69bc0f |
FPTOOLS_SET_PLATFORM_VARS
|
|
|
d69bc0f |
|
|
|
d69bc0f |
# Verify that the installed (bootstrap) GHC is capable of generating
|
|
|
d69bc0f |
--
|
|
|
d69bc0f |
1.7.4.3
|
|
|
d69bc0f |
|