Add GCC 16.1#8642
Merged
mattgodbolt merged 6 commits intomainfrom Apr 30, 2026
Merged
Conversation
🤖 Generated by LLM (Claude, via OpenClaw)
GCC 16 is the first release to include the Algol68 frontend (ga68). Add ga68-g161 pointing to gcc-16.1.0, and set it as the default compiler, with the nightly snapshot remaining for trunk. 🤖 Generated by LLM (Claude, via OpenClaw)
23 cross-compiler architectures: arm, arm-unknown (eabi), arm64, avr, bpf, c6x, hppa, loongarch64, m68k, mips, mips64, mips64el, mipsel, powerpc, powerpc64, powerpc64le, riscv32, riscv64, s390x, sh, sparc, sparc64, sparc-leon. Note: msp430 uses TI-specific distributions, not gcc-cross-builder. No Algol68 cross entries needed — ga68 is a native-only frontend. 🤖 Generated by LLM (Claude, via OpenClaw)
8d3c499 to
1ea2f67
Compare
All 23 cross-compiler architectures added to c.amazon.properties, matching the C++ equivalents already in c++.amazon.properties: arm, arm-unknown (eabi), arm64, avr, bpf, c6x, hppa, loongarch64, m68k, mips, mips64, mips64el, mipsel, powerpc, powerpc64, powerpc64le, riscv32, riscv64, s390x, sh, sparc, sparc64, sparc-leon. 🤖 Generated by LLM (Claude, via OpenClaw)
mattgodbolt
reviewed
Apr 30, 2026
🤖 Generated by LLM (Claude, via OpenClaw)
Contributor
There was a problem hiding this comment.
Pull request overview
This PR updates Compiler Explorer’s Amazon properties to add GCC 16.1.0 toolchains (native and cross) across multiple language frontends, and sets GCC 16.1-based entries as defaults where applicable.
Changes:
- Add GCC 16.1 compiler entries (and corresponding “assertions” builds) for multiple languages (C/C++, Ada, Fortran, D, Go, Rust GCC frontend, ObjC/ObjC++).
- Add/extend GCC 16.1 cross-compiler entries for several architectures (notably in the large C/C++ property files).
- Update defaults and some tool paths (e.g., demangler/objdumper/linker) to point at GCC 16.1.0.
Reviewed changes
Copilot reviewed 13 out of 13 changed files in this pull request and generated 3 comments.
Show a summary per file
| File | Description |
|---|---|
| etc/config/rust.amazon.properties | Switches rust config objdumper/linker to GCC 16.1.0; adds gccrs 16.1 (+assertions) entries. |
| etc/config/objc.amazon.properties | Adds objcg161 (+assertions) and makes it default; updates objdumper/demangler paths. |
| etc/config/objc++.amazon.properties | Adds objcppg161 (+assertions) and makes it default; updates objdumper/demangler paths. |
| etc/config/modula2.amazon.properties | Adds gm2161 (+assertions) and makes it default. |
| etc/config/go.amazon.properties | Adds gccgo161 (+assertions). |
| etc/config/gimple.amazon.properties | Adds gimpleg161 (+assertions) and makes it default; updates objdumper/demangler paths. |
| etc/config/fortran.amazon.properties | Adds gfortran161 (+assertions) and makes it default; updates objdumper/demangler paths. |
| etc/config/d.amazon.properties | Adds gdc161 (+assertions). |
| etc/config/cobol.amazon.properties | Adds gcccobol161 (+assertions); updates objdumper path to GCC 16.1.0. |
| etc/config/c.amazon.properties | Adds cg161 (+assertions) and makes it default; adds many GCC 16.1 cross-compiler entries. |
| etc/config/c++.amazon.properties | Adds g161 (+assertions) and makes it default; adds many GCC 16.1 cross-compiler entries. |
| etc/config/algol68.amazon.properties | Adds ga68-g161 and makes it default; keeps snapshot entry. |
| etc/config/ada.amazon.properties | Adds gnat161 (+assertions) and makes it default. |
|
|
||
| # GCC for BPF | ||
| group.cgccbpf.compilers=cbpfg1310:cbpfg1320:cbpfg1330:cbpfg1340:cbpfg1410:cbpfg1420:cbpfg1430:cbpfg1510:cbpfg1520:cbpfgtrunk | ||
| group.cgccbpf.compilers=cbpfg1310:cbpfg1320:cbpfg1330:cbpfg1340:cbpfg1410:cbpfg1420:cbpfg1430:cbpfg1510:cbpfg1520:cbpfgtrunk:cbpfg1610 |
| group.cgcc32arm.groupName=Arm 32-bit GCC | ||
| group.cgcc32arm.baseName=ARM GCC | ||
| group.cgcc32arm.compilers=carmhfg54:carmg454:carmg464:carm541:carmg630:carmg640:carm710:carmg730:carmg750:carmg820:carmce820:carm831:carmg850:carm921:carm930:carm1020:carm1021:carm1030:carm1031_07:carm1031_10:carmg1050:carm1100:carm1120:carm1121:carm1130:carmg1140:carm1210:carmg1220:carmg1230:carmg1240:carmg1250:carmg1310:carmg1320:carmug1320:carmg1330:carmug1330:carmg1340:carmug1340:carmg1410:carmug1410:carmg1420:carmug1420:carmg1430:carmug1430:carmg1510:carmug1510:carmg1520:carmug1520:carmgtrunk | ||
| group.cgcc32arm.compilers=carmhfg54:carmg454:carmg464:carm541:carmg630:carmg640:carm710:carmg730:carmg750:carmg820:carmce820:carm831:carmg850:carm921:carm930:carm1020:carm1021:carm1030:carm1031_07:carm1031_10:carmg1050:carm1100:carm1120:carm1121:carm1130:carmg1140:carm1210:carmg1220:carmg1230:carmg1240:carmg1250:carmg1310:carmg1320:carmug1320:carmg1330:carmug1330:carmg1340:carmug1340:carmg1410:carmug1410:carmg1420:carmug1420:carmg1430:carmug1430:carmg1510:carmug1510:carmg1520:carmug1520:carmgtrunk:carmg1610:carmug1610 |
| compiler.bpfg1410.demangler=/opt/compiler-explorer/bpf/gcc-14.1.0/bpf-unknown-none/bin/bpf-unknown-none-c++filt | ||
| compiler.bpfg1610.exe=/opt/compiler-explorer/bpf/gcc-16.1.0/bpf-unknown-none/bin/bpf-unknown-none-g++ | ||
| compiler.bpfg1610.semver=16.1.0 | ||
| compiler.bpfg1610.objdumper=/opt/compiler-explorer/bpf/gcc-16.1.0/bpf-unknown-none/bin/bpf-unknown-none-objdump |
- Fix bpfg1610 objdumper: bpf-unknown-none-objdump -> bpf-unknown-objdump - Move cbpfgtrunk to end of cgccbpf compiler list - Move carmgtrunk to end of cgcc32arm compiler list 🤖 Generated by LLM (Claude, via OpenClaw)
mattgodbolt
pushed a commit
that referenced
this pull request
Apr 30, 2026
Fixes a cosmetic bug introduced in #8642: \`armug1610\` and \`carmug1610\` were missing the \`name\` property, causing both the regular and unknown-eabi ARM GCC 16.1.0 compilers to appear identically as "ARM GCC 16.1.0" in the UI. All other \`armug*\` / \`carmug*\` entries have an explicit \`name=ARM GCC X.Y.Z (unknown-eabi)\` property; this PR adds the same for 16.1.0. *(I'm Molty, an AI assistant acting on behalf of @mattgodbolt)* Co-authored-by: mattgodbolt-molty <mattgodbolt-molty@users.noreply.github.com>
|
This is now live |
mattgodbolt
pushed a commit
that referenced
this pull request
May 1, 2026
Follow-up to #8642 which added native GCC 16.1.0 and cross C/C++ compilers but missed the Ada and Fortran cross-compiler entries. ## Ada (GNAT) cross compilers added (13 architectures) arm, arm64, hppa, loongarch64, mips, mips64, powerpc, powerpc64, powerpc64le, riscv64, s390x, sparc, sparc64 Note: sparc-leon skipped — `CT_CC_LANG_ADA` is disabled in the 16.1.0 ct-ng config for that target. Arches with Ada disabled in ct-ng (avr, bpf, c6x, m68k, mips64el, mipsel, msp430, riscv32) are also skipped. ## Fortran cross compilers added (17 architectures) arm, arm64, hppa, loongarch64, mips, mips64, mips64el, mipsel, powerpc, powerpc64, powerpc64le, riscv32, riscv64, s390x, sparc, sparc64, sparc-leon refs #7948 *(I'm Molty, an AI assistant acting on behalf of @mattgodbolt)* 🤖 Generated by LLM (Claude, via OpenClaw) Co-authored-by: mattgodbolt-molty <mattgodbolt-molty@users.noreply.github.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Add GCC 16.1.0 compilers across all supported languages and architectures.
Native (x86-64)
g161/g161assert, set as defaultgnat161/gnat161assertgdc161/gdc161assertgfortran161/gfortran161assertgccgo161/gccgo161assertgcccobol161/gcccobol161assertgm2161/gm2161assertgimpleg161/gimpleg161assertobjcg161/objcppg161gccrs-g161ga68-g161— GCC 16 is the first release to ship thega68frontend; set as default, snapshot remains for trunkCross-compilers (23 architectures)
arm, arm-unknown (eabi), arm64, avr, bpf, c6x, hppa, loongarch64, m68k, mips, mips64, mips64el, mipsel, powerpc, powerpc64, powerpc64le, riscv32, riscv64, s390x, sh, sparc, sparc64, sparc-leon.
Note: msp430 uses TI-specific distributions so is not added here.
Depends on: infra PR compiler-explorer/infra#2078 + S3 packages being available.
refs #7948
(I'm Molty, an AI assistant acting on behalf of @mattgodbolt)
🤖 Generated by LLM (Claude, via OpenClaw)