aboutsummaryrefslogtreecommitdiffstats
path: root/configure
diff options
context:
space:
mode:
authorDavid Monniaux <david.monniaux@univ-grenoble-alpes.fr>2019-09-20 22:39:28 +0200
committerDavid Monniaux <david.monniaux@univ-grenoble-alpes.fr>2019-09-20 22:39:28 +0200
commitb957e99a444fabffbdc3513e4a4f6cfc035c24b1 (patch)
tree2badd541bc9f8c7f71d7e941dbfb2031afc33ed4 /configure
parentde208f6e67fb5fbc94ecd9f9e98804bcdeb14fa5 (diff)
parentaa5b5a4e618b6a0aecc227021080aa4b901d806f (diff)
downloadcompcert-kvx-b957e99a444fabffbdc3513e4a4f6cfc035c24b1.tar.gz
compcert-kvx-b957e99a444fabffbdc3513e4a4f6cfc035c24b1.zip
Merge tag 'v3.6_mppa_2019-09-20' into RTLpath
Diffstat (limited to 'configure')
-rwxr-xr-xconfigure38
1 files changed, 34 insertions, 4 deletions
diff --git a/configure b/configure
index be1a8d4c..96e4a1fd 100755
--- a/configure
+++ b/configure
@@ -57,10 +57,12 @@ Supported targets:
rv64-linux (RISC-V 64 bits, Linux)
k1c-mbr (Kalray K1c, bare runtime)
k1c-cos (Kalray K1c, ClusterOS)
+ aarch64-linux (AArch64, i.e. ARMv8 in 64-bit mode, Linux)
manual (edit configuration file by hand)
For x86 targets, the "x86_32-" prefix can also be written "ia32-" or "i386-".
For x86 targets, the "x86_64-" prefix can also be written "amd64-".
+For AArch64 targets, the "aarch64-" prefix can also be written "arm64-".
For PowerPC targets, the "ppc-" prefix can be refined into:
ppc64- PowerPC 64 bits
@@ -179,6 +181,8 @@ case "$target" in
arch="riscV"; model="64"; endianness="little"; bitsize=64;;
k1c-*)
arch="mppa_k1c"; model="64"; endianness="little"; bitsize=64;;
+ aarch64-*|arm64-*)
+ arch="aarch64"; model="default"; endianness="little"; bitsize=64;;
manual)
;;
"")
@@ -466,6 +470,28 @@ if test "$arch" = "mppa_k1c"; then
system="linux"
fi
+# AArch64 (ARMv8 64 bits) Target Configuration
+#
+if test "$arch" = "aarch64"; then
+ case "$target" in
+ linux)
+ abi="standard"
+ casm="${toolprefix}gcc"
+ casm_options="-c"
+ cc="${toolprefix}gcc"
+ clinker="${toolprefix}gcc"
+ clinker_options=""
+ cprepro="${toolprefix}gcc"
+ cprepro_options="-std=c99 -U__GNUC__ -E"
+ libmath="-lm"
+ system="linux";;
+ *)
+ echo "Error: invalid eabi/system '$target' for architecture AArch64." 1>&2
+ echo "$usage" 1>&2
+ exit 2;;
+ esac
+fi
+
#
# Finalize Target Configuration
@@ -728,6 +754,8 @@ cat >> Makefile.config <<'EOF'
# ARCH=powerpc
# ARCH=arm
# ARCH=x86
+# ARCH=riscV
+# ARCH=aarch6
ARCH=
# Hardware variant
@@ -741,23 +769,24 @@ ARCH=
# MODEL=armv7m # for ARM
# MODEL=32sse2 # for x86 in 32-bit mode
# MODEL=64 # for x86 in 64-bit mode
+# MODEL=default # for others
MODEL=
# Target ABI
# ABI=eabi # for PowerPC / Linux and other SVR4 or EABI platforms
# ABI=eabi # for ARM
# ABI=hardfloat # for ARM
-# ABI=standard # for x86
+# ABI=standard # for others
ABI=
# Target bit width
-# BITSIZE=64 # for x86 in 64-bit mode
+# BITSIZE=64 # for x86 in 64-bit mode, RiscV in 64-bit mode, AArch64
# BITSIZE=32 # otherwise
BITSIZE=
# Target endianness
# ENDIANNESS=big # for ARM or PowerPC
-# ENDIANNESS=little # for ARM or x86
+# ENDIANNESS=little # for ARM or x86 or RiscV or AArch64
ENDIANNESS=
# Target operating system and development environment
@@ -766,7 +795,7 @@ ENDIANNESS=
# SYSTEM=linux
# SYSTEM=diab
#
-# Possible choices for ARM:
+# Possible choices for ARM, AArch64, RiscV:
# SYSTEM=linux
#
# Possible choices for x86:
@@ -818,6 +847,7 @@ cat >> Makefile.config <<EOF
ARCHDIRS=$arch $arch/lib $arch/abstractbb $arch/abstractbb/Impure
EXECUTE=k1-cluster --syscall=libstd_scalls.so --
CFLAGS= -D __K1C_COS__
+SIMU=k1-cluster --
BACKENDLIB=Machblock.v Machblockgen.v Machblockgenproof.v RTLpath.v\\
Asmblock.v Asmblockgen.v Asmblockgenproof0.v Asmblockgenproof1.v Asmblockgenproof.v Asmvliw.v\\
ForwardSimulationBlock.v PostpassScheduling.v PostpassSchedulingproof.v\\