build: silence GCC -Wpsabi notes on 32-bit ARM NIF builds - #333
Merged
Conversation
Compiling the vector<int64_t> get_list/get_tuple helpers with GCC 9 on armv7l and armv6 emits "parameter passing ... changed in GCC 7.1" notes. They report the historic AAPCS ABI change and are harmless when the NIF is built with a single toolchain (always the case here), but GCC writes them to stderr so the Actions UI flags the otherwise-green job in red. Scope -Wno-psabi to 32-bit ARM (processor matches arm with a 4-byte pointer), leaving aarch64/arm64 and every other arch untouched. Verified against arm-linux-gnueabihf-g++ 9.4: the notes drop from 8/10 to 0.
cocoa-xu
marked this pull request as ready for review
July 20, 2026 13:39
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.
What
On 32-bit ARM (
armv7l,armv6), GCC emits-Wpsabinotes when compiling thestd::vector<int64_t>get_list/get_tuplehelpers in the NIF:These report the historic AAPCS ABI change introduced in GCC 7.1. They are harmless as long as the whole NIF is compiled with a single toolchain (always the case), but GCC writes them to stderr, so the Actions UI paints the otherwise-green precompile jobs with red
Error:annotations.Fix
Add
-Wno-psabito the evision target's warning flags, scoped to 32-bit ARM only:MATCHES "arm"coversarmv6/armv7l; the 4-byte-pointer clause excludesarm64;aarch64never matches the string. Every other arch is untouched.Validation
Reproduced against the exact CI compiler (
arm-linux-gnueabihf-g++ 9.4,ubuntu:20.04):-Wall -Wextra: 2 psabi notes per TU, exit 0 (never a hard error)-Wno-psabi: 0 notes, exit 0-Wno-psabireaches the compile line, full rebuild yields 0 notesarmv6/armv7lTRUE,aarch64FALSE,arm64excluded by the pointer-size clauseThe flag is accepted as a no-op by GCC 13/15 and Apple clang 17, so newer-toolchain and macOS builds are unaffected.
Opening as draft.