require conf/machine/include/machine-xilinx-qemu.inc require conf/multilib.conf require conf/machine/include/riscv/tune-riscv.inc require conf/machine/include/baremetal-tc.conf # 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 GCCPIE:riscv-tc = "" GLIBCPIE:riscv-tc = "" SECURITY_CFLAGS:remove:riscv-tc = "${SECURITY_PIE_CFLAGS}" SECURITY_CFLAGS:pn-libgcc:riscv-tc = "" # Make 'riscv' a valid tune feature TUNEVALID[riscv] = "Define the entire architecture family" TUNE_CCARGS = "${TUNE_CCARGS:tune-${DEFAULTTUNE}}" # Define all of the multilibs supported by this configuration MULTILIB_GLOBAL_VARIANTS = "${@extend_variants(d,'MULTILIBS','multilib')}" ############# DEFAULT SET ################## MULTILIBS = "" # Base configuration # CFLAGS: DEFAULTTUNE = "riscv" AVAILTUNES += "riscv" PACKAGE_EXTRA_ARCHS:tune-riscv = "${TUNE_PKGARCH:tune-riscv}" BASE_LIB:tune-riscv = "lib" TUNE_FEATURES:tune-riscv = "riscv" TUNE_CCARGS:tune-riscv = "" TUNE_PKGARCH:tune-riscv = "riscv32" TUNE_ARCH:tune-riscv = "riscv32" ############ GENERATED ############# # Multilibs defined in recipes-devtools/gcc/gcc-xilinx-standalone-multilib.inc # Everything below is generated by riscv-convert.sh MULTILIBS = "" MULTILIBS += "multilib:librv32iilp32" MULTILIBS += "multilib:librv32icilp32" MULTILIBS += "multilib:librv32imilp32" MULTILIBS += "multilib:librv32imcilp32" MULTILIBS += "multilib:librv32imacilp32" MULTILIBS += "multilib:librv32eilp32e" MULTILIBS += "multilib:librv32imfzicsrilp32f" MULTILIBS += "multilib:librv32imfczicsrilp32f" MULTILIBS += "multilib:librv32imafczicsrilp32f" MULTILIBS += "multilib:librv32imfdczicsrilp32d" MULTILIBS += "multilib:librv64ilp64" MULTILIBS += "multilib:librv64iclp64" MULTILIBS += "multilib:librv64imlp64" MULTILIBS += "multilib:librv64imclp64" MULTILIBS += "multilib:librv64imaclp64" MULTILIBS += "multilib:librv64imfzicsrlp64f" MULTILIBS += "multilib:librv64imfczicsrlp64f" MULTILIBS += "multilib:librv64imafczicsrlp64f" MULTILIBS += "multilib:librv64imfdczicsrlp64d" # Base configuration # CFLAGS: DEFAULTTUNE = "riscv" AVAILTUNES += "riscv" PACKAGE_EXTRA_ARCHS:tune-riscv = "${TUNE_PKGARCH:tune-riscv}" BASE_LIB:tune-riscv = "lib" TUNE_FEATURES:tune-riscv = "riscv" TUNE_CCARGS:tune-riscv = "" TUNE_PKGARCH:tune-riscv = "riscv32" TUNE_ARCH:tune-riscv = "riscv32" # rv32i/ilp32 # CFLAGS: -march=rv32i -mabi=ilp32 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_CCARGS:tune-rv32iilp32 = " -march=rv32i -mabi=ilp32" TUNE_PKGARCH:tune-rv32iilp32 = "rv32iilp32" TUNE_ARCH:tune-rv32iilp32 = "riscv32" # rv32ic/ilp32 # CFLAGS: -march=rv32ic -mabi=ilp32 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_CCARGS:tune-rv32icilp32 = " -march=rv32ic -mabi=ilp32" TUNE_PKGARCH:tune-rv32icilp32 = "rv32icilp32" TUNE_ARCH:tune-rv32icilp32 = "riscv32" # rv32im/ilp32 # CFLAGS: -march=rv32im -mabi=ilp32 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_CCARGS:tune-rv32imilp32 = " -march=rv32im -mabi=ilp32" TUNE_PKGARCH:tune-rv32imilp32 = "rv32imilp32" TUNE_ARCH:tune-rv32imilp32 = "riscv32" # rv32imc/ilp32 # CFLAGS: -march=rv32imc -mabi=ilp32 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_CCARGS:tune-rv32imcilp32 = " -march=rv32imc -mabi=ilp32" TUNE_PKGARCH:tune-rv32imcilp32 = "rv32imcilp32" TUNE_ARCH:tune-rv32imcilp32 = "riscv32" # rv32imac/ilp32 # CFLAGS: -march=rv32imac -mabi=ilp32 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_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" 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_CCARGS:tune-rv32imf_zicsrilp32f = " -march=rv32imf_zicsr -mabi=ilp32f" TUNE_PKGARCH:tune-rv32imf_zicsrilp32f = "rv32imf_zicsrilp32f" TUNE_ARCH:tune-rv32imf_zicsrilp32f = "riscv32" # rv32imfc_zicsr/ilp32f # CFLAGS: -march=rv32imfc_zicsr -mabi=ilp32f 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_CCARGS:tune-rv32imfc_zicsrilp32f = " -march=rv32imfc_zicsr -mabi=ilp32f" TUNE_PKGARCH:tune-rv32imfc_zicsrilp32f = "rv32imfc_zicsrilp32f" TUNE_ARCH:tune-rv32imfc_zicsrilp32f = "riscv32" # rv32imafc_zicsr/ilp32f # CFLAGS: -march=rv32imafc_zicsr -mabi=ilp32f 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_CCARGS:tune-rv32imafc_zicsrilp32f = " -march=rv32imafc_zicsr -mabi=ilp32f" TUNE_PKGARCH:tune-rv32imafc_zicsrilp32f = "rv32imafc_zicsrilp32f" TUNE_ARCH:tune-rv32imafc_zicsrilp32f = "riscv32" # rv32imfdc_zicsr/ilp32d # CFLAGS: -march=rv32imfdc_zicsr -mabi=ilp32d 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_CCARGS:tune-rv32imfdc_zicsrilp32d = " -march=rv32imfdc_zicsr -mabi=ilp32d" TUNE_PKGARCH:tune-rv32imfdc_zicsrilp32d = "rv32imfdc_zicsrilp32d" TUNE_ARCH:tune-rv32imfdc_zicsrilp32d = "riscv32" # rv64i/lp64 # CFLAGS: -march=rv64i -mabi=lp64 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_CCARGS:tune-rv64ilp64 = " -march=rv64i -mabi=lp64" TUNE_PKGARCH:tune-rv64ilp64 = "rv64ilp64" TUNE_ARCH:tune-rv64ilp64 = "riscv64" # rv64ic/lp64 # CFLAGS: -march=rv64ic -mabi=lp64 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_CCARGS:tune-rv64iclp64 = " -march=rv64ic -mabi=lp64" TUNE_PKGARCH:tune-rv64iclp64 = "rv64iclp64" TUNE_ARCH:tune-rv64iclp64 = "riscv64" # rv64im/lp64 # CFLAGS: -march=rv64im -mabi=lp64 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_CCARGS:tune-rv64imlp64 = " -march=rv64im -mabi=lp64" TUNE_PKGARCH:tune-rv64imlp64 = "rv64imlp64" TUNE_ARCH:tune-rv64imlp64 = "riscv64" # rv64imc/lp64 # CFLAGS: -march=rv64imc -mabi=lp64 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_CCARGS:tune-rv64imclp64 = " -march=rv64imc -mabi=lp64" TUNE_PKGARCH:tune-rv64imclp64 = "rv64imclp64" TUNE_ARCH:tune-rv64imclp64 = "riscv64" # rv64imac/lp64 # CFLAGS: -march=rv64imac -mabi=lp64 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_CCARGS:tune-rv64imaclp64 = " -march=rv64imac -mabi=lp64" TUNE_PKGARCH:tune-rv64imaclp64 = "rv64imaclp64" TUNE_ARCH:tune-rv64imaclp64 = "riscv64" # rv64imf_zicsr/lp64f # CFLAGS: -march=rv64imf_zicsr -mabi=lp64f 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_CCARGS:tune-rv64imf_zicsrlp64f = " -march=rv64imf_zicsr -mabi=lp64f" TUNE_PKGARCH:tune-rv64imf_zicsrlp64f = "rv64imf_zicsrlp64f" TUNE_ARCH:tune-rv64imf_zicsrlp64f = "riscv64" # rv64imfc_zicsr/lp64f # CFLAGS: -march=rv64imfc_zicsr -mabi=lp64f 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_CCARGS:tune-rv64imfc_zicsrlp64f = " -march=rv64imfc_zicsr -mabi=lp64f" TUNE_PKGARCH:tune-rv64imfc_zicsrlp64f = "rv64imfc_zicsrlp64f" TUNE_ARCH:tune-rv64imfc_zicsrlp64f = "riscv64" # rv64imafc_zicsr/lp64f # CFLAGS: -march=rv64imafc_zicsr -mabi=lp64f 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_CCARGS:tune-rv64imafc_zicsrlp64f = " -march=rv64imafc_zicsr -mabi=lp64f" TUNE_PKGARCH:tune-rv64imafc_zicsrlp64f = "rv64imafc_zicsrlp64f" TUNE_ARCH:tune-rv64imafc_zicsrlp64f = "riscv64" # rv64imfdc_zicsr/lp64d # CFLAGS: -march=rv64imfdc_zicsr -mabi=lp64d 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_CCARGS:tune-rv64imfdc_zicsrlp64d = " -march=rv64imfdc_zicsr -mabi=lp64d" TUNE_PKGARCH:tune-rv64imfdc_zicsrlp64d = "rv64imfdc_zicsrlp64d" TUNE_ARCH:tune-rv64imfdc_zicsrlp64d = "riscv64"