@@ -22,9 +22,10 @@ load("@bazel_skylib//lib:dicts.bzl", "dicts")
22
22
load ("@bazel_skylib//lib:paths.bzl" , "paths" )
23
23
24
24
def _gcc_toolchain_impl (rctx ):
25
+ versions = json .decode (rctx .attr .gcc_versions )
25
26
rctx .download_and_extract (
26
- url = VERSIONS [rctx .attr .gcc_version ][rctx .attr .target_arch ]["url" ],
27
- sha256 = VERSIONS [rctx .attr .gcc_version ][rctx .attr .target_arch ]["sha256" ],
27
+ url = versions [rctx .attr .gcc_version ][rctx .attr .target_arch ]["url" ],
28
+ sha256 = versions [rctx .attr .gcc_version ][rctx .attr .target_arch ]["sha256" ],
28
29
)
29
30
30
31
absolute_toolchain_root = str (rctx .path ("." ))
@@ -241,9 +242,71 @@ _FEATURE_ATTRS = {
241
242
default = "gcc_toolchain" ,
242
243
),
243
244
"gcc_version" : attr .string (
244
- default = "14.2 .0" ,
245
+ default = "14.3 .0" ,
245
246
doc = "The version of GCC." ,
246
247
),
248
+ "gcc_versions" : attr .string (
249
+ default = json .encode ({
250
+ "12.5.0" : {
251
+ "aarch64" : {
252
+ "url" : "https://github.com/f0rmiga/gcc-builds/releases/download/18082025/gcc-toolchain-12.5.0-aarch64.tar.xz" ,
253
+ "sha256" : "7b0e25133a98d44b648a925ba11f64a3adc470e87668af80ce2c3af389ebe9be" ,
254
+ },
255
+ "armv7" : {
256
+ "url" : "https://github.com/f0rmiga/gcc-builds/releases/download/18082025/gcc-toolchain-12.5.0-armv7.tar.xz" ,
257
+ "sha256" : "a0ef76c8cc517b3d76dd2f09b1a371975b2ff1082e2f9372ed79af01b9292934" ,
258
+ },
259
+ "x86_64" : {
260
+ "url" : "https://github.com/f0rmiga/gcc-builds/releases/download/18082025/gcc-toolchain-12.5.0-x86_64.tar.xz" ,
261
+ "sha256" : "51076e175839b434bb2dc0006c0096916df585e8c44666d35b0e3ce821d535db" ,
262
+ },
263
+ },
264
+ "13.4.0" : {
265
+ "aarch64" : {
266
+ "url" : "https://github.com/f0rmiga/gcc-builds/releases/download/18082025/gcc-toolchain-13.4.0-aarch64.tar.xz" ,
267
+ "sha256" : "770cf6bf62bdf78763de526d3a9f5cae4c19f1a3aca0ef8f18b05f1a46d1ffaf" ,
268
+ },
269
+ "armv7" : {
270
+ "url" : "https://github.com/f0rmiga/gcc-builds/releases/download/18082025/gcc-toolchain-13.4.0-armv7.tar.xz" ,
271
+ "sha256" : "1b2739b5003c5a3f0ab7c4cc7fb95cc99c0e933982512de7255c2bd9ced757ad" ,
272
+ },
273
+ "x86_64" : {
274
+ "url" : "https://github.com/f0rmiga/gcc-builds/releases/download/18082025/gcc-toolchain-13.4.0-x86_64.tar.xz" ,
275
+ "sha256" : "d96071c1b98499afd7b7b56ebd69ad414020edf66e982004acffe7df8aaf7e02" ,
276
+ },
277
+ },
278
+ "14.3.0" : {
279
+ "aarch64" : {
280
+ "url" : "https://github.com/f0rmiga/gcc-builds/releases/download/18082025/gcc-toolchain-14.3.0-aarch64.tar.xz" ,
281
+ "sha256" : "74b1f0072769f8865b62897ab962f6fce174115dab2e6596765bb4e700ffe0d1" ,
282
+ },
283
+ "armv7" : {
284
+ "url" : "https://github.com/f0rmiga/gcc-builds/releases/download/18082025/gcc-toolchain-14.3.0-armv7.tar.xz" ,
285
+ "sha256" : "0c20a130f424ce83dd4eb2a4ec8fbcd0c0ddc5f42f0b4660bcd0108cb8c0fb21" ,
286
+ },
287
+ "x86_64" : {
288
+ "url" : "https://github.com/f0rmiga/gcc-builds/releases/download/18082025/gcc-toolchain-14.3.0-x86_64.tar.xz" ,
289
+ "sha256" : "0b365e5da451f5c7adc594f967885d7181ff6d187d6089a4bcf36f954bf3ccf9" ,
290
+ },
291
+ },
292
+ "15.2.0" : {
293
+ "aarch64" : {
294
+ "url" : "https://github.com/f0rmiga/gcc-builds/releases/download/18082025/gcc-toolchain-15.2.0-aarch64.tar.xz" ,
295
+ "sha256" : "e1ae45038d350b297bea4ac10f095a98e2218971a8a37b8ab95f3faad2ec69f8" ,
296
+ },
297
+ "armv7" : {
298
+ "url" : "https://github.com/f0rmiga/gcc-builds/releases/download/18082025/gcc-toolchain-15.2.0-armv7.tar.xz" ,
299
+ "sha256" : "fda64b3ee1c3d7ddcb28378a1b131eadc5d3e3ff1cfab2aab71da7a3f899b601" ,
300
+ },
301
+ "x86_64" : {
302
+ "url" : "https://github.com/f0rmiga/gcc-builds/releases/download/18082025/gcc-toolchain-15.2.0-x86_64.tar.xz" ,
303
+ "sha256" : "50dd28021365e7443853d5e77bc94ab1d1c947ad48fd91cbec44dbdfa61412c9" ,
304
+ },
305
+ },
306
+ }),
307
+ doc = "A JSON dictionary of GCC versions to their download URLs and SHA256 hashes." +
308
+ " The structure is {<gcc_version>: {<target_arch>: {url: <url>, sha256: <sha256>}}}." ,
309
+ ),
247
310
"includes" : attr .string_list (
248
311
doc = "Extra includes for compiling C and C++." +
249
312
" %workspace% is rendered to the toolchain root path." +
@@ -405,23 +468,6 @@ def gcc_register_toolchain(
405
468
native .register_toolchains ("@{}//:cc_toolchain" .format (name ))
406
469
native .register_toolchains ("@{}//:fortran_toolchain" .format (name ))
407
470
408
- VERSIONS = {
409
- "14.2.0" : {
410
- "aarch64" : {
411
- "url" : "https://github.com/f0rmiga/gcc-builds/releases/download/14.2.0_17%2F08%2F2025/gcc-toolchain-14.2.0-aarch64.tar.xz" ,
412
- "sha256" : "30e49f3c542e2d49e8c46c7546e4fa9c15f47c5a88e8391be0c544678065e7d7" ,
413
- },
414
- "armv7" : {
415
- "url" : "https://github.com/f0rmiga/gcc-builds/releases/download/14.2.0_17%2F08%2F2025/gcc-toolchain-14.2.0-armv7.tar.xz" ,
416
- "sha256" : "7b1edb9b81a19c588327607b4adb57b65a9ef68350fe769513a05a93df168023" ,
417
- },
418
- "x86_64" : {
419
- "url" : "https://github.com/f0rmiga/gcc-builds/releases/download/14.2.0_17%2F08%2F2025/gcc-toolchain-14.2.0-x86_64.tar.xz" ,
420
- "sha256" : "fdbd3841a7f25af4f5f7cd24b1757c5040b4a6ac52cdfb5785a83358a7b8e655" ,
421
- },
422
- },
423
- }
424
-
425
471
ARCHS = struct (
426
472
aarch64 = "aarch64" ,
427
473
armv7 = "armv7" ,
0 commit comments