Skip to content

ci: add Alpine (musl + GCC + SIMDE_NO_NATIVE) to Cirrus CI#1399

Closed
kjg0724 wants to merge 1 commit intosimd-everywhere:masterfrom
kjg0724:ci/alpine-musl-gcc
Closed

ci: add Alpine (musl + GCC + SIMDE_NO_NATIVE) to Cirrus CI#1399
kjg0724 wants to merge 1 commit intosimd-everywhere:masterfrom
kjg0724:ci/alpine-musl-gcc

Conversation

@kjg0724
Copy link
Copy Markdown

@kjg0724 kjg0724 commented Mar 27, 2026

Suggested during review of #1398.

Adds a Cirrus CI task that builds and tests SIMDE on Alpine Linux (musl libc) with GCC and SIMDE_NO_NATIVE.

This combination catches link errors caused by __builtin_roundeven being lowered to a roundeven() libm call on GCC 10+: musl lacks roundeven() (C23), so the linker error surfaces immediately. SIMDE_NO_NATIVE ensures the scalar path is taken even on x86-64 with SSE4.1, preventing GCC from inlining the builtin as a ROUNDSD instruction and masking the issue.

Add a Cirrus CI task that builds and tests SIMDE on Alpine Linux (musl
libc) with GCC and SIMDE_NO_NATIVE disabled.

This combination catches link errors caused by __builtin_roundeven being
lowered to a roundeven() libm call on GCC 10+: musl lacks roundeven()
(C23), so the linker error surfaces immediately. SIMDE_NO_NATIVE ensures
the scalar path is taken even on x86-64 with SSE4.1, preventing GCC from
inlining the builtin as a ROUNDSD instruction and masking the issue.

Suggested during review of simd-everywhere#1398.
@mr-c
Copy link
Copy Markdown
Collaborator

mr-c commented Mar 27, 2026

Thank you @kjg0724 for this PR and for demonstrating that this contribution identifies the linking issue. I'm going to close this PR and cherry-pick this commit into #1398

@mr-c mr-c closed this Mar 27, 2026
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