@@ -41,10 +41,10 @@ function application_build_versioned_components()
4141
4242 # ---------------------------------------------------------------------------
4343
44- if [[ ${XBB_RELEASE_VERSION} =~ 11 [.]. * [.].* -.* ]] || \
45- [[ ${XBB_RELEASE_VERSION} =~ 12 [.]. * [.].* -.* ]] || \
46- [[ ${XBB_RELEASE_VERSION} =~ 13 [.]. * [ .].* -.* ]] || \
47- [[ ${XBB_RELEASE_VERSION} =~ 14 [.]. * [.].* -.* ]]
44+ if [[ ${XBB_RELEASE_VERSION} =~ 12 [.][5] [.].* -.* ]] || \
45+ [[ ${XBB_RELEASE_VERSION} =~ 13 [.][45] [.].* -.* ]] || \
46+ [[ ${XBB_RELEASE_VERSION} =~ 14 [.][3-5][ .].* -.* ]]
47+ [[ ${XBB_RELEASE_VERSION} =~ 15 [.][0-5] [.].* -.* ]]
4848 then
4949
5050 if [ " ${XBB_APPLICATION_WITHOUT_MULTILIB:- " " } " != " y" ]
@@ -109,64 +109,32 @@ function application_build_versioned_components()
109109 rv32e-ilp32e--zicsr*zifencei \
110110 rv32ea-ilp32e--zicsr*zifencei \
111111 rv32eac-ilp32e--zicsr*zifencei \
112- # rv32ec-ilp32e--zicsr*zifencei \
113112 rv32em-ilp32e--zicsr*zifencei \
114- # rv32ema-ilp32e--zicsr*zifencei \
115113 rv32emac-ilp32e--zicsr*zifencei \
116- # rv32emc-ilp32e--zicsr*zifencei \
117114 \
118115 rv32-ilp32--zicsr*zifencei \
119- # rv32i-ilp32--zicsr*zifencei \
120116 rv32ia-ilp32--zicsr*zifencei \
121117 rv32iac-ilp32--zicsr*zifencei \
122118 rv32iaf-ilp32f--zicsr*zifencei \
123- # rv32iafc-ilp32f--zicsr*zifencei \
124119 rv32iafd-ilp32d--zicsr*zifencei \
125- # rv32iafdc-ilp32d--zicsr*zifencei \
126- # rv32ic-ilp32--zicsr*zifencei \
127- # rv32if-ilp32f--zicsr*zifencei \
128- # rv32ifc-ilp32f--zicsr*zifencei \
129- # rv32ifd-ilp32d--zicsr*zifencei \
130- # rv32ifdc-ilp32d--zicsr*zifencei \
131120 rv32im-ilp32--zicsr*zifencei \
132- # rv32ima-ilp32--zicsr*zifencei \
133121 rv32imac-ilp32--zicsr*zifencei \
134- # rv32imaf-ilp32f--zicsr*zifencei \
135122 rv32imafc-ilp32f--zicsr*zifencei \
136- # rv32imafd-ilp32d--zicsr*zifencei \
137123 rv32imafdc-ilp32d--zicsr*zifencei \
138- # rv32imc-ilp32--zicsr*zifencei \
139124 rv32imf-ilp32f--zicsr*zifencei \
140- # rv32imfc-ilp32f--zicsr*zifencei \
141125 rv32imfd-ilp32d--zicsr*zifencei \
142- # rv32imfdc-ilp32d--zicsr*zifencei \
143126 rv32if-ilp32f--zicsr*zifencei \
144127 rv32ifd-ilp32d--zicsr*zifencei \
145128 \
146129 rv64i-lp64--zicsr*zifencei \
147130 rv64ia-lp64--zicsr*zifencei \
148131 rv64iac-lp64--zicsr*zifencei \
149132 rv64iaf-lp64f--zicsr*zifencei \
150- # rv64iafc-lp64f--zicsr*zifencei \
151133 rv64iafd-lp64d--zicsr*zifencei \
152- # rv64iafdc-lp64d--zicsr*zifencei \
153- # rv64ic-lp64--zicsr*zifencei \
154- # rv64if-lp64f--zicsr*zifencei \
155- # rv64ifc-lp64f--zicsr*zifencei \
156- # rv64ifd-lp64d--zicsr*zifencei \
157- # rv64ifdc-lp64d--zicsr*zifencei \
158134 rv64im-lp64--zicsr*zifencei \
159- # rv64ima-lp64--zicsr*zifencei \
160135 rv64imac-lp64--zicsr*zifencei \
161- # rv64imaf-lp64f--zicsr*zifencei \
162136 rv64imafc-lp64f--zicsr*zifencei \
163- # rv64imafd-lp64d--zicsr*zifencei \
164- # rv64imafdc-lp64d--zicsr*zifencei \
165- # rv64imc-lp64--zicsr*zifencei \
166137 rv64imf-lp64f--zicsr*zifencei \
167- # rv64imfc-lp64f--zicsr*zifencei \
168- # rv64imfd-lp64d--zicsr*zifencei \
169- # rv64imfdc-lp64d--zicsr*zifencei \
170138 rv64if-lp64f--zicsr*zifencei \
171139 rv64ifd-lp64d--zicsr*zifencei \
172140 " }
@@ -181,6 +149,96 @@ function application_build_versioned_components()
181149 fi
182150 fi
183151
152+ elif [[ ${XBB_RELEASE_VERSION} =~ 11[.][1-5][.].* -.* ]] || \
153+ [[ ${XBB_RELEASE_VERSION} =~ 12[.][1-4][.].* -.* ]] || \
154+ [[ ${XBB_RELEASE_VERSION} =~ 13[.][1-3][.].* -.* ]] || \
155+ [[ ${XBB_RELEASE_VERSION} =~ 14[.][012][.].* -.* ]]
156+ then
157+
158+ if [ " ${XBB_APPLICATION_WITHOUT_MULTILIB:- " " } " != " y" ]
159+ then
160+ # The SiFive list from 10.2 with a lot of non-c extras.
161+ # (including `rv32imaf-ilp32f--`).
162+ if [ " ${XBB_IS_DEVELOPMENT} " != " y" ]
163+ then
164+
165+ # DO NOT add the combination that is already given as the default!
166+ # rv32imac-ilp32-- \
167+
168+ # The `zicsr*zifencei` seem redundant for GCC 13, but are
169+ # important for GCC 12.
170+
171+ # (Almost) full combinatorial; insanely large.
172+ XBB_GCC_MULTILIB_LIST=${XBB_APPLICATION_GCC_MULTILIB_LIST:- " \
173+ rv32e-ilp32e--zicsr*zifencei \
174+ rv32ea-ilp32e--zicsr*zifencei \
175+ rv32eac-ilp32e--zicsr*zifencei \
176+ rv32ec-ilp32e--zicsr*zifencei \
177+ rv32em-ilp32e--zicsr*zifencei \
178+ rv32ema-ilp32e--zicsr*zifencei \
179+ rv32emac-ilp32e--zicsr*zifencei \
180+ rv32emc-ilp32e--zicsr*zifencei \
181+ \
182+ rv32i-ilp32--zicsr*zifencei \
183+ rv32ia-ilp32--zicsr*zifencei \
184+ rv32iac-ilp32--zicsr*zifencei \
185+ rv32iaf-ilp32f--zicsr*zifencei \
186+ rv32iafc-ilp32f--zicsr*zifencei \
187+ rv32iafd-ilp32d--zicsr*zifencei \
188+ rv32iafdc-ilp32d--zicsr*zifencei \
189+ rv32ic-ilp32--zicsr*zifencei \
190+ rv32if-ilp32f--zicsr*zifencei \
191+ rv32ifc-ilp32f--zicsr*zifencei \
192+ rv32ifd-ilp32d--zicsr*zifencei \
193+ rv32ifdc-ilp32d--zicsr*zifencei \
194+ rv32im-ilp32--zicsr*zifencei \
195+ rv32ima-ilp32--zicsr*zifencei \
196+ rv32imaf-ilp32f--zicsr*zifencei \
197+ rv32imafc-ilp32f--zicsr*zifencei \
198+ rv32imafd-ilp32d--zicsr*zifencei \
199+ rv32imafdc-ilp32d--zicsr*zifencei \
200+ rv32imc-ilp32--zicsr*zifencei \
201+ rv32imf-ilp32f--zicsr*zifencei \
202+ rv32imfc-ilp32f--zicsr*zifencei \
203+ rv32imfd-ilp32d--zicsr*zifencei \
204+ rv32imfdc-ilp32d--zicsr*zifencei \
205+ \
206+ rv64i-lp64--zicsr*zifencei \
207+ rv64ia-lp64--zicsr*zifencei \
208+ rv64iac-lp64--zicsr*zifencei \
209+ rv64iaf-lp64f--zicsr*zifencei \
210+ rv64iafc-lp64f--zicsr*zifencei \
211+ rv64iafd-lp64d--zicsr*zifencei \
212+ rv64iafdc-lp64d--zicsr*zifencei \
213+ rv64ic-lp64--zicsr*zifencei \
214+ rv64if-lp64f--zicsr*zifencei \
215+ rv64ifc-lp64f--zicsr*zifencei \
216+ rv64ifd-lp64d--zicsr*zifencei \
217+ rv64ifdc-lp64d--zicsr*zifencei \
218+ rv64im-lp64--zicsr*zifencei \
219+ rv64ima-lp64--zicsr*zifencei \
220+ rv64imac-lp64--zicsr*zifencei \
221+ rv64imaf-lp64f--zicsr*zifencei \
222+ rv64imafc-lp64f--zicsr*zifencei \
223+ rv64imafd-lp64d--zicsr*zifencei \
224+ rv64imafdc-lp64d--zicsr*zifencei \
225+ rv64imc-lp64--zicsr*zifencei \
226+ rv64imf-lp64f--zicsr*zifencei \
227+ rv64imfc-lp64f--zicsr*zifencei \
228+ rv64imfd-lp64d--zicsr*zifencei \
229+ rv64imfdc-lp64d--zicsr*zifencei \
230+ " }
231+ else
232+ # Short list used during development to save time.
233+ # Skip: rv32imac-ilp32-- (see above).
234+ XBB_GCC_MULTILIB_LIST=${XBB_APPLICATION_GCC_MULTILIB_LIST:- " \
235+ rv32emac-ilp32e-- \
236+ rv32ima-ilp32--zicsr*zifencei \
237+ rv64imac-lp64-- \
238+ " }
239+ fi
240+ fi
241+
184242 fi
185243
186244 # ---------------------------------------------------------------------------
0 commit comments