From 668bdb8ab13064d67cc7640c72be296f99110cc0 Mon Sep 17 00:00:00 2001 From: Patrick Quist Date: Sat, 11 Oct 2025 18:06:46 +0200 Subject: [PATCH] add aarch64 compilers (#8187) Fixes #5967 --- CLAUDE.md | 8 +- etc/config/assembly.amazon.properties | 101 ++++++++++++++++++++++++-- 2 files changed, 103 insertions(+), 6 deletions(-) diff --git a/CLAUDE.md b/CLAUDE.md index 539efcbe2..12ba1643f 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -81,7 +81,9 @@ This file provides guidance to Claude Code (claude.ai/code) when working with co - **S3 Storage Integration**: Compilation results include an `s3Key` property containing the cache key hash for S3 storage reference. Large results (>31KiB) can be stored in S3 and referenced by this key. The s3Key is removed from API responses before sending to users. - **Metrics & Statistics**: SQS workers track separate Prometheus metrics (`ce_sqs_compilations_total`, `ce_sqs_executions_total`, `ce_sqs_cmake_compilations_total`, `ce_sqs_cmake_executions_total`) and record compilation statistics via `statsNoter.noteCompilation` for Grafana monitoring, mirroring the regular API route behavior. -## CE Properties Wizard +## Configuration Management + +### CE Properties Wizard - **Location**: `/etc/scripts/ce-properties-wizard/` - Interactive tool for adding compilers to local CE installations - **Usage**: Run via `./run.sh` (Linux/macOS) or `.\run.ps1` (Windows) with optional compiler path and flags - **Auto-Detection**: Automatically detects compiler type, language, version, and configuration from executable paths @@ -94,6 +96,10 @@ This file provides guidance to Claude Code (claude.ai/code) when working with co - **Validation**: Integrates with `propscheck.py` and discovery validation to ensure configurations work - **Safe Operations**: Creates backups and preserves existing configurations, only adding new content +### Properties Validation +- **Propscheck Script**: Use `python3 etc/scripts/util/propscheck.py --config-dir etc/config --check-local` to validate all property files +- Run after modifying any `.properties` files to check for duplicates, misconfigurations, and other issues + ## Testing Guidelines - Use Vitest for unit tests (compatible with Jest syntax) - Tests are in the `/test` directory, typically named like the source files they test diff --git a/etc/config/assembly.amazon.properties b/etc/config/assembly.amazon.properties index fd2511cde..9b2626bd3 100644 --- a/etc/config/assembly.amazon.properties +++ b/etc/config/assembly.amazon.properties @@ -1,4 +1,4 @@ -compilers=&nasm:&gnuas:&llvmas:&ptxas:&gnuasarm:&gnuasarm64:&gnuasriscv:&beebasm +compilers=&nasm:&gnuas:&llvmas:&llvmasarm64:&ptxas:&gnuasarm:&gnuasarm64:&gnuasriscv:&beebasm compilerType=assembly objdumper=/opt/compiler-explorer/gcc-12.1.0/bin/objdump supportsBinary=true @@ -87,7 +87,7 @@ compiler.gnuasarm1510.name=ARM gcc 15.1 (linux) compiler.gnuasarm1510.semver=ARM binutils 2.45 -group.gnuasarm64.compilers=gnuasarm64g630:gnuasarm64g820:gnuasarm64g930:gnuasarm64g1020:gnuasarm64g1320:gnuasarm64g1510 +group.gnuasarm64.compilers=gnuasarm64g494:gnuasarm64g630:gnuasarm64g640:gnuasarm64g750:gnuasarm64g820:gnuasarm64g850:gnuasarm64g930:gnuasarm64g940:gnuasarm64g1020:gnuasarm64g1030:gnuasarm64g1100:gnuasarm64g1130:gnuasarm64g1210:gnuasarm64g1230:gnuasarm64g1310:gnuasarm64g1330:gnuasarm64g1410:gnuasarm64g1430:gnuasarm64g1510:gnuasarm64gtrunk group.gnuasarm64.versionFlag=--version group.gnuasarm64.options=-g group.gnuasarm64.isSemVer=true @@ -96,24 +96,67 @@ group.gnuasarm64.supportsExecute=false group.gnuasarm64.objdumper=/opt/compiler-explorer/arm64/gcc-13.2.0/aarch64-unknown-linux-gnu/aarch64-unknown-linux-gnu/bin/objdump group.gnuasarm64.instructionSet=aarch64 +compiler.gnuasarm64g494.exe=/opt/compiler-explorer/arm64/gcc-4.9.4/aarch64-unknown-linux-gnu/bin/aarch64-unknown-linux-gnu-as +compiler.gnuasarm64g494.name=AArch64 binutils 2.24 +compiler.gnuasarm64g494.semver=2.24 compiler.gnuasarm64g630.exe=/opt/compiler-explorer/arm64/gcc-6.3.0/aarch64-unknown-linux-gnueabi/bin/aarch64-unknown-linux-gnueabi-as compiler.gnuasarm64g630.name=AArch64 binutils 2.28 compiler.gnuasarm64g630.semver=2.28 +compiler.gnuasarm64g640.exe=/opt/compiler-explorer/arm64/gcc-6.4.0/aarch64-unknown-linux-gnu/bin/aarch64-unknown-linux-gnu-as +compiler.gnuasarm64g640.name=AArch64 binutils 2.29 +compiler.gnuasarm64g640.semver=2.29 +compiler.gnuasarm64g750.exe=/opt/compiler-explorer/arm64/gcc-7.5.0/aarch64-unknown-linux-gnu/bin/aarch64-unknown-linux-gnu-as +compiler.gnuasarm64g750.name=AArch64 binutils 2.30 +compiler.gnuasarm64g750.semver=2.30 compiler.gnuasarm64g820.exe=/opt/compiler-explorer/arm64/gcc-8.2.0/aarch64-unknown-linux-gnu/bin/aarch64-unknown-linux-gnu-as compiler.gnuasarm64g820.name=AArch64 binutils 2.31.1 compiler.gnuasarm64g820.semver=2.31.1 +compiler.gnuasarm64g850.exe=/opt/compiler-explorer/arm64/gcc-8.5.0/aarch64-unknown-linux-gnu/bin/aarch64-unknown-linux-gnu-as +compiler.gnuasarm64g850.name=AArch64 binutils 2.32 +compiler.gnuasarm64g850.semver=2.32 compiler.gnuasarm64g930.exe=/opt/compiler-explorer/arm64/gcc-9.3.0/aarch64-unknown-linux-gnu/bin/aarch64-unknown-linux-gnu-as compiler.gnuasarm64g930.name=AArch64 binutils 2.33.1 compiler.gnuasarm64g930.semver=2.33.1 +compiler.gnuasarm64g940.exe=/opt/compiler-explorer/arm64/gcc-9.4.0/aarch64-unknown-linux-gnu/bin/aarch64-unknown-linux-gnu-as +compiler.gnuasarm64g940.name=AArch64 binutils 2.34 +compiler.gnuasarm64g940.semver=2.34 compiler.gnuasarm64g1020.exe=/opt/compiler-explorer/arm64/gcc-10.2.0/aarch64-unknown-linux-gnu/bin/aarch64-unknown-linux-gnu-as compiler.gnuasarm64g1020.name=AArch64 binutils 2.35.1 compiler.gnuasarm64g1020.semver=2.35.1 -compiler.gnuasarm64g1320.exe=/opt/compiler-explorer/arm64/gcc-13.2.0/aarch64-unknown-linux-gnu/bin/aarch64-unknown-linux-gnu-as -compiler.gnuasarm64g1320.name=AArch64 binutils 2.38 -compiler.gnuasarm64g1320.semver=2.38 +compiler.gnuasarm64g1030.exe=/opt/compiler-explorer/arm64/gcc-10.3.0/aarch64-unknown-linux-gnu/bin/aarch64-unknown-linux-gnu-as +compiler.gnuasarm64g1030.name=AArch64 binutils 2.35.2 +compiler.gnuasarm64g1030.semver=2.35.2 +compiler.gnuasarm64g1100.exe=/opt/compiler-explorer/arm64/gcc-11.1.0/aarch64-unknown-linux-gnu/bin/aarch64-unknown-linux-gnu-as +compiler.gnuasarm64g1100.name=AArch64 binutils 2.36.1 +compiler.gnuasarm64g1100.semver=2.36.1 +compiler.gnuasarm64g1130.exe=/opt/compiler-explorer/arm64/gcc-11.3.0/aarch64-unknown-linux-gnu/bin/aarch64-unknown-linux-gnu-as +compiler.gnuasarm64g1130.name=AArch64 binutils 2.37 +compiler.gnuasarm64g1130.semver=2.37 +compiler.gnuasarm64g1210.exe=/opt/compiler-explorer/arm64/gcc-12.1.0/aarch64-unknown-linux-gnu/bin/aarch64-unknown-linux-gnu-as +compiler.gnuasarm64g1210.name=AArch64 binutils 2.38 +compiler.gnuasarm64g1210.semver=2.38 +compiler.gnuasarm64g1230.exe=/opt/compiler-explorer/arm64/gcc-12.3.0/aarch64-unknown-linux-gnu/bin/aarch64-unknown-linux-gnu-as +compiler.gnuasarm64g1230.name=AArch64 binutils 2.39 +compiler.gnuasarm64g1230.semver=2.39 +compiler.gnuasarm64g1310.exe=/opt/compiler-explorer/arm64/gcc-13.1.0/aarch64-unknown-linux-gnu/bin/aarch64-unknown-linux-gnu-as +compiler.gnuasarm64g1310.name=AArch64 binutils 2.40 +compiler.gnuasarm64g1310.semver=2.40 +compiler.gnuasarm64g1330.exe=/opt/compiler-explorer/arm64/gcc-13.3.0/aarch64-unknown-linux-gnu/bin/aarch64-unknown-linux-gnu-as +compiler.gnuasarm64g1330.name=AArch64 binutils 2.41 +compiler.gnuasarm64g1330.semver=2.41 +compiler.gnuasarm64g1410.exe=/opt/compiler-explorer/arm64/gcc-14.1.0/aarch64-unknown-linux-gnu/bin/aarch64-unknown-linux-gnu-as +compiler.gnuasarm64g1410.name=AArch64 binutils 2.42 +compiler.gnuasarm64g1410.semver=2.42 +compiler.gnuasarm64g1430.exe=/opt/compiler-explorer/arm64/gcc-14.3.0/aarch64-unknown-linux-gnu/bin/aarch64-unknown-linux-gnu-as +compiler.gnuasarm64g1430.name=AArch64 binutils 2.43 +compiler.gnuasarm64g1430.semver=2.43 compiler.gnuasarm64g1510.exe=/opt/compiler-explorer/arm64/gcc-15.1.0/aarch64-unknown-linux-gnu/bin/aarch64-unknown-linux-gnu-as compiler.gnuasarm64g1510.name=AArch64 binutils 2.45 compiler.gnuasarm64g1510.semver=2.45 +compiler.gnuasarm64gtrunk.exe=/opt/compiler-explorer/arm64/gcc-trunk/aarch64-unknown-linux-gnu/bin/aarch64-unknown-linux-gnu-as +compiler.gnuasarm64gtrunk.name=AArch64 binutils (trunk) +compiler.gnuasarm64gtrunk.semver=(trunk) +compiler.gnuasarm64gtrunk.isNightly=true # GNU as for RISC-V group.gnuasriscv.compilers=&gnuasriscv64:&gnuasriscv32 @@ -283,6 +326,54 @@ compiler.llvmas_assertions_trunk.objdumper=/opt/compiler-explorer/gcc-snapshot/b compiler.llvmas_assertions_trunk.semver=(assertions trunk) compiler.llvmas_assertions_trunk.isNightly=true +group.llvmasarm64.compilers=llvmasarm64_900:llvmasarm64_1000:llvmasarm64_1001:llvmasarm64_1100:llvmasarm64_1101:llvmasarm64_1200:llvmasarm64_1201:llvmasarm64_1300:llvmasarm64_1400:llvmasarm64_1500:llvmasarm64_1600:llvmasarm64_1701:llvmasarm64_1810:llvmasarm64_1910:llvmasarm64_2010:llvmasarm64_2110:llvmasarm64_trunk:llvmasarm64_assertions_trunk +group.llvmasarm64.versionFlag=--version +group.llvmasarm64.options=-triple=aarch64-linux-gnu -filetype=obj -o example.o +group.llvmasarm64.versionRe=LLVM version .* +group.llvmasarm64.isSemVer=true +group.llvmasarm64.baseName=AArch64 clang +group.llvmasarm64.instructionSet=aarch64 +compiler.llvmasarm64_900.exe=/opt/compiler-explorer/clang-9.0.0/bin/llvm-mc +compiler.llvmasarm64_900.semver=9.0.0 +compiler.llvmasarm64_1000.exe=/opt/compiler-explorer/clang-10.0.0/bin/llvm-mc +compiler.llvmasarm64_1000.semver=10.0.0 +compiler.llvmasarm64_1001.exe=/opt/compiler-explorer/clang-10.0.1/bin/llvm-mc +compiler.llvmasarm64_1001.semver=10.0.1 +compiler.llvmasarm64_1100.exe=/opt/compiler-explorer/clang-11.0.0/bin/llvm-mc +compiler.llvmasarm64_1100.semver=11.0.0 +compiler.llvmasarm64_1101.exe=/opt/compiler-explorer/clang-11.0.1/bin/llvm-mc +compiler.llvmasarm64_1101.semver=11.0.1 +compiler.llvmasarm64_1200.exe=/opt/compiler-explorer/clang-12.0.0/bin/llvm-mc +compiler.llvmasarm64_1200.semver=12.0.0 +compiler.llvmasarm64_1201.exe=/opt/compiler-explorer/clang-12.0.1/bin/llvm-mc +compiler.llvmasarm64_1201.semver=12.0.1 +compiler.llvmasarm64_1300.exe=/opt/compiler-explorer/clang-13.0.0/bin/llvm-mc +compiler.llvmasarm64_1300.semver=13.0.0 +compiler.llvmasarm64_1400.exe=/opt/compiler-explorer/clang-14.0.0/bin/llvm-mc +compiler.llvmasarm64_1400.semver=14.0.0 +compiler.llvmasarm64_1500.exe=/opt/compiler-explorer/clang-15.0.0/bin/llvm-mc +compiler.llvmasarm64_1500.semver=15.0.0 +compiler.llvmasarm64_1600.exe=/opt/compiler-explorer/clang-16.0.0/bin/llvm-mc +compiler.llvmasarm64_1600.semver=16.0.0 +compiler.llvmasarm64_1701.exe=/opt/compiler-explorer/clang-17.0.1/bin/llvm-mc +compiler.llvmasarm64_1701.semver=17.0.1 +compiler.llvmasarm64_1810.exe=/opt/compiler-explorer/clang-18.1.0/bin/llvm-mc +compiler.llvmasarm64_1810.semver=18.1.0 +compiler.llvmasarm64_1910.exe=/opt/compiler-explorer/clang-19.1.0/bin/llvm-mc +compiler.llvmasarm64_1910.semver=19.1.0 +compiler.llvmasarm64_2010.exe=/opt/compiler-explorer/clang-20.1.0/bin/llvm-mc +compiler.llvmasarm64_2010.semver=20.1.0 +compiler.llvmasarm64_2110.exe=/opt/compiler-explorer/clang-21.1.0/bin/llvm-mc +compiler.llvmasarm64_2110.semver=21.1.0 +compiler.llvmasarm64_trunk.exe=/opt/compiler-explorer/clang-trunk/bin/llvm-mc +compiler.llvmasarm64_trunk.objdumper=/opt/compiler-explorer/gcc-snapshot/bin/objdump +compiler.llvmasarm64_trunk.semver=(trunk) +compiler.llvmasarm64_trunk.isNightly=true +compiler.llvmasarm64_assertions_trunk.exe=/opt/compiler-explorer/clang-assertions-trunk/bin/llvm-mc +compiler.llvmasarm64_assertions_trunk.objdumper=/opt/compiler-explorer/gcc-snapshot/bin/objdump +compiler.llvmasarm64_assertions_trunk.semver=(assertions trunk) +compiler.llvmasarm64_assertions_trunk.isNightly=true + group.ptxas.compilers=ptxasnvcc128u1:ptxasnvcc126u2:ptxasnvcc126u1:ptxasnvcc125u1:ptxasnvcc124u1:ptxasnvcc123u1:ptxasnvcc122u1:ptxasnvcc121:ptxasnvcc120u1:ptxasnvcc120:ptxasnvcc118:ptxasnvcc117u1:ptxasnvcc117:ptxasnvcc116u2:ptxasnvcc116u1:ptxasnvcc115:ptxasnvcc114u1:ptxasnvcc114:ptxasnvcc113u1:ptxasnvcc113:ptxasnvcc112u2:ptxasnvcc112u1:ptxasnvcc112:ptxasnvcc111u1:ptxasnvcc111:ptxasnvcc11u1:ptxasnvcc11:ptxasnvcc102:ptxasnvcc101u2:ptxasnvcc101u1:ptxasnvcc101:ptxasnvcc100:ptxasnvcc92:ptxasnvcc91 group.ptxas.baseName=PTX Assembler group.ptxas.compilerType=ptxas