summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMark Hatle <mark.hatle@amd.com>2025-01-13 12:48:54 -0700
committerMark Hatle <mark.hatle@amd.com>2025-03-30 14:16:15 -0600
commitf06f17199f3c9cd6b3ed1cb7e013e4125a33e4a4 (patch)
treeca24b804ab7827a0dc1b63f55e4ceb477a7eedd5
parent17b80be39ed90b3196d43c53095e24a77e78b5ef (diff)
downloadmeta-xilinx-f06f17199f3c9cd6b3ed1cb7e013e4125a33e4a4.tar.gz
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 <mark.hatle@amd.com>
-rw-r--r--meta-vitis-tc/conf/machine/riscv-tc.conf125
-rw-r--r--meta-vitis-tc/recipes-devtools/gcc/gcc-xilinx-standalone-multilib.inc6
-rwxr-xr-xmeta-vitis-tc/recipes-devtools/gcc/riscv-convert.sh8
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
3require conf/machine/include/riscv/tune-riscv.inc 3require conf/machine/include/riscv/tune-riscv.inc
4require conf/machine/include/baremetal-tc.conf 4require conf/machine/include/baremetal-tc.conf
5 5
6# In order to support additional extensions, enable binutils 2.43.1
7BINUVERSION = "2.43%"
8
6# Set defaults 9# Set defaults
7# We don't know why pie is not supported, but when enabled results in: 10# We don't know why pie is not supported, but when enabled results in:
8# .../riscv32-xilinx-elf/12.2.0/ld: -pie not supported 11# .../riscv32-xilinx-elf/12.2.0/ld: -pie not supported
@@ -37,12 +40,16 @@ TUNE_ARCH:tune-riscv = "riscv32"
37# Multilibs defined in recipes-devtools/gcc/gcc-xilinx-standalone-multilib.inc 40# Multilibs defined in recipes-devtools/gcc/gcc-xilinx-standalone-multilib.inc
38# Everything below is generated by riscv-convert.sh 41# Everything below is generated by riscv-convert.sh
39MULTILIBS = "" 42MULTILIBS = ""
43MULTILIBS += "multilib:librv32eilp32e"
40MULTILIBS += "multilib:librv32iilp32" 44MULTILIBS += "multilib:librv32iilp32"
45MULTILIBS += "multilib:librv32ibilp32"
41MULTILIBS += "multilib:librv32icilp32" 46MULTILIBS += "multilib:librv32icilp32"
47MULTILIBS += "multilib:librv32icbilp32"
42MULTILIBS += "multilib:librv32imilp32" 48MULTILIBS += "multilib:librv32imilp32"
49MULTILIBS += "multilib:librv32imbilp32"
43MULTILIBS += "multilib:librv32imcilp32" 50MULTILIBS += "multilib:librv32imcilp32"
51MULTILIBS += "multilib:librv32imcbilp32"
44MULTILIBS += "multilib:librv32imacilp32" 52MULTILIBS += "multilib:librv32imacilp32"
45MULTILIBS += "multilib:librv32eilp32e"
46MULTILIBS += "multilib:librv32imfzicsrilp32f" 53MULTILIBS += "multilib:librv32imfzicsrilp32f"
47MULTILIBS += "multilib:librv32imfczicsrilp32f" 54MULTILIBS += "multilib:librv32imfczicsrilp32f"
48MULTILIBS += "multilib:librv32imafczicsrilp32f" 55MULTILIBS += "multilib:librv32imafczicsrilp32f"
@@ -64,12 +71,25 @@ DEFAULTTUNE = "riscv"
64AVAILTUNES += "riscv" 71AVAILTUNES += "riscv"
65PACKAGE_EXTRA_ARCHS:tune-riscv = "${TUNE_PKGARCH:tune-riscv}" 72PACKAGE_EXTRA_ARCHS:tune-riscv = "${TUNE_PKGARCH:tune-riscv}"
66BASE_LIB:tune-riscv = "lib" 73BASE_LIB:tune-riscv = "lib"
67TUNE_FEATURES:tune-riscv = "riscv" 74TUNE_FEATURES:tune-riscv = "riscv riscv32"
68TUNE_CCARGS:tune-riscv = "" 75TUNE_CCARGS:tune-riscv = ""
69TUNE_PKGARCH:tune-riscv = "riscv32" 76TUNE_PKGARCH:tune-riscv = "riscv32"
70TUNE_ARCH:tune-riscv = "riscv32" 77TUNE_ARCH:tune-riscv = "riscv32"
71 78
72 79
80# rv32e/ilp32e
81# CFLAGS: -march=rv32e -mabi=ilp32e
82DEFAULTTUNE:virtclass-multilib-librv32eilp32e = "rv32eilp32e"
83
84AVAILTUNES += "rv32eilp32e"
85PACKAGE_EXTRA_ARCHS:tune-rv32eilp32e = "${TUNE_PKGARCH:tune-rv32eilp32e}"
86BASE_LIB:tune-rv32eilp32e = "lib/rv32e/ilp32e"
87TUNE_FEATURES:tune-rv32eilp32e = "riscv riscv32"
88TUNE_CCARGS:tune-rv32eilp32e = " -march=rv32e -mabi=ilp32e"
89TUNE_PKGARCH:tune-rv32eilp32e = "rv32eilp32e"
90TUNE_ARCH:tune-rv32eilp32e = "riscv32"
91
92
73# rv32i/ilp32 93# rv32i/ilp32
74# CFLAGS: -march=rv32i -mabi=ilp32 94# CFLAGS: -march=rv32i -mabi=ilp32
75DEFAULTTUNE:virtclass-multilib-librv32iilp32 = "rv32iilp32" 95DEFAULTTUNE:virtclass-multilib-librv32iilp32 = "rv32iilp32"
@@ -77,12 +97,25 @@ DEFAULTTUNE:virtclass-multilib-librv32iilp32 = "rv32iilp32"
77AVAILTUNES += "rv32iilp32" 97AVAILTUNES += "rv32iilp32"
78PACKAGE_EXTRA_ARCHS:tune-rv32iilp32 = "${TUNE_PKGARCH:tune-rv32iilp32}" 98PACKAGE_EXTRA_ARCHS:tune-rv32iilp32 = "${TUNE_PKGARCH:tune-rv32iilp32}"
79BASE_LIB:tune-rv32iilp32 = "lib/rv32i/ilp32" 99BASE_LIB:tune-rv32iilp32 = "lib/rv32i/ilp32"
80TUNE_FEATURES:tune-rv32iilp32 = "riscv" 100TUNE_FEATURES:tune-rv32iilp32 = "riscv riscv32"
81TUNE_CCARGS:tune-rv32iilp32 = " -march=rv32i -mabi=ilp32" 101TUNE_CCARGS:tune-rv32iilp32 = " -march=rv32i -mabi=ilp32"
82TUNE_PKGARCH:tune-rv32iilp32 = "rv32iilp32" 102TUNE_PKGARCH:tune-rv32iilp32 = "rv32iilp32"
83TUNE_ARCH:tune-rv32iilp32 = "riscv32" 103TUNE_ARCH:tune-rv32iilp32 = "riscv32"
84 104
85 105
106# rv32ib/ilp32
107# CFLAGS: -march=rv32ib -mabi=ilp32
108DEFAULTTUNE:virtclass-multilib-librv32ibilp32 = "rv32ibilp32"
109
110AVAILTUNES += "rv32ibilp32"
111PACKAGE_EXTRA_ARCHS:tune-rv32ibilp32 = "${TUNE_PKGARCH:tune-rv32ibilp32}"
112BASE_LIB:tune-rv32ibilp32 = "lib/rv32ib/ilp32"
113TUNE_FEATURES:tune-rv32ibilp32 = "riscv riscv32"
114TUNE_CCARGS:tune-rv32ibilp32 = " -march=rv32ib -mabi=ilp32"
115TUNE_PKGARCH:tune-rv32ibilp32 = "rv32ibilp32"
116TUNE_ARCH:tune-rv32ibilp32 = "riscv32"
117
118
86# rv32ic/ilp32 119# rv32ic/ilp32
87# CFLAGS: -march=rv32ic -mabi=ilp32 120# CFLAGS: -march=rv32ic -mabi=ilp32
88DEFAULTTUNE:virtclass-multilib-librv32icilp32 = "rv32icilp32" 121DEFAULTTUNE:virtclass-multilib-librv32icilp32 = "rv32icilp32"
@@ -90,12 +123,25 @@ DEFAULTTUNE:virtclass-multilib-librv32icilp32 = "rv32icilp32"
90AVAILTUNES += "rv32icilp32" 123AVAILTUNES += "rv32icilp32"
91PACKAGE_EXTRA_ARCHS:tune-rv32icilp32 = "${TUNE_PKGARCH:tune-rv32icilp32}" 124PACKAGE_EXTRA_ARCHS:tune-rv32icilp32 = "${TUNE_PKGARCH:tune-rv32icilp32}"
92BASE_LIB:tune-rv32icilp32 = "lib/rv32ic/ilp32" 125BASE_LIB:tune-rv32icilp32 = "lib/rv32ic/ilp32"
93TUNE_FEATURES:tune-rv32icilp32 = "riscv" 126TUNE_FEATURES:tune-rv32icilp32 = "riscv riscv32"
94TUNE_CCARGS:tune-rv32icilp32 = " -march=rv32ic -mabi=ilp32" 127TUNE_CCARGS:tune-rv32icilp32 = " -march=rv32ic -mabi=ilp32"
95TUNE_PKGARCH:tune-rv32icilp32 = "rv32icilp32" 128TUNE_PKGARCH:tune-rv32icilp32 = "rv32icilp32"
96TUNE_ARCH:tune-rv32icilp32 = "riscv32" 129TUNE_ARCH:tune-rv32icilp32 = "riscv32"
97 130
98 131
132# rv32icb/ilp32
133# CFLAGS: -march=rv32icb -mabi=ilp32
134DEFAULTTUNE:virtclass-multilib-librv32icbilp32 = "rv32icbilp32"
135
136AVAILTUNES += "rv32icbilp32"
137PACKAGE_EXTRA_ARCHS:tune-rv32icbilp32 = "${TUNE_PKGARCH:tune-rv32icbilp32}"
138BASE_LIB:tune-rv32icbilp32 = "lib/rv32icb/ilp32"
139TUNE_FEATURES:tune-rv32icbilp32 = "riscv riscv32"
140TUNE_CCARGS:tune-rv32icbilp32 = " -march=rv32icb -mabi=ilp32"
141TUNE_PKGARCH:tune-rv32icbilp32 = "rv32icbilp32"
142TUNE_ARCH:tune-rv32icbilp32 = "riscv32"
143
144
99# rv32im/ilp32 145# rv32im/ilp32
100# CFLAGS: -march=rv32im -mabi=ilp32 146# CFLAGS: -march=rv32im -mabi=ilp32
101DEFAULTTUNE:virtclass-multilib-librv32imilp32 = "rv32imilp32" 147DEFAULTTUNE:virtclass-multilib-librv32imilp32 = "rv32imilp32"
@@ -103,12 +149,25 @@ DEFAULTTUNE:virtclass-multilib-librv32imilp32 = "rv32imilp32"
103AVAILTUNES += "rv32imilp32" 149AVAILTUNES += "rv32imilp32"
104PACKAGE_EXTRA_ARCHS:tune-rv32imilp32 = "${TUNE_PKGARCH:tune-rv32imilp32}" 150PACKAGE_EXTRA_ARCHS:tune-rv32imilp32 = "${TUNE_PKGARCH:tune-rv32imilp32}"
105BASE_LIB:tune-rv32imilp32 = "lib/rv32im/ilp32" 151BASE_LIB:tune-rv32imilp32 = "lib/rv32im/ilp32"
106TUNE_FEATURES:tune-rv32imilp32 = "riscv" 152TUNE_FEATURES:tune-rv32imilp32 = "riscv riscv32"
107TUNE_CCARGS:tune-rv32imilp32 = " -march=rv32im -mabi=ilp32" 153TUNE_CCARGS:tune-rv32imilp32 = " -march=rv32im -mabi=ilp32"
108TUNE_PKGARCH:tune-rv32imilp32 = "rv32imilp32" 154TUNE_PKGARCH:tune-rv32imilp32 = "rv32imilp32"
109TUNE_ARCH:tune-rv32imilp32 = "riscv32" 155TUNE_ARCH:tune-rv32imilp32 = "riscv32"
110 156
111 157
158# rv32imb/ilp32
159# CFLAGS: -march=rv32imb -mabi=ilp32
160DEFAULTTUNE:virtclass-multilib-librv32imbilp32 = "rv32imbilp32"
161
162AVAILTUNES += "rv32imbilp32"
163PACKAGE_EXTRA_ARCHS:tune-rv32imbilp32 = "${TUNE_PKGARCH:tune-rv32imbilp32}"
164BASE_LIB:tune-rv32imbilp32 = "lib/rv32imb/ilp32"
165TUNE_FEATURES:tune-rv32imbilp32 = "riscv riscv32"
166TUNE_CCARGS:tune-rv32imbilp32 = " -march=rv32imb -mabi=ilp32"
167TUNE_PKGARCH:tune-rv32imbilp32 = "rv32imbilp32"
168TUNE_ARCH:tune-rv32imbilp32 = "riscv32"
169
170
112# rv32imc/ilp32 171# rv32imc/ilp32
113# CFLAGS: -march=rv32imc -mabi=ilp32 172# CFLAGS: -march=rv32imc -mabi=ilp32
114DEFAULTTUNE:virtclass-multilib-librv32imcilp32 = "rv32imcilp32" 173DEFAULTTUNE:virtclass-multilib-librv32imcilp32 = "rv32imcilp32"
@@ -116,12 +175,25 @@ DEFAULTTUNE:virtclass-multilib-librv32imcilp32 = "rv32imcilp32"
116AVAILTUNES += "rv32imcilp32" 175AVAILTUNES += "rv32imcilp32"
117PACKAGE_EXTRA_ARCHS:tune-rv32imcilp32 = "${TUNE_PKGARCH:tune-rv32imcilp32}" 176PACKAGE_EXTRA_ARCHS:tune-rv32imcilp32 = "${TUNE_PKGARCH:tune-rv32imcilp32}"
118BASE_LIB:tune-rv32imcilp32 = "lib/rv32imc/ilp32" 177BASE_LIB:tune-rv32imcilp32 = "lib/rv32imc/ilp32"
119TUNE_FEATURES:tune-rv32imcilp32 = "riscv" 178TUNE_FEATURES:tune-rv32imcilp32 = "riscv riscv32"
120TUNE_CCARGS:tune-rv32imcilp32 = " -march=rv32imc -mabi=ilp32" 179TUNE_CCARGS:tune-rv32imcilp32 = " -march=rv32imc -mabi=ilp32"
121TUNE_PKGARCH:tune-rv32imcilp32 = "rv32imcilp32" 180TUNE_PKGARCH:tune-rv32imcilp32 = "rv32imcilp32"
122TUNE_ARCH:tune-rv32imcilp32 = "riscv32" 181TUNE_ARCH:tune-rv32imcilp32 = "riscv32"
123 182
124 183
184# rv32imcb/ilp32
185# CFLAGS: -march=rv32imcb -mabi=ilp32
186DEFAULTTUNE:virtclass-multilib-librv32imcbilp32 = "rv32imcbilp32"
187
188AVAILTUNES += "rv32imcbilp32"
189PACKAGE_EXTRA_ARCHS:tune-rv32imcbilp32 = "${TUNE_PKGARCH:tune-rv32imcbilp32}"
190BASE_LIB:tune-rv32imcbilp32 = "lib/rv32imcb/ilp32"
191TUNE_FEATURES:tune-rv32imcbilp32 = "riscv riscv32"
192TUNE_CCARGS:tune-rv32imcbilp32 = " -march=rv32imcb -mabi=ilp32"
193TUNE_PKGARCH:tune-rv32imcbilp32 = "rv32imcbilp32"
194TUNE_ARCH:tune-rv32imcbilp32 = "riscv32"
195
196
125# rv32imac/ilp32 197# rv32imac/ilp32
126# CFLAGS: -march=rv32imac -mabi=ilp32 198# CFLAGS: -march=rv32imac -mabi=ilp32
127DEFAULTTUNE:virtclass-multilib-librv32imacilp32 = "rv32imacilp32" 199DEFAULTTUNE:virtclass-multilib-librv32imacilp32 = "rv32imacilp32"
@@ -129,25 +201,12 @@ DEFAULTTUNE:virtclass-multilib-librv32imacilp32 = "rv32imacilp32"
129AVAILTUNES += "rv32imacilp32" 201AVAILTUNES += "rv32imacilp32"
130PACKAGE_EXTRA_ARCHS:tune-rv32imacilp32 = "${TUNE_PKGARCH:tune-rv32imacilp32}" 202PACKAGE_EXTRA_ARCHS:tune-rv32imacilp32 = "${TUNE_PKGARCH:tune-rv32imacilp32}"
131BASE_LIB:tune-rv32imacilp32 = "lib/rv32imac/ilp32" 203BASE_LIB:tune-rv32imacilp32 = "lib/rv32imac/ilp32"
132TUNE_FEATURES:tune-rv32imacilp32 = "riscv" 204TUNE_FEATURES:tune-rv32imacilp32 = "riscv riscv32"
133TUNE_CCARGS:tune-rv32imacilp32 = " -march=rv32imac -mabi=ilp32" 205TUNE_CCARGS:tune-rv32imacilp32 = " -march=rv32imac -mabi=ilp32"
134TUNE_PKGARCH:tune-rv32imacilp32 = "rv32imacilp32" 206TUNE_PKGARCH:tune-rv32imacilp32 = "rv32imacilp32"
135TUNE_ARCH:tune-rv32imacilp32 = "riscv32" 207TUNE_ARCH:tune-rv32imacilp32 = "riscv32"
136 208
137 209
138# rv32e/ilp32e
139# CFLAGS: -march=rv32e -mabi=ilp32e
140DEFAULTTUNE:virtclass-multilib-librv32eilp32e = "rv32eilp32e"
141
142AVAILTUNES += "rv32eilp32e"
143PACKAGE_EXTRA_ARCHS:tune-rv32eilp32e = "${TUNE_PKGARCH:tune-rv32eilp32e}"
144BASE_LIB:tune-rv32eilp32e = "lib/rv32e/ilp32e"
145TUNE_FEATURES:tune-rv32eilp32e = "riscv"
146TUNE_CCARGS:tune-rv32eilp32e = " -march=rv32e -mabi=ilp32e"
147TUNE_PKGARCH:tune-rv32eilp32e = "rv32eilp32e"
148TUNE_ARCH:tune-rv32eilp32e = "riscv32"
149
150
151# rv32imf_zicsr/ilp32f 210# rv32imf_zicsr/ilp32f
152# CFLAGS: -march=rv32imf_zicsr -mabi=ilp32f 211# CFLAGS: -march=rv32imf_zicsr -mabi=ilp32f
153DEFAULTTUNE:virtclass-multilib-librv32imfzicsrilp32f = "rv32imf_zicsrilp32f" 212DEFAULTTUNE:virtclass-multilib-librv32imfzicsrilp32f = "rv32imf_zicsrilp32f"
@@ -155,7 +214,7 @@ DEFAULTTUNE:virtclass-multilib-librv32imfzicsrilp32f = "rv32imf_zicsrilp32f"
155AVAILTUNES += "rv32imf_zicsrilp32f" 214AVAILTUNES += "rv32imf_zicsrilp32f"
156PACKAGE_EXTRA_ARCHS:tune-rv32imf_zicsrilp32f = "${TUNE_PKGARCH:tune-rv32imf_zicsrilp32f}" 215PACKAGE_EXTRA_ARCHS:tune-rv32imf_zicsrilp32f = "${TUNE_PKGARCH:tune-rv32imf_zicsrilp32f}"
157BASE_LIB:tune-rv32imf_zicsrilp32f = "lib/rv32imf_zicsr/ilp32f" 216BASE_LIB:tune-rv32imf_zicsrilp32f = "lib/rv32imf_zicsr/ilp32f"
158TUNE_FEATURES:tune-rv32imf_zicsrilp32f = "riscv" 217TUNE_FEATURES:tune-rv32imf_zicsrilp32f = "riscv riscv32"
159TUNE_CCARGS:tune-rv32imf_zicsrilp32f = " -march=rv32imf_zicsr -mabi=ilp32f" 218TUNE_CCARGS:tune-rv32imf_zicsrilp32f = " -march=rv32imf_zicsr -mabi=ilp32f"
160TUNE_PKGARCH:tune-rv32imf_zicsrilp32f = "rv32imf_zicsrilp32f" 219TUNE_PKGARCH:tune-rv32imf_zicsrilp32f = "rv32imf_zicsrilp32f"
161TUNE_ARCH:tune-rv32imf_zicsrilp32f = "riscv32" 220TUNE_ARCH:tune-rv32imf_zicsrilp32f = "riscv32"
@@ -168,7 +227,7 @@ DEFAULTTUNE:virtclass-multilib-librv32imfczicsrilp32f = "rv32imfc_zicsrilp32f"
168AVAILTUNES += "rv32imfc_zicsrilp32f" 227AVAILTUNES += "rv32imfc_zicsrilp32f"
169PACKAGE_EXTRA_ARCHS:tune-rv32imfc_zicsrilp32f = "${TUNE_PKGARCH:tune-rv32imfc_zicsrilp32f}" 228PACKAGE_EXTRA_ARCHS:tune-rv32imfc_zicsrilp32f = "${TUNE_PKGARCH:tune-rv32imfc_zicsrilp32f}"
170BASE_LIB:tune-rv32imfc_zicsrilp32f = "lib/rv32imfc_zicsr/ilp32f" 229BASE_LIB:tune-rv32imfc_zicsrilp32f = "lib/rv32imfc_zicsr/ilp32f"
171TUNE_FEATURES:tune-rv32imfc_zicsrilp32f = "riscv" 230TUNE_FEATURES:tune-rv32imfc_zicsrilp32f = "riscv riscv32"
172TUNE_CCARGS:tune-rv32imfc_zicsrilp32f = " -march=rv32imfc_zicsr -mabi=ilp32f" 231TUNE_CCARGS:tune-rv32imfc_zicsrilp32f = " -march=rv32imfc_zicsr -mabi=ilp32f"
173TUNE_PKGARCH:tune-rv32imfc_zicsrilp32f = "rv32imfc_zicsrilp32f" 232TUNE_PKGARCH:tune-rv32imfc_zicsrilp32f = "rv32imfc_zicsrilp32f"
174TUNE_ARCH:tune-rv32imfc_zicsrilp32f = "riscv32" 233TUNE_ARCH:tune-rv32imfc_zicsrilp32f = "riscv32"
@@ -181,7 +240,7 @@ DEFAULTTUNE:virtclass-multilib-librv32imafczicsrilp32f = "rv32imafc_zicsrilp32f"
181AVAILTUNES += "rv32imafc_zicsrilp32f" 240AVAILTUNES += "rv32imafc_zicsrilp32f"
182PACKAGE_EXTRA_ARCHS:tune-rv32imafc_zicsrilp32f = "${TUNE_PKGARCH:tune-rv32imafc_zicsrilp32f}" 241PACKAGE_EXTRA_ARCHS:tune-rv32imafc_zicsrilp32f = "${TUNE_PKGARCH:tune-rv32imafc_zicsrilp32f}"
183BASE_LIB:tune-rv32imafc_zicsrilp32f = "lib/rv32imafc_zicsr/ilp32f" 242BASE_LIB:tune-rv32imafc_zicsrilp32f = "lib/rv32imafc_zicsr/ilp32f"
184TUNE_FEATURES:tune-rv32imafc_zicsrilp32f = "riscv" 243TUNE_FEATURES:tune-rv32imafc_zicsrilp32f = "riscv riscv32"
185TUNE_CCARGS:tune-rv32imafc_zicsrilp32f = " -march=rv32imafc_zicsr -mabi=ilp32f" 244TUNE_CCARGS:tune-rv32imafc_zicsrilp32f = " -march=rv32imafc_zicsr -mabi=ilp32f"
186TUNE_PKGARCH:tune-rv32imafc_zicsrilp32f = "rv32imafc_zicsrilp32f" 245TUNE_PKGARCH:tune-rv32imafc_zicsrilp32f = "rv32imafc_zicsrilp32f"
187TUNE_ARCH:tune-rv32imafc_zicsrilp32f = "riscv32" 246TUNE_ARCH:tune-rv32imafc_zicsrilp32f = "riscv32"
@@ -194,7 +253,7 @@ DEFAULTTUNE:virtclass-multilib-librv32imfdczicsrilp32d = "rv32imfdc_zicsrilp32d"
194AVAILTUNES += "rv32imfdc_zicsrilp32d" 253AVAILTUNES += "rv32imfdc_zicsrilp32d"
195PACKAGE_EXTRA_ARCHS:tune-rv32imfdc_zicsrilp32d = "${TUNE_PKGARCH:tune-rv32imfdc_zicsrilp32d}" 254PACKAGE_EXTRA_ARCHS:tune-rv32imfdc_zicsrilp32d = "${TUNE_PKGARCH:tune-rv32imfdc_zicsrilp32d}"
196BASE_LIB:tune-rv32imfdc_zicsrilp32d = "lib/rv32imfdc_zicsr/ilp32d" 255BASE_LIB:tune-rv32imfdc_zicsrilp32d = "lib/rv32imfdc_zicsr/ilp32d"
197TUNE_FEATURES:tune-rv32imfdc_zicsrilp32d = "riscv" 256TUNE_FEATURES:tune-rv32imfdc_zicsrilp32d = "riscv riscv32"
198TUNE_CCARGS:tune-rv32imfdc_zicsrilp32d = " -march=rv32imfdc_zicsr -mabi=ilp32d" 257TUNE_CCARGS:tune-rv32imfdc_zicsrilp32d = " -march=rv32imfdc_zicsr -mabi=ilp32d"
199TUNE_PKGARCH:tune-rv32imfdc_zicsrilp32d = "rv32imfdc_zicsrilp32d" 258TUNE_PKGARCH:tune-rv32imfdc_zicsrilp32d = "rv32imfdc_zicsrilp32d"
200TUNE_ARCH:tune-rv32imfdc_zicsrilp32d = "riscv32" 259TUNE_ARCH:tune-rv32imfdc_zicsrilp32d = "riscv32"
@@ -207,7 +266,7 @@ DEFAULTTUNE:virtclass-multilib-librv64ilp64 = "rv64ilp64"
207AVAILTUNES += "rv64ilp64" 266AVAILTUNES += "rv64ilp64"
208PACKAGE_EXTRA_ARCHS:tune-rv64ilp64 = "${TUNE_PKGARCH:tune-rv64ilp64}" 267PACKAGE_EXTRA_ARCHS:tune-rv64ilp64 = "${TUNE_PKGARCH:tune-rv64ilp64}"
209BASE_LIB:tune-rv64ilp64 = "lib/rv64i/lp64" 268BASE_LIB:tune-rv64ilp64 = "lib/rv64i/lp64"
210TUNE_FEATURES:tune-rv64ilp64 = "riscv" 269TUNE_FEATURES:tune-rv64ilp64 = "riscv riscv64"
211TUNE_CCARGS:tune-rv64ilp64 = " -march=rv64i -mabi=lp64" 270TUNE_CCARGS:tune-rv64ilp64 = " -march=rv64i -mabi=lp64"
212TUNE_PKGARCH:tune-rv64ilp64 = "rv64ilp64" 271TUNE_PKGARCH:tune-rv64ilp64 = "rv64ilp64"
213TUNE_ARCH:tune-rv64ilp64 = "riscv64" 272TUNE_ARCH:tune-rv64ilp64 = "riscv64"
@@ -220,7 +279,7 @@ DEFAULTTUNE:virtclass-multilib-librv64iclp64 = "rv64iclp64"
220AVAILTUNES += "rv64iclp64" 279AVAILTUNES += "rv64iclp64"
221PACKAGE_EXTRA_ARCHS:tune-rv64iclp64 = "${TUNE_PKGARCH:tune-rv64iclp64}" 280PACKAGE_EXTRA_ARCHS:tune-rv64iclp64 = "${TUNE_PKGARCH:tune-rv64iclp64}"
222BASE_LIB:tune-rv64iclp64 = "lib/rv64ic/lp64" 281BASE_LIB:tune-rv64iclp64 = "lib/rv64ic/lp64"
223TUNE_FEATURES:tune-rv64iclp64 = "riscv" 282TUNE_FEATURES:tune-rv64iclp64 = "riscv riscv64"
224TUNE_CCARGS:tune-rv64iclp64 = " -march=rv64ic -mabi=lp64" 283TUNE_CCARGS:tune-rv64iclp64 = " -march=rv64ic -mabi=lp64"
225TUNE_PKGARCH:tune-rv64iclp64 = "rv64iclp64" 284TUNE_PKGARCH:tune-rv64iclp64 = "rv64iclp64"
226TUNE_ARCH:tune-rv64iclp64 = "riscv64" 285TUNE_ARCH:tune-rv64iclp64 = "riscv64"
@@ -233,7 +292,7 @@ DEFAULTTUNE:virtclass-multilib-librv64imlp64 = "rv64imlp64"
233AVAILTUNES += "rv64imlp64" 292AVAILTUNES += "rv64imlp64"
234PACKAGE_EXTRA_ARCHS:tune-rv64imlp64 = "${TUNE_PKGARCH:tune-rv64imlp64}" 293PACKAGE_EXTRA_ARCHS:tune-rv64imlp64 = "${TUNE_PKGARCH:tune-rv64imlp64}"
235BASE_LIB:tune-rv64imlp64 = "lib/rv64im/lp64" 294BASE_LIB:tune-rv64imlp64 = "lib/rv64im/lp64"
236TUNE_FEATURES:tune-rv64imlp64 = "riscv" 295TUNE_FEATURES:tune-rv64imlp64 = "riscv riscv64"
237TUNE_CCARGS:tune-rv64imlp64 = " -march=rv64im -mabi=lp64" 296TUNE_CCARGS:tune-rv64imlp64 = " -march=rv64im -mabi=lp64"
238TUNE_PKGARCH:tune-rv64imlp64 = "rv64imlp64" 297TUNE_PKGARCH:tune-rv64imlp64 = "rv64imlp64"
239TUNE_ARCH:tune-rv64imlp64 = "riscv64" 298TUNE_ARCH:tune-rv64imlp64 = "riscv64"
@@ -246,7 +305,7 @@ DEFAULTTUNE:virtclass-multilib-librv64imclp64 = "rv64imclp64"
246AVAILTUNES += "rv64imclp64" 305AVAILTUNES += "rv64imclp64"
247PACKAGE_EXTRA_ARCHS:tune-rv64imclp64 = "${TUNE_PKGARCH:tune-rv64imclp64}" 306PACKAGE_EXTRA_ARCHS:tune-rv64imclp64 = "${TUNE_PKGARCH:tune-rv64imclp64}"
248BASE_LIB:tune-rv64imclp64 = "lib/rv64imc/lp64" 307BASE_LIB:tune-rv64imclp64 = "lib/rv64imc/lp64"
249TUNE_FEATURES:tune-rv64imclp64 = "riscv" 308TUNE_FEATURES:tune-rv64imclp64 = "riscv riscv64"
250TUNE_CCARGS:tune-rv64imclp64 = " -march=rv64imc -mabi=lp64" 309TUNE_CCARGS:tune-rv64imclp64 = " -march=rv64imc -mabi=lp64"
251TUNE_PKGARCH:tune-rv64imclp64 = "rv64imclp64" 310TUNE_PKGARCH:tune-rv64imclp64 = "rv64imclp64"
252TUNE_ARCH:tune-rv64imclp64 = "riscv64" 311TUNE_ARCH:tune-rv64imclp64 = "riscv64"
@@ -259,7 +318,7 @@ DEFAULTTUNE:virtclass-multilib-librv64imaclp64 = "rv64imaclp64"
259AVAILTUNES += "rv64imaclp64" 318AVAILTUNES += "rv64imaclp64"
260PACKAGE_EXTRA_ARCHS:tune-rv64imaclp64 = "${TUNE_PKGARCH:tune-rv64imaclp64}" 319PACKAGE_EXTRA_ARCHS:tune-rv64imaclp64 = "${TUNE_PKGARCH:tune-rv64imaclp64}"
261BASE_LIB:tune-rv64imaclp64 = "lib/rv64imac/lp64" 320BASE_LIB:tune-rv64imaclp64 = "lib/rv64imac/lp64"
262TUNE_FEATURES:tune-rv64imaclp64 = "riscv" 321TUNE_FEATURES:tune-rv64imaclp64 = "riscv riscv64"
263TUNE_CCARGS:tune-rv64imaclp64 = " -march=rv64imac -mabi=lp64" 322TUNE_CCARGS:tune-rv64imaclp64 = " -march=rv64imac -mabi=lp64"
264TUNE_PKGARCH:tune-rv64imaclp64 = "rv64imaclp64" 323TUNE_PKGARCH:tune-rv64imaclp64 = "rv64imaclp64"
265TUNE_ARCH:tune-rv64imaclp64 = "riscv64" 324TUNE_ARCH:tune-rv64imaclp64 = "riscv64"
@@ -272,7 +331,7 @@ DEFAULTTUNE:virtclass-multilib-librv64imfzicsrlp64f = "rv64imf_zicsrlp64f"
272AVAILTUNES += "rv64imf_zicsrlp64f" 331AVAILTUNES += "rv64imf_zicsrlp64f"
273PACKAGE_EXTRA_ARCHS:tune-rv64imf_zicsrlp64f = "${TUNE_PKGARCH:tune-rv64imf_zicsrlp64f}" 332PACKAGE_EXTRA_ARCHS:tune-rv64imf_zicsrlp64f = "${TUNE_PKGARCH:tune-rv64imf_zicsrlp64f}"
274BASE_LIB:tune-rv64imf_zicsrlp64f = "lib/rv64imf_zicsr/lp64f" 333BASE_LIB:tune-rv64imf_zicsrlp64f = "lib/rv64imf_zicsr/lp64f"
275TUNE_FEATURES:tune-rv64imf_zicsrlp64f = "riscv" 334TUNE_FEATURES:tune-rv64imf_zicsrlp64f = "riscv riscv64"
276TUNE_CCARGS:tune-rv64imf_zicsrlp64f = " -march=rv64imf_zicsr -mabi=lp64f" 335TUNE_CCARGS:tune-rv64imf_zicsrlp64f = " -march=rv64imf_zicsr -mabi=lp64f"
277TUNE_PKGARCH:tune-rv64imf_zicsrlp64f = "rv64imf_zicsrlp64f" 336TUNE_PKGARCH:tune-rv64imf_zicsrlp64f = "rv64imf_zicsrlp64f"
278TUNE_ARCH:tune-rv64imf_zicsrlp64f = "riscv64" 337TUNE_ARCH:tune-rv64imf_zicsrlp64f = "riscv64"
@@ -285,7 +344,7 @@ DEFAULTTUNE:virtclass-multilib-librv64imfczicsrlp64f = "rv64imfc_zicsrlp64f"
285AVAILTUNES += "rv64imfc_zicsrlp64f" 344AVAILTUNES += "rv64imfc_zicsrlp64f"
286PACKAGE_EXTRA_ARCHS:tune-rv64imfc_zicsrlp64f = "${TUNE_PKGARCH:tune-rv64imfc_zicsrlp64f}" 345PACKAGE_EXTRA_ARCHS:tune-rv64imfc_zicsrlp64f = "${TUNE_PKGARCH:tune-rv64imfc_zicsrlp64f}"
287BASE_LIB:tune-rv64imfc_zicsrlp64f = "lib/rv64imfc_zicsr/lp64f" 346BASE_LIB:tune-rv64imfc_zicsrlp64f = "lib/rv64imfc_zicsr/lp64f"
288TUNE_FEATURES:tune-rv64imfc_zicsrlp64f = "riscv" 347TUNE_FEATURES:tune-rv64imfc_zicsrlp64f = "riscv riscv64"
289TUNE_CCARGS:tune-rv64imfc_zicsrlp64f = " -march=rv64imfc_zicsr -mabi=lp64f" 348TUNE_CCARGS:tune-rv64imfc_zicsrlp64f = " -march=rv64imfc_zicsr -mabi=lp64f"
290TUNE_PKGARCH:tune-rv64imfc_zicsrlp64f = "rv64imfc_zicsrlp64f" 349TUNE_PKGARCH:tune-rv64imfc_zicsrlp64f = "rv64imfc_zicsrlp64f"
291TUNE_ARCH:tune-rv64imfc_zicsrlp64f = "riscv64" 350TUNE_ARCH:tune-rv64imfc_zicsrlp64f = "riscv64"
@@ -298,7 +357,7 @@ DEFAULTTUNE:virtclass-multilib-librv64imafczicsrlp64f = "rv64imafc_zicsrlp64f"
298AVAILTUNES += "rv64imafc_zicsrlp64f" 357AVAILTUNES += "rv64imafc_zicsrlp64f"
299PACKAGE_EXTRA_ARCHS:tune-rv64imafc_zicsrlp64f = "${TUNE_PKGARCH:tune-rv64imafc_zicsrlp64f}" 358PACKAGE_EXTRA_ARCHS:tune-rv64imafc_zicsrlp64f = "${TUNE_PKGARCH:tune-rv64imafc_zicsrlp64f}"
300BASE_LIB:tune-rv64imafc_zicsrlp64f = "lib/rv64imafc_zicsr/lp64f" 359BASE_LIB:tune-rv64imafc_zicsrlp64f = "lib/rv64imafc_zicsr/lp64f"
301TUNE_FEATURES:tune-rv64imafc_zicsrlp64f = "riscv" 360TUNE_FEATURES:tune-rv64imafc_zicsrlp64f = "riscv riscv64"
302TUNE_CCARGS:tune-rv64imafc_zicsrlp64f = " -march=rv64imafc_zicsr -mabi=lp64f" 361TUNE_CCARGS:tune-rv64imafc_zicsrlp64f = " -march=rv64imafc_zicsr -mabi=lp64f"
303TUNE_PKGARCH:tune-rv64imafc_zicsrlp64f = "rv64imafc_zicsrlp64f" 362TUNE_PKGARCH:tune-rv64imafc_zicsrlp64f = "rv64imafc_zicsrlp64f"
304TUNE_ARCH:tune-rv64imafc_zicsrlp64f = "riscv64" 363TUNE_ARCH:tune-rv64imafc_zicsrlp64f = "riscv64"
@@ -311,7 +370,7 @@ DEFAULTTUNE:virtclass-multilib-librv64imfdczicsrlp64d = "rv64imfdc_zicsrlp64d"
311AVAILTUNES += "rv64imfdc_zicsrlp64d" 370AVAILTUNES += "rv64imfdc_zicsrlp64d"
312PACKAGE_EXTRA_ARCHS:tune-rv64imfdc_zicsrlp64d = "${TUNE_PKGARCH:tune-rv64imfdc_zicsrlp64d}" 371PACKAGE_EXTRA_ARCHS:tune-rv64imfdc_zicsrlp64d = "${TUNE_PKGARCH:tune-rv64imfdc_zicsrlp64d}"
313BASE_LIB:tune-rv64imfdc_zicsrlp64d = "lib/rv64imfdc_zicsr/lp64d" 372BASE_LIB:tune-rv64imfdc_zicsrlp64d = "lib/rv64imfdc_zicsr/lp64d"
314TUNE_FEATURES:tune-rv64imfdc_zicsrlp64d = "riscv" 373TUNE_FEATURES:tune-rv64imfdc_zicsrlp64d = "riscv riscv64"
315TUNE_CCARGS:tune-rv64imfdc_zicsrlp64d = " -march=rv64imfdc_zicsr -mabi=lp64d" 374TUNE_CCARGS:tune-rv64imfdc_zicsrlp64d = " -march=rv64imfdc_zicsr -mabi=lp64d"
316TUNE_PKGARCH:tune-rv64imfdc_zicsrlp64d = "rv64imfdc_zicsrlp64d" 375TUNE_PKGARCH:tune-rv64imfdc_zicsrlp64d = "rv64imfdc_zicsrlp64d"
317TUNE_ARCH:tune-rv64imfdc_zicsrlp64d = "riscv64" 376TUNE_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 = " \
9 9
10# RISC V configuration 10# RISC V configuration
11RISCV_MULTILIB = "\ 11RISCV_MULTILIB = "\
12rv32i-ilp32--;rv32ic-ilp32--;rv32im-ilp32--;rv32imc-ilp32--;rv32imac-ilp32--;rv32e-ilp32e--;\ 12rv32e-ilp32e--;rv32i-ilp32--;rv32ib-ilp32--;rv32ic-ilp32--;\
13rv32imf-ilp32f--;rv32imfc-ilp32f--;rv32imafc-ilp32f--;rv32imfdc-ilp32d--;\ 13rv32icb-ilp32--;rv32im-ilp32--;rv32imb-ilp32--;rv32imc-ilp32--;\
14rv32imcb-ilp32--;rv32imac-ilp32--;rv32imf-ilp32f--;rv32imfc-ilp32f--;\
15rv32imafc-ilp32f--;rv32imfdc-ilp32d--;\
14rv64i-lp64--;rv64ic-lp64--;rv64im-lp64--;rv64imc-lp64--;rv64imac-lp64--;\ 16rv64i-lp64--;rv64ic-lp64--;rv64im-lp64--;rv64imc-lp64--;rv64imac-lp64--;\
15rv64imf-lp64f--;rv64imfc-lp64f--;rv64imafc-lp64f--;rv64imfdc-lp64d--\ 17rv64imf-lp64f--;rv64imfc-lp64f--;rv64imafc-lp64f--;rv64imfdc-lp64d--\
16" 18"
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,;, ,' |
19 echo 'AVAILTUNES += "riscv"' >> $tempfile 19 echo 'AVAILTUNES += "riscv"' >> $tempfile
20 echo 'PACKAGE_EXTRA_ARCHS:tune-riscv = "${TUNE_PKGARCH:tune-riscv}"' >> $tempfile 20 echo 'PACKAGE_EXTRA_ARCHS:tune-riscv = "${TUNE_PKGARCH:tune-riscv}"' >> $tempfile
21 echo 'BASE_LIB:tune-riscv = "lib"' >> $tempfile 21 echo 'BASE_LIB:tune-riscv = "lib"' >> $tempfile
22 echo 'TUNE_FEATURES:tune-riscv = "riscv"' >> $tempfile 22 echo 'TUNE_FEATURES:tune-riscv = "riscv riscv32"' >> $tempfile
23 echo 'TUNE_CCARGS:tune-riscv = ""' >> $tempfile 23 echo 'TUNE_CCARGS:tune-riscv = ""' >> $tempfile
24 echo 'TUNE_PKGARCH:tune-riscv = "riscv32"' >> $tempfile 24 echo 'TUNE_PKGARCH:tune-riscv = "riscv32"' >> $tempfile
25 echo 'TUNE_ARCH:tune-riscv = "riscv32"' >> $tempfile 25 echo 'TUNE_ARCH:tune-riscv = "riscv32"' >> $tempfile
@@ -45,7 +45,11 @@ sed -e 's,;, ,' |
45 echo "AVAILTUNES += \"$tune\"" >> $tempfile 45 echo "AVAILTUNES += \"$tune\"" >> $tempfile
46 echo "PACKAGE_EXTRA_ARCHS:tune-$tune = \"\${TUNE_PKGARCH:tune-$tune}\"" >> $tempfile 46 echo "PACKAGE_EXTRA_ARCHS:tune-$tune = \"\${TUNE_PKGARCH:tune-$tune}\"" >> $tempfile
47 echo "BASE_LIB:tune-$tune = \"lib/$mlib\"" >> $tempfile 47 echo "BASE_LIB:tune-$tune = \"lib/$mlib\"" >> $tempfile
48 echo "TUNE_FEATURES:tune-$tune = \"riscv\"" >> $tempfile 48 if [ "${tune/rv32/}" != "${tune}" ]; then
49 echo "TUNE_FEATURES:tune-$tune = \"riscv riscv32\"" >> $tempfile
50 elif [ "${tune/rv64/}" != "${tune}" ]; then
51 echo "TUNE_FEATURES:tune-$tune = \"riscv riscv64\"" >> $tempfile
52 fi
49 echo "TUNE_CCARGS:tune-$tune = \"$cflags\"" >> $tempfile 53 echo "TUNE_CCARGS:tune-$tune = \"$cflags\"" >> $tempfile
50 echo "TUNE_PKGARCH:tune-$tune = \"$tune\"" >> $tempfile 54 echo "TUNE_PKGARCH:tune-$tune = \"$tune\"" >> $tempfile
51 echo "TUNE_ARCH:tune-$tune = \"$arch\"" >> $tempfile 55 echo "TUNE_ARCH:tune-$tune = \"$arch\"" >> $tempfile