From d670cfc8f4430837a2de0d31f2990aabf686ae79 Mon Sep 17 00:00:00 2001 From: "jg.kim0724" Date: Fri, 27 Mar 2026 20:30:10 +0900 Subject: [PATCH] ci: add Alpine (musl + GCC + SIMDE_NO_NATIVE) to Cirrus CI 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 #1398. --- .cirrus.yml | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/.cirrus.yml b/.cirrus.yml index 460ae1706..922045239 100644 --- a/.cirrus.yml +++ b/.cirrus.yml @@ -1,6 +1,23 @@ container: image: debian:trixie-slim +task: + name: Alpine (musl + GCC + SIMDE_NO_NATIVE) + skip: $BRANCH == "master" || ($BRANCH != 'ci/cirrus' && $BRANCH =~ '^ci/.+') + container: + image: alpine:latest + env: + CC: gcc + CXX: g++ + install_dependencies_script: + - apk add --no-cache build-base meson ninja python3 + configure_script: + - meson setup build -Dc_args="-DSIMDE_NO_NATIVE -Wextra -Werror" -Dcpp_args="-DSIMDE_NO_NATIVE -Wextra -Werror" + build_script: + - ninja -C build -v -j 3 + test_script: + - ninja -C build -v test + task: name: Sanitizers skip: $BRANCH == "master" || ($BRANCH != 'ci/cirrus' && $BRANCH =~ '^ci/.+')