fix(arm32): use %progbits in .note.GNU-stack section directive#149
Merged
Conversation
@progbits is silently dropped on ARM because @ is the line-comment character in ARM assembler syntax, leaving `.section .note.GNU-stack,""` followed by an unrecognized comma — the assembler errors out with "junk at end of line, first unrecognized character is `,`". Switch to %progbits, which works on every supported architecture and matches what the same file already does on the other two .section directives (.note.crashpad.info and .rodata) above. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Adds a "Linux Arm32 (gcc-arm-linux-gnueabihf)" row that runs on ubuntu-24.04-arm and cross-compiles to armhf via the gcc-arm-linux-gnueabihf toolchain. The arm64 runner is used because its default apt sources point at ports.ubuntu.com, which serves armhf multiarch packages directly — no sources.list surgery needed, just `dpkg --add-architecture armhf` plus the cross-toolchain and armhf runtime dev libs. This catches arm-specific assembler / preprocessor breakages in the client-side code (such as the .note.GNU-stack `@progbits` regression that this branch also fixes) before they reach downstream consumers. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Existing matrix had no native Linux Arm64 coverage. Add GCC and clang rows on ubuntu-24.04-arm so arm64-specific build issues (which x86 builds wouldn't catch) get a CI signal. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
CRASHPAD_ENABLE_STACKTRACE=ON triggers a pkg_check_modules call for libunwind-ptrace. The .pc file lives in /usr/lib/arm-linux-gnueabihf/ pkgconfig once libunwind-dev:armhf is installed, but pkg-config's default search path on the arm64 runner is the host's /usr/lib/aarch64-linux-gnu/pkgconfig and misses it. Set PKG_CONFIG_LIBDIR via GITHUB_ENV from the install step so subsequent build steps inherit it; using PKG_CONFIG_LIBDIR (not PKG_CONFIG_PATH) also prevents accidentally linking host-arch libs into the cross binary. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
supervacuus
approved these changes
Apr 21, 2026
jpnurmi
added a commit
to getsentry/sentry-native
that referenced
this pull request
Apr 21, 2026
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.
@progbitsis silently dropped on ARM because@is the line-comment character in ARM assembler syntax, leaving.section .note.GNU-stack,""followed by an unrecognized comma — the assembler errors out with "junk at end of line, first unrecognized character is,".Switch to
%progbits, which works on every supported architecture and matches what the same file already does on the other two.sectiondirectives above:crashpad/client/crashpad_info_note.S
Line 34 in cd92de7
crashpad/client/crashpad_info_note.S
Line 56 in cd92de7