Skip to content

fix(native): build on aarch64 with musl#1665

Merged
jpnurmi merged 3 commits into
masterfrom
jpnurmi/fix/native-musl-aarch64
Apr 23, 2026
Merged

fix(native): build on aarch64 with musl#1665
jpnurmi merged 3 commits into
masterfrom
jpnurmi/fix/native-musl-aarch64

Conversation

@jpnurmi

@jpnurmi jpnurmi commented Apr 23, 2026

Copy link
Copy Markdown
Collaborator

Fixes the following compilation error on Alpine (MUSL) aarch64:

  [ 64%] Building C object CMakeFiles/sentry-crash.dir/src/backends/native/minidump/sentry_minidump_linux.c.o
  /src/src/backends/native/minidump/sentry_minidump_linux.c:52:8: error: redefinition of 'struct _aarch64_ctx'
     52 | struct _aarch64_ctx {
        |        ^~~~~~~~~~~~
  In file included from /usr/include/signal.h:48,
                   from /src/include/sentry.h:180,
                   from /src/src/sentry_boot.h:40,
                   from /src/src/backends/native/minidump/sentry_minidump_linux.c:1:
  /usr/include/bits/signal.h:29:8: note: originally defined here
     29 | struct _aarch64_ctx {
        |        ^~~~~~~~~~~~
  /src/src/backends/native/minidump/sentry_minidump_linux.c:58:8: error: redefinition of 'struct fpsimd_context'
     58 | struct fpsimd_context {
        |        ^~~~~~~~~~~~~~
  /usr/include/bits/signal.h:33:8: note: originally defined here
     33 | struct fpsimd_context {
        |        ^~~~~~~~~~~~~~
  gmake[3]: *** [CMakeFiles/sentry-crash.dir/build.make:751: CMakeFiles/sentry-crash.dir/src/backends/native/minidump/sentry_minidump_linux.c.o] Error 1
  gmake[2]: *** [CMakeFiles/Makefile2:170: CMakeFiles/sentry-crash.dir/all] Error 2

jpnurmi and others added 2 commits April 23, 2026 10:22
The local _aarch64_ctx and fpsimd_context fallbacks in
sentry_minidump_linux.c were gated only on __ASM_SIGCONTEXT_H, which is
the include guard for glibc's <asm/sigcontext.h>. musl declares the same
structs inline in <bits/signal.h> (pulled in by <signal.h>) without ever
defining that guard, so the fallback fired and broke the aarch64 musl
build with a redefinition error. Gate the fallback on __GLIBC__ as well
so it only emits on glibc, where it's needed.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@jpnurmi jpnurmi changed the title fix(native): build on musl aarch64 fix(native): build on aarch64 with musl Apr 23, 2026
@jpnurmi jpnurmi requested a review from mujacica April 23, 2026 08:39
@jpnurmi jpnurmi merged commit 429efd2 into master Apr 23, 2026
96 of 97 checks passed
@jpnurmi jpnurmi deleted the jpnurmi/fix/native-musl-aarch64 branch April 23, 2026 10:43
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.

3 participants