aboutsummaryrefslogtreecommitdiffstats
path: root/configure
diff options
context:
space:
mode:
Diffstat (limited to 'configure')
-rwxr-xr-xconfigure55
1 files changed, 53 insertions, 2 deletions
diff --git a/configure b/configure
index 6bd7ed0e..f13d1af3 100755
--- a/configure
+++ b/configure
@@ -55,6 +55,8 @@ Supported targets:
x86_64-macosx (x86 64 bits, MacOS X)
rv32-linux (RISC-V 32 bits, Linux)
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)
@@ -177,6 +179,8 @@ case "$target" in
arch="riscV"; model="32"; endianness="little"; bitsize=32;;
rv64-*)
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)
@@ -433,6 +437,40 @@ if test "$arch" = "riscV"; then
fi
#
+# K1c Target Configuration
+#
+if test "$arch" = "mppa_k1c"; then
+ #model_options="-march=rv64imafd -mabi=lp64d"
+ # FIXME - maybe later add it for NodeOS & cie
+ #model_options=-m64
+ model_options=
+ abi="standard"
+ if test "$target" = "mbr";
+ then os="mbr";
+ elif test "$target" = "cos";
+ then os="cos";
+ elif test "$target" = "elf";
+ then os="elf";
+ else
+ echo "Unknown K1c backend"
+ exit 1
+ fi
+ osupper=`echo $os|tr a-z A-Z`
+ k1base="k1-$os"
+ casm="k1-elf-as"
+ casm_options="$model_options"
+ cc="$k1base-gcc $model_options"
+ clinker="$k1base-gcc"
+ bindir="$HOME/.usr/bin"
+ libdir="$HOME/.usr/lib"
+ clinker_options="$model_options -L$libdir -Wl,-rpath=$libdir"
+ cprepro="$k1base-gcc"
+ cprepro_options="$model_options -D __K1C_${osupper}__ -std=c99 -E -include ccomp_k1c_fixes.h"
+ libmath="-lm"
+ system="linux"
+fi
+
+#
# AArch64 (ARMv8 64 bits) Target Configuration
#
if test "$arch" = "aarch64"; then
@@ -800,6 +838,21 @@ RESPONSEFILE="none"
EOF
fi
+if [ "$arch" = "mppa_k1c" ]; then
+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\\
+ Asmblock.v Asmblockgen.v Asmblockgenproof0.v Asmblockgenproof1.v Asmblockgenproof.v Asmvliw.v Asmblockprops.v\\
+ ForwardSimulationBlock.v PostpassScheduling.v PostpassSchedulingproof.v\\
+ Asmblockdeps.v DecBoolOps.v Chunks.v Peephole.v ExtValues.v ExtFloats.v\\
+ AbstractBasicBlocksDef.v SeqSimuTheory.v ImpSimuTest.v Parallelizability.v\\
+ ImpConfig.v ImpCore.v ImpExtern.v ImpHCons.v ImpIO.v ImpLoops.v ImpMonads.v ImpPrelude.v
+EOF
+fi
+
#
# Clean up target-dependent files to force their recompilation
#
@@ -853,6 +906,4 @@ cat <<EOF
Coq development will not be installed
EOF
fi
-
fi
-