Skip to content

chore(build): pin xPack GCC 15.2.1 for CI and local builds#32

Open
AlexKlimaj wants to merge 1 commit into
ark-releasefrom
chore/gcc-15-toolchain
Open

chore(build): pin xPack GCC 15.2.1 for CI and local builds#32
AlexKlimaj wants to merge 1 commit into
ark-releasefrom
chore/gcc-15-toolchain

Conversation

@AlexKlimaj

Copy link
Copy Markdown
Member

Summary

  • Pin xPack GNU Arm Embedded GCC 15.2.1-1.1 in make/tools.mk (linux / macos / windows).
  • Rewrite make arm_sdk_install to download that pin from GitHub Releases (no longer depends on the ardupilot-hosted gcc 10.3 tools tarball staying in sync with ARM_SDK_PREFIX). Windows still pulls windows-tools.zip only for make utilities.
  • GitHub CI (CICD_build.yml, hwci.yml) installs/uses the same pin; hardware-CI requires the exact 15.2.1 path.
  • Fix checkDeviceInfo() for GCC 12+ -Warray-bounds so the tree builds under 15.2.

Bench (ark-release, noprop_smoke_95pct_3a, 3 A supply)

Toolchain hold95 Max CPU .text
gcc 10.3 (old pin) PASS ~39.4k RPM 84.2% 24104
gcc 14.2 PASS 83.9% 24092
gcc 15.2 PASS ~39.5k RPM 81.3% 23636 (−468 B)

Free-run steady CPU is essentially flat across compilers; 15.2 is mainly a size/toolchain hygiene win, not a free-run headroom miracle.

Test plan

  • make arm_sdk_install (linux) — installs or reports already present
  • make ARK_4IN1_F051 HWCI_PERF=1 with default pin — links as GCC 15.2.1
  • 95% no-prop / 3 A free-run hold on ARK 4IN1 stand
  • GitHub CI Build Linux workflow green (linux + windows matrix)
  • Optional: self-hosted hwci workflow once a runner has the new pin

…builds

Replace the ardupilot-hosted gcc 10.3 tools tarball with a version-pinned
xPack download from GitHub Releases so arm_sdk_install always matches
ARM_SDK_PREFIX. Fix checkDeviceInfo for GCC 12+ -Warray-bounds so the
firmware builds cleanly under 15.2.

Bench (ark-release, noprop 95% / 3 A): hold95 stable; ~0.5 KB less flash
than gcc 10.3; free-run CPU essentially unchanged.
@AlexKlimaj AlexKlimaj requested a review from dakejahl July 9, 2026 19:24

@dakejahl dakejahl left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yeah makes sense. We really need to be pinning the toolchains for all projects. I opened PX4 and Ardu PRs to do that... they didn't get merged

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants