From f06f17199f3c9cd6b3ed1cb7e013e4125a33e4a4 Mon Sep 17 00:00:00 2001 From: Mark Hatle Date: Mon, 13 Jan 2025 12:48:54 -0700 Subject: meta-vitis-tc: riscv-tc: Enable 'b' extension multilibs 'b' extensions require binutils 2.43 or newer. Update the generation script to correctly identify and set the TUNE_FEATURE for riscv 32-bit and 64-bit. This may be needed in the future. Signed-off-by: Mark Hatle --- meta-vitis-tc/conf/machine/riscv-tc.conf | 125 +++++++++++++++------ .../gcc/gcc-xilinx-standalone-multilib.inc | 6 +- .../recipes-devtools/gcc/riscv-convert.sh | 8 +- 3 files changed, 102 insertions(+), 37 deletions(-) diff --git a/meta-vitis-tc/conf/machine/riscv-tc.conf b/meta-vitis-tc/conf/machine/riscv-tc.conf index d53cbbd7..3d44277d 100644 --- a/meta-vitis-tc/conf/machine/riscv-tc.conf +++ b/meta-vitis-tc/conf/machine/riscv-tc.conf @@ -3,6 +3,9 @@ require conf/multilib.conf require conf/machine/include/riscv/tune-riscv.inc require conf/machine/include/baremetal-tc.conf +# In order to support additional extensions, enable binutils 2.43.1 +BINUVERSION = "2.43%" + # Set defaults # We don't know why pie is not supported, but when enabled results in: # .../riscv32-xilinx-elf/12.2.0/ld: -pie not supported @@ -37,12 +40,16 @@ TUNE_ARCH:tune-riscv = "riscv32" # Multilibs defined in recipes-devtools/gcc/gcc-xilinx-standalone-multilib.inc # Everything below is generated by riscv-convert.sh MULTILIBS = "" +MULTILIBS += "multilib:librv32eilp32e" MULTILIBS += "multilib:librv32iilp32" +MULTILIBS += "multilib:librv32ibilp32" MULTILIBS += "multilib:librv32icilp32" +MULTILIBS += "multilib:librv32icbilp32" MULTILIBS += "multilib:librv32imilp32" +MULTILIBS += "multilib:librv32imbilp32" MULTILIBS += "multilib:librv32imcilp32" +MULTILIBS += "multilib:librv32imcbilp32" MULTILIBS += "multilib:librv32imacilp32" -MULTILIBS += "multilib:librv32eilp32e" MULTILIBS += "multilib:librv32imfzicsrilp32f" MULTILIBS += "multilib:librv32imfczicsrilp32f" MULTILIBS += "multilib:librv32imafczicsrilp32f" @@ -64,12 +71,25 @@ DEFAULTTUNE = "riscv" AVAILTUNES += "riscv" PACKAGE_EXTRA_ARCHS:tune-riscv = "${TUNE_PKGARCH:tune-riscv}" BASE_LIB:tune-riscv = "lib" -TUNE_FEATURES:tune-riscv = "riscv" +TUNE_FEATURES:tune-riscv = "riscv riscv32" TUNE_CCARGS:tune-riscv = "" TUNE_PKGARCH:tune-riscv = "riscv32" TUNE_ARCH:tune-riscv = "riscv32" +# rv32e/ilp32e +# CFLAGS: -march=rv32e -mabi=ilp32e +DEFAULTTUNE:virtclass-multilib-librv32eilp32e = "rv32eilp32e" + +AVAILTUNES += "rv32eilp32e" +PACKAGE_EXTRA_ARCHS:tune-rv32eilp32e = "${TUNE_PKGARCH:tune-rv32eilp32e}" +BASE_LIB:tune-rv32eilp32e = "lib/rv32e/ilp32e" +TUNE_FEATURES:tune-rv32eilp32e = "riscv riscv32" +TUNE_CCARGS:tune-rv32eilp32e = " -march=rv32e -mabi=ilp32e" +TUNE_PKGARCH:tune-rv32eilp32e = "rv32eilp32e" +TUNE_ARCH:tune-rv32eilp32e = "riscv32" + + # rv32i/ilp32 # CFLAGS: -march=rv32i -mabi=ilp32 DEFAULTTUNE:virtclass-multilib-librv32iilp32 = "rv32iilp32" @@ -77,12 +97,25 @@ DEFAULTTUNE:virtclass-multilib-librv32iilp32 = "rv32iilp32" AVAILTUNES += "rv32iilp32" PACKAGE_EXTRA_ARCHS:tune-rv32iilp32 = "${TUNE_PKGARCH:tune-rv32iilp32}" BASE_LIB:tune-rv32iilp32 = "lib/rv32i/ilp32" -TUNE_FEATURES:tune-rv32iilp32 = "riscv" +TUNE_FEATURES:tune-rv32iilp32 = "riscv riscv32" TUNE_CCARGS:tune-rv32iilp32 = " -march=rv32i -mabi=ilp32" TUNE_PKGARCH:tune-rv32iilp32 = "rv32iilp32" TUNE_ARCH:tune-rv32iilp32 = "riscv32" +# rv32ib/ilp32 +# CFLAGS: -march=rv32ib -mabi=ilp32 +DEFAULTTUNE:virtclass-multilib-librv32ibilp32 = "rv32ibilp32" + +AVAILTUNES += "rv32ibilp32" +PACKAGE_EXTRA_ARCHS:tune-rv32ibilp32 = "${TUNE_PKGARCH:tune-rv32ibilp32}" +BASE_LIB:tune-rv32ibilp32 = "lib/rv32ib/ilp32" +TUNE_FEATURES:tune-rv32ibilp32 = "riscv riscv32" +TUNE_CCARGS:tune-rv32ibilp32 = " -march=rv32ib -mabi=ilp32" +TUNE_PKGARCH:tune-rv32ibilp32 = "rv32ibilp32" +TUNE_ARCH:tune-rv32ibilp32 = "riscv32" + + # rv32ic/ilp32 # CFLAGS: -march=rv32ic -mabi=ilp32 DEFAULTTUNE:virtclass-multilib-librv32icilp32 = "rv32icilp32" @@ -90,12 +123,25 @@ DEFAULTTUNE:virtclass-multilib-librv32icilp32 = "rv32icilp32" AVAILTUNES += "rv32icilp32" PACKAGE_EXTRA_ARCHS:tune-rv32icilp32 = "${TUNE_PKGARCH:tune-rv32icilp32}" BASE_LIB:tune-rv32icilp32 = "lib/rv32ic/ilp32" -TUNE_FEATURES:tune-rv32icilp32 = "riscv" +TUNE_FEATURES:tune-rv32icilp32 = "riscv riscv32" TUNE_CCARGS:tune-rv32icilp32 = " -march=rv32ic -mabi=ilp32" TUNE_PKGARCH:tune-rv32icilp32 = "rv32icilp32" TUNE_ARCH:tune-rv32icilp32 = "riscv32" +# rv32icb/ilp32 +# CFLAGS: -march=rv32icb -mabi=ilp32 +DEFAULTTUNE:virtclass-multilib-librv32icbilp32 = "rv32icbilp32" + +AVAILTUNES += "rv32icbilp32" +PACKAGE_EXTRA_ARCHS:tune-rv32icbilp32 = "${TUNE_PKGARCH:tune-rv32icbilp32}" +BASE_LIB:tune-rv32icbilp32 = "lib/rv32icb/ilp32" +TUNE_FEATURES:tune-rv32icbilp32 = "riscv riscv32" +TUNE_CCARGS:tune-rv32icbilp32 = " -march=rv32icb -mabi=ilp32" +TUNE_PKGARCH:tune-rv32icbilp32 = "rv32icbilp32" +TUNE_ARCH:tune-rv32icbilp32 = "riscv32" + + # rv32im/ilp32 # CFLAGS: -march=rv32im -mabi=ilp32 DEFAULTTUNE:virtclass-multilib-librv32imilp32 = "rv32imilp32" @@ -103,12 +149,25 @@ DEFAULTTUNE:virtclass-multilib-librv32imilp32 = "rv32imilp32" AVAILTUNES += "rv32imilp32" PACKAGE_EXTRA_ARCHS:tune-rv32imilp32 = "${TUNE_PKGARCH:tune-rv32imilp32}" BASE_LIB:tune-rv32imilp32 = "lib/rv32im/ilp32" -TUNE_FEATURES:tune-rv32imilp32 = "riscv" +TUNE_FEATURES:tune-rv32imilp32 = "riscv riscv32" TUNE_CCARGS:tune-rv32imilp32 = " -march=rv32im -mabi=ilp32" TUNE_PKGARCH:tune-rv32imilp32 = "rv32imilp32" TUNE_ARCH:tune-rv32imilp32 = "riscv32" +# rv32imb/ilp32 +# CFLAGS: -march=rv32imb -mabi=ilp32 +DEFAULTTUNE:virtclass-multilib-librv32imbilp32 = "rv32imbilp32" + +AVAILTUNES += "rv32imbilp32" +PACKAGE_EXTRA_ARCHS:tune-rv32imbilp32 = "${TUNE_PKGARCH:tune-rv32imbilp32}" +BASE_LIB:tune-rv32imbilp32 = "lib/rv32imb/ilp32" +TUNE_FEATURES:tune-rv32imbilp32 = "riscv riscv32" +TUNE_CCARGS:tune-rv32imbilp32 = " -march=rv32imb -mabi=ilp32" +TUNE_PKGARCH:tune-rv32imbilp32 = "rv32imbilp32" +TUNE_ARCH:tune-rv32imbilp32 = "riscv32" + + # rv32imc/ilp32 # CFLAGS: -march=rv32imc -mabi=ilp32 DEFAULTTUNE:virtclass-multilib-librv32imcilp32 = "rv32imcilp32" @@ -116,12 +175,25 @@ DEFAULTTUNE:virtclass-multilib-librv32imcilp32 = "rv32imcilp32" AVAILTUNES += "rv32imcilp32" PACKAGE_EXTRA_ARCHS:tune-rv32imcilp32 = "${TUNE_PKGARCH:tune-rv32imcilp32}" BASE_LIB:tune-rv32imcilp32 = "lib/rv32imc/ilp32" -TUNE_FEATURES:tune-rv32imcilp32 = "riscv" +TUNE_FEATURES:tune-rv32imcilp32 = "riscv riscv32" TUNE_CCARGS:tune-rv32imcilp32 = " -march=rv32imc -mabi=ilp32" TUNE_PKGARCH:tune-rv32imcilp32 = "rv32imcilp32" TUNE_ARCH:tune-rv32imcilp32 = "riscv32" +# rv32imcb/ilp32 +# CFLAGS: -march=rv32imcb -mabi=ilp32 +DEFAULTTUNE:virtclass-multilib-librv32imcbilp32 = "rv32imcbilp32" + +AVAILTUNES += "rv32imcbilp32" +PACKAGE_EXTRA_ARCHS:tune-rv32imcbilp32 = "${TUNE_PKGARCH:tune-rv32imcbilp32}" +BASE_LIB:tune-rv32imcbilp32 = "lib/rv32imcb/ilp32" +TUNE_FEATURES:tune-rv32imcbilp32 = "riscv riscv32" +TUNE_CCARGS:tune-rv32imcbilp32 = " -march=rv32imcb -mabi=ilp32" +TUNE_PKGARCH:tune-rv32imcbilp32 = "rv32imcbilp32" +TUNE_ARCH:tune-rv32imcbilp32 = "riscv32" + + # rv32imac/ilp32 # CFLAGS: -march=rv32imac -mabi=ilp32 DEFAULTTUNE:virtclass-multilib-librv32imacilp32 = "rv32imacilp32" @@ -129,25 +201,12 @@ DEFAULTTUNE:virtclass-multilib-librv32imacilp32 = "rv32imacilp32" AVAILTUNES += "rv32imacilp32" PACKAGE_EXTRA_ARCHS:tune-rv32imacilp32 = "${TUNE_PKGARCH:tune-rv32imacilp32}" BASE_LIB:tune-rv32imacilp32 = "lib/rv32imac/ilp32" -TUNE_FEATURES:tune-rv32imacilp32 = "riscv" +TUNE_FEATURES:tune-rv32imacilp32 = "riscv riscv32" TUNE_CCARGS:tune-rv32imacilp32 = " -march=rv32imac -mabi=ilp32" TUNE_PKGARCH:tune-rv32imacilp32 = "rv32imacilp32" TUNE_ARCH:tune-rv32imacilp32 = "riscv32" -# rv32e/ilp32e -# CFLAGS: -march=rv32e -mabi=ilp32e -DEFAULTTUNE:virtclass-multilib-librv32eilp32e = "rv32eilp32e" - -AVAILTUNES += "rv32eilp32e" -PACKAGE_EXTRA_ARCHS:tune-rv32eilp32e = "${TUNE_PKGARCH:tune-rv32eilp32e}" -BASE_LIB:tune-rv32eilp32e = "lib/rv32e/ilp32e" -TUNE_FEATURES:tune-rv32eilp32e = "riscv" -TUNE_CCARGS:tune-rv32eilp32e = " -march=rv32e -mabi=ilp32e" -TUNE_PKGARCH:tune-rv32eilp32e = "rv32eilp32e" -TUNE_ARCH:tune-rv32eilp32e = "riscv32" - - # rv32imf_zicsr/ilp32f # CFLAGS: -march=rv32imf_zicsr -mabi=ilp32f DEFAULTTUNE:virtclass-multilib-librv32imfzicsrilp32f = "rv32imf_zicsrilp32f" @@ -155,7 +214,7 @@ DEFAULTTUNE:virtclass-multilib-librv32imfzicsrilp32f = "rv32imf_zicsrilp32f" AVAILTUNES += "rv32imf_zicsrilp32f" PACKAGE_EXTRA_ARCHS:tune-rv32imf_zicsrilp32f = "${TUNE_PKGARCH:tune-rv32imf_zicsrilp32f}" BASE_LIB:tune-rv32imf_zicsrilp32f = "lib/rv32imf_zicsr/ilp32f" -TUNE_FEATURES:tune-rv32imf_zicsrilp32f = "riscv" +TUNE_FEATURES:tune-rv32imf_zicsrilp32f = "riscv riscv32" TUNE_CCARGS:tune-rv32imf_zicsrilp32f = " -march=rv32imf_zicsr -mabi=ilp32f" TUNE_PKGARCH:tune-rv32imf_zicsrilp32f = "rv32imf_zicsrilp32f" TUNE_ARCH:tune-rv32imf_zicsrilp32f = "riscv32" @@ -168,7 +227,7 @@ DEFAULTTUNE:virtclass-multilib-librv32imfczicsrilp32f = "rv32imfc_zicsrilp32f" AVAILTUNES += "rv32imfc_zicsrilp32f" PACKAGE_EXTRA_ARCHS:tune-rv32imfc_zicsrilp32f = "${TUNE_PKGARCH:tune-rv32imfc_zicsrilp32f}" BASE_LIB:tune-rv32imfc_zicsrilp32f = "lib/rv32imfc_zicsr/ilp32f" -TUNE_FEATURES:tune-rv32imfc_zicsrilp32f = "riscv" +TUNE_FEATURES:tune-rv32imfc_zicsrilp32f = "riscv riscv32" TUNE_CCARGS:tune-rv32imfc_zicsrilp32f = " -march=rv32imfc_zicsr -mabi=ilp32f" TUNE_PKGARCH:tune-rv32imfc_zicsrilp32f = "rv32imfc_zicsrilp32f" TUNE_ARCH:tune-rv32imfc_zicsrilp32f = "riscv32" @@ -181,7 +240,7 @@ DEFAULTTUNE:virtclass-multilib-librv32imafczicsrilp32f = "rv32imafc_zicsrilp32f" AVAILTUNES += "rv32imafc_zicsrilp32f" PACKAGE_EXTRA_ARCHS:tune-rv32imafc_zicsrilp32f = "${TUNE_PKGARCH:tune-rv32imafc_zicsrilp32f}" BASE_LIB:tune-rv32imafc_zicsrilp32f = "lib/rv32imafc_zicsr/ilp32f" -TUNE_FEATURES:tune-rv32imafc_zicsrilp32f = "riscv" +TUNE_FEATURES:tune-rv32imafc_zicsrilp32f = "riscv riscv32" TUNE_CCARGS:tune-rv32imafc_zicsrilp32f = " -march=rv32imafc_zicsr -mabi=ilp32f" TUNE_PKGARCH:tune-rv32imafc_zicsrilp32f = "rv32imafc_zicsrilp32f" TUNE_ARCH:tune-rv32imafc_zicsrilp32f = "riscv32" @@ -194,7 +253,7 @@ DEFAULTTUNE:virtclass-multilib-librv32imfdczicsrilp32d = "rv32imfdc_zicsrilp32d" AVAILTUNES += "rv32imfdc_zicsrilp32d" PACKAGE_EXTRA_ARCHS:tune-rv32imfdc_zicsrilp32d = "${TUNE_PKGARCH:tune-rv32imfdc_zicsrilp32d}" BASE_LIB:tune-rv32imfdc_zicsrilp32d = "lib/rv32imfdc_zicsr/ilp32d" -TUNE_FEATURES:tune-rv32imfdc_zicsrilp32d = "riscv" +TUNE_FEATURES:tune-rv32imfdc_zicsrilp32d = "riscv riscv32" TUNE_CCARGS:tune-rv32imfdc_zicsrilp32d = " -march=rv32imfdc_zicsr -mabi=ilp32d" TUNE_PKGARCH:tune-rv32imfdc_zicsrilp32d = "rv32imfdc_zicsrilp32d" TUNE_ARCH:tune-rv32imfdc_zicsrilp32d = "riscv32" @@ -207,7 +266,7 @@ DEFAULTTUNE:virtclass-multilib-librv64ilp64 = "rv64ilp64" AVAILTUNES += "rv64ilp64" PACKAGE_EXTRA_ARCHS:tune-rv64ilp64 = "${TUNE_PKGARCH:tune-rv64ilp64}" BASE_LIB:tune-rv64ilp64 = "lib/rv64i/lp64" -TUNE_FEATURES:tune-rv64ilp64 = "riscv" +TUNE_FEATURES:tune-rv64ilp64 = "riscv riscv64" TUNE_CCARGS:tune-rv64ilp64 = " -march=rv64i -mabi=lp64" TUNE_PKGARCH:tune-rv64ilp64 = "rv64ilp64" TUNE_ARCH:tune-rv64ilp64 = "riscv64" @@ -220,7 +279,7 @@ DEFAULTTUNE:virtclass-multilib-librv64iclp64 = "rv64iclp64" AVAILTUNES += "rv64iclp64" PACKAGE_EXTRA_ARCHS:tune-rv64iclp64 = "${TUNE_PKGARCH:tune-rv64iclp64}" BASE_LIB:tune-rv64iclp64 = "lib/rv64ic/lp64" -TUNE_FEATURES:tune-rv64iclp64 = "riscv" +TUNE_FEATURES:tune-rv64iclp64 = "riscv riscv64" TUNE_CCARGS:tune-rv64iclp64 = " -march=rv64ic -mabi=lp64" TUNE_PKGARCH:tune-rv64iclp64 = "rv64iclp64" TUNE_ARCH:tune-rv64iclp64 = "riscv64" @@ -233,7 +292,7 @@ DEFAULTTUNE:virtclass-multilib-librv64imlp64 = "rv64imlp64" AVAILTUNES += "rv64imlp64" PACKAGE_EXTRA_ARCHS:tune-rv64imlp64 = "${TUNE_PKGARCH:tune-rv64imlp64}" BASE_LIB:tune-rv64imlp64 = "lib/rv64im/lp64" -TUNE_FEATURES:tune-rv64imlp64 = "riscv" +TUNE_FEATURES:tune-rv64imlp64 = "riscv riscv64" TUNE_CCARGS:tune-rv64imlp64 = " -march=rv64im -mabi=lp64" TUNE_PKGARCH:tune-rv64imlp64 = "rv64imlp64" TUNE_ARCH:tune-rv64imlp64 = "riscv64" @@ -246,7 +305,7 @@ DEFAULTTUNE:virtclass-multilib-librv64imclp64 = "rv64imclp64" AVAILTUNES += "rv64imclp64" PACKAGE_EXTRA_ARCHS:tune-rv64imclp64 = "${TUNE_PKGARCH:tune-rv64imclp64}" BASE_LIB:tune-rv64imclp64 = "lib/rv64imc/lp64" -TUNE_FEATURES:tune-rv64imclp64 = "riscv" +TUNE_FEATURES:tune-rv64imclp64 = "riscv riscv64" TUNE_CCARGS:tune-rv64imclp64 = " -march=rv64imc -mabi=lp64" TUNE_PKGARCH:tune-rv64imclp64 = "rv64imclp64" TUNE_ARCH:tune-rv64imclp64 = "riscv64" @@ -259,7 +318,7 @@ DEFAULTTUNE:virtclass-multilib-librv64imaclp64 = "rv64imaclp64" AVAILTUNES += "rv64imaclp64" PACKAGE_EXTRA_ARCHS:tune-rv64imaclp64 = "${TUNE_PKGARCH:tune-rv64imaclp64}" BASE_LIB:tune-rv64imaclp64 = "lib/rv64imac/lp64" -TUNE_FEATURES:tune-rv64imaclp64 = "riscv" +TUNE_FEATURES:tune-rv64imaclp64 = "riscv riscv64" TUNE_CCARGS:tune-rv64imaclp64 = " -march=rv64imac -mabi=lp64" TUNE_PKGARCH:tune-rv64imaclp64 = "rv64imaclp64" TUNE_ARCH:tune-rv64imaclp64 = "riscv64" @@ -272,7 +331,7 @@ DEFAULTTUNE:virtclass-multilib-librv64imfzicsrlp64f = "rv64imf_zicsrlp64f" AVAILTUNES += "rv64imf_zicsrlp64f" PACKAGE_EXTRA_ARCHS:tune-rv64imf_zicsrlp64f = "${TUNE_PKGARCH:tune-rv64imf_zicsrlp64f}" BASE_LIB:tune-rv64imf_zicsrlp64f = "lib/rv64imf_zicsr/lp64f" -TUNE_FEATURES:tune-rv64imf_zicsrlp64f = "riscv" +TUNE_FEATURES:tune-rv64imf_zicsrlp64f = "riscv riscv64" TUNE_CCARGS:tune-rv64imf_zicsrlp64f = " -march=rv64imf_zicsr -mabi=lp64f" TUNE_PKGARCH:tune-rv64imf_zicsrlp64f = "rv64imf_zicsrlp64f" TUNE_ARCH:tune-rv64imf_zicsrlp64f = "riscv64" @@ -285,7 +344,7 @@ DEFAULTTUNE:virtclass-multilib-librv64imfczicsrlp64f = "rv64imfc_zicsrlp64f" AVAILTUNES += "rv64imfc_zicsrlp64f" PACKAGE_EXTRA_ARCHS:tune-rv64imfc_zicsrlp64f = "${TUNE_PKGARCH:tune-rv64imfc_zicsrlp64f}" BASE_LIB:tune-rv64imfc_zicsrlp64f = "lib/rv64imfc_zicsr/lp64f" -TUNE_FEATURES:tune-rv64imfc_zicsrlp64f = "riscv" +TUNE_FEATURES:tune-rv64imfc_zicsrlp64f = "riscv riscv64" TUNE_CCARGS:tune-rv64imfc_zicsrlp64f = " -march=rv64imfc_zicsr -mabi=lp64f" TUNE_PKGARCH:tune-rv64imfc_zicsrlp64f = "rv64imfc_zicsrlp64f" TUNE_ARCH:tune-rv64imfc_zicsrlp64f = "riscv64" @@ -298,7 +357,7 @@ DEFAULTTUNE:virtclass-multilib-librv64imafczicsrlp64f = "rv64imafc_zicsrlp64f" AVAILTUNES += "rv64imafc_zicsrlp64f" PACKAGE_EXTRA_ARCHS:tune-rv64imafc_zicsrlp64f = "${TUNE_PKGARCH:tune-rv64imafc_zicsrlp64f}" BASE_LIB:tune-rv64imafc_zicsrlp64f = "lib/rv64imafc_zicsr/lp64f" -TUNE_FEATURES:tune-rv64imafc_zicsrlp64f = "riscv" +TUNE_FEATURES:tune-rv64imafc_zicsrlp64f = "riscv riscv64" TUNE_CCARGS:tune-rv64imafc_zicsrlp64f = " -march=rv64imafc_zicsr -mabi=lp64f" TUNE_PKGARCH:tune-rv64imafc_zicsrlp64f = "rv64imafc_zicsrlp64f" TUNE_ARCH:tune-rv64imafc_zicsrlp64f = "riscv64" @@ -311,7 +370,7 @@ DEFAULTTUNE:virtclass-multilib-librv64imfdczicsrlp64d = "rv64imfdc_zicsrlp64d" AVAILTUNES += "rv64imfdc_zicsrlp64d" PACKAGE_EXTRA_ARCHS:tune-rv64imfdc_zicsrlp64d = "${TUNE_PKGARCH:tune-rv64imfdc_zicsrlp64d}" BASE_LIB:tune-rv64imfdc_zicsrlp64d = "lib/rv64imfdc_zicsr/lp64d" -TUNE_FEATURES:tune-rv64imfdc_zicsrlp64d = "riscv" +TUNE_FEATURES:tune-rv64imfdc_zicsrlp64d = "riscv riscv64" TUNE_CCARGS:tune-rv64imfdc_zicsrlp64d = " -march=rv64imfdc_zicsr -mabi=lp64d" TUNE_PKGARCH:tune-rv64imfdc_zicsrlp64d = "rv64imfdc_zicsrlp64d" TUNE_ARCH:tune-rv64imfdc_zicsrlp64d = "riscv64" diff --git a/meta-vitis-tc/recipes-devtools/gcc/gcc-xilinx-standalone-multilib.inc b/meta-vitis-tc/recipes-devtools/gcc/gcc-xilinx-standalone-multilib.inc index c69e0745..d7e64438 100644 --- a/meta-vitis-tc/recipes-devtools/gcc/gcc-xilinx-standalone-multilib.inc +++ b/meta-vitis-tc/recipes-devtools/gcc/gcc-xilinx-standalone-multilib.inc @@ -9,8 +9,10 @@ EXTRA_OECONF:append:xilinx-standalone:arm:baremetal-multilib-tc = " \ # RISC V configuration RISCV_MULTILIB = "\ -rv32i-ilp32--;rv32ic-ilp32--;rv32im-ilp32--;rv32imc-ilp32--;rv32imac-ilp32--;rv32e-ilp32e--;\ -rv32imf-ilp32f--;rv32imfc-ilp32f--;rv32imafc-ilp32f--;rv32imfdc-ilp32d--;\ +rv32e-ilp32e--;rv32i-ilp32--;rv32ib-ilp32--;rv32ic-ilp32--;\ +rv32icb-ilp32--;rv32im-ilp32--;rv32imb-ilp32--;rv32imc-ilp32--;\ +rv32imcb-ilp32--;rv32imac-ilp32--;rv32imf-ilp32f--;rv32imfc-ilp32f--;\ +rv32imafc-ilp32f--;rv32imfdc-ilp32d--;\ rv64i-lp64--;rv64ic-lp64--;rv64im-lp64--;rv64imc-lp64--;rv64imac-lp64--;\ rv64imf-lp64f--;rv64imfc-lp64f--;rv64imafc-lp64f--;rv64imfdc-lp64d--\ " diff --git a/meta-vitis-tc/recipes-devtools/gcc/riscv-convert.sh b/meta-vitis-tc/recipes-devtools/gcc/riscv-convert.sh index aa01fee0..06c12605 100755 --- a/meta-vitis-tc/recipes-devtools/gcc/riscv-convert.sh +++ b/meta-vitis-tc/recipes-devtools/gcc/riscv-convert.sh @@ -19,7 +19,7 @@ sed -e 's,;, ,' | echo 'AVAILTUNES += "riscv"' >> $tempfile echo 'PACKAGE_EXTRA_ARCHS:tune-riscv = "${TUNE_PKGARCH:tune-riscv}"' >> $tempfile echo 'BASE_LIB:tune-riscv = "lib"' >> $tempfile - echo 'TUNE_FEATURES:tune-riscv = "riscv"' >> $tempfile + echo 'TUNE_FEATURES:tune-riscv = "riscv riscv32"' >> $tempfile echo 'TUNE_CCARGS:tune-riscv = ""' >> $tempfile echo 'TUNE_PKGARCH:tune-riscv = "riscv32"' >> $tempfile echo 'TUNE_ARCH:tune-riscv = "riscv32"' >> $tempfile @@ -45,7 +45,11 @@ sed -e 's,;, ,' | echo "AVAILTUNES += \"$tune\"" >> $tempfile echo "PACKAGE_EXTRA_ARCHS:tune-$tune = \"\${TUNE_PKGARCH:tune-$tune}\"" >> $tempfile echo "BASE_LIB:tune-$tune = \"lib/$mlib\"" >> $tempfile - echo "TUNE_FEATURES:tune-$tune = \"riscv\"" >> $tempfile + if [ "${tune/rv32/}" != "${tune}" ]; then + echo "TUNE_FEATURES:tune-$tune = \"riscv riscv32\"" >> $tempfile + elif [ "${tune/rv64/}" != "${tune}" ]; then + echo "TUNE_FEATURES:tune-$tune = \"riscv riscv64\"" >> $tempfile + fi echo "TUNE_CCARGS:tune-$tune = \"$cflags\"" >> $tempfile echo "TUNE_PKGARCH:tune-$tune = \"$tune\"" >> $tempfile echo "TUNE_ARCH:tune-$tune = \"$arch\"" >> $tempfile -- cgit v1.2.3-54-g00ecf