summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--target/config/Config.in.abi60
-rw-r--r--target/config/Config.in.cpu30
-rw-r--r--toolchain/gcc/Makefile4
3 files changed, 62 insertions, 32 deletions
diff --git a/target/config/Config.in.abi b/target/config/Config.in.abi
index 1871728f5..67eacf274 100644
--- a/target/config/Config.in.abi
+++ b/target/config/Config.in.abi
@@ -18,46 +18,40 @@ endchoice
choice
prompt "ABI"
-depends on ADK_TARGET_ARCH_RISCV32
+depends on ADK_TARGET_ARCH_X86_64 && \
+ (ADK_TARGET_LIB_GLIBC || ADK_TARGET_LIB_MUSL)
+
+config ADK_TARGET_ABI_64
+ bool "64 Bit ABI"
+
+config ADK_TARGET_ABI_X32
+ bool "x32 ABI"
+
+endchoice
config ADK_TARGET_ABI_ILP32
- bool "ilp32 ABI"
+ bool
+ depends on ADK_TARGET_ARCH_RISCV32
config ADK_TARGET_ABI_ILP32F
- bool "ilp32f ABI"
+ bool
+ depends on ADK_TARGET_ARCH_RISCV32
config ADK_TARGET_ABI_ILP32D
- bool "ilp32d ABI"
-
-endchoice
-
-choice
-prompt "ABI"
-depends on ADK_TARGET_ARCH_RISCV64
+ bool
+ depends on ADK_TARGET_ARCH_RISCV32
config ADK_TARGET_ABI_LP64
- bool "lp64 ABI"
+ bool
+ depends on ADK_TARGET_ARCH_RISCV64
config ADK_TARGET_ABI_LP64F
- bool "lp64f ABI"
+ bool
+ depends on ADK_TARGET_ARCH_RISCV64
config ADK_TARGET_ABI_LP64D
- bool "lp64d ABI"
-
-endchoice
-
-choice
-prompt "ABI"
-depends on ADK_TARGET_ARCH_X86_64 && \
- (ADK_TARGET_LIB_GLIBC || ADK_TARGET_LIB_MUSL)
-
-config ADK_TARGET_ABI_64
- bool "64 Bit ABI"
-
-config ADK_TARGET_ABI_X32
- bool "x32 ABI"
-
-endchoice
+ bool
+ depends on ADK_TARGET_ARCH_RISCV64
config ADK_TARGET_ABI
string
@@ -69,6 +63,16 @@ config ADK_TARGET_ABI
default "eabihf" if ADK_TARGET_ARCH_ARM && ADK_TARGET_HARD_FLOAT
default "eabi" if ADK_TARGET_ARCH_ARM
+config ADK_TARGET_ABI_RISCV
+ depends on ADK_TARGET_ARCH_RISCV32 || ADK_TARGET_ARCH_RISCV64
+ string
+ default "lp64" if ADK_TARGET_ABI_LP64
+ default "lp64d" if ADK_TARGET_ABI_LP64D
+ default "lp64f" if ADK_TARGET_ABI_LP64F
+ default "ilp32" if ADK_TARGET_ABI_ILP64
+ default "ilp32d" if ADK_TARGET_ABI_ILP64D
+ default "ilp32f" if ADK_TARGET_ABI_ILP64F
+
config ADK_TARGET_MIPS_ABI
depends on ADK_TARGET_ARCH_MIPS64
string
diff --git a/target/config/Config.in.cpu b/target/config/Config.in.cpu
index 5f453bc90..41e45d2bd 100644
--- a/target/config/Config.in.cpu
+++ b/target/config/Config.in.cpu
@@ -1178,18 +1178,36 @@ config ADK_TARGET_CPU_PPC64_POWER8
depends on ADK_TARGET_ARCH_PPC64
# riscv
-config ADK_TARGET_CPU_RISCV32
- bool "riscv32"
+config ADK_TARGET_CPU_RISCV32_RV32IMAFDC
+ bool "rv32imafdc"
select ADK_TARGET_SUPPORTS_THREADS
select ADK_TARGET_SUPPORTS_NPTL
select ADK_TARGET_WITH_MMU
+ select ADK_TARGET_ABI_ILP32D
depends on ADK_TARGET_ARCH_RISCV32
-config ADK_TARGET_CPU_RISCV64
- bool "riscv64"
+config ADK_TARGET_CPU_RISCV32_RV32IMAC
+ bool "rv32imac"
select ADK_TARGET_SUPPORTS_THREADS
select ADK_TARGET_SUPPORTS_NPTL
select ADK_TARGET_WITH_MMU
+ select ADK_TARGET_ABI_ILP32
+ depends on ADK_TARGET_ARCH_RISCV32
+
+config ADK_TARGET_CPU_RISCV64_RV64IMAFDC
+ bool "rv64imafdc"
+ select ADK_TARGET_SUPPORTS_THREADS
+ select ADK_TARGET_SUPPORTS_NPTL
+ select ADK_TARGET_WITH_MMU
+ select ADK_TARGET_ABI_LP64D
+ depends on ADK_TARGET_ARCH_RISCV64
+
+config ADK_TARGET_CPU_RISCV64_RV64IMAC
+ bool "rv64imac"
+ select ADK_TARGET_SUPPORTS_THREADS
+ select ADK_TARGET_SUPPORTS_NPTL
+ select ADK_TARGET_WITH_MMU
+ select ADK_TARGET_ABI_LP64
depends on ADK_TARGET_ARCH_RISCV64
# rx
@@ -2041,6 +2059,10 @@ config ADK_TARGET_GCC_ARCH
default "x86-64" if ADK_TARGET_CPU_X86_64
default "z900" if ADK_TARGET_CPU_S390_Z900
default "c674x" if ADK_TARGET_CPU_C6X
+ default "rv32imafdc" if ADK_TARGET_CPU_RISCV32_RV32IMAFDC
+ default "rv32imac" if ADK_TARGET_CPU_RISCV32_RV32IMAC
+ default "rv64imafdc" if ADK_TARGET_CPU_RISCV64_RV64IMAFDC
+ default "rv64imac" if ADK_TARGET_CPU_RISCV64_RV64IMAC
# for CFLAGS/CXXFLAGS if gcc does not support --with-cpu
config ADK_TARGET_CPU_FLAGS
diff --git a/toolchain/gcc/Makefile b/toolchain/gcc/Makefile
index 68a1edff8..edd301297 100644
--- a/toolchain/gcc/Makefile
+++ b/toolchain/gcc/Makefile
@@ -215,6 +215,10 @@ ifneq ($(ADK_TARGET_MIPS_ABI),)
GCC_CONFOPTS+= --with-abi=${ADK_TARGET_MIPS_ABI}
endif
+ifneq ($(ADK_TARGET_ABI_RISCV),)
+GCC_CONFOPTS+= --with-abi=${ADK_TARGET_ABI_RISCV}
+endif
+
ifeq (${ADK_MAKE_PARALLEL},y)
GCC_MAKEOPTS+= -j${ADK_MAKE_JOBS}
endif