From 2c8a1ea6ccd6bfaeba2882b6078fcc78d29a0680 Mon Sep 17 00:00:00 2001 From: Chris Lu Date: Sat, 4 Apr 2026 14:25:00 -0700 Subject: [PATCH] fix(docker): disable glibc _FORTIFY_SOURCE for aarch64-musl cross builds When cross-compiling aws-lc-sys for aarch64-unknown-linux-musl using aarch64-linux-gnu-gcc, glibc's _FORTIFY_SOURCE generates calls to __memcpy_chk, __fprintf_chk etc. which don't exist in musl, causing linker errors. Disable it via CFLAGS_aarch64_unknown_linux_musl. --- .github/workflows/container_dev.yml | 2 ++ .github/workflows/container_latest.yml | 2 ++ .github/workflows/container_release_unified.yml | 2 ++ 3 files changed, 6 insertions(+) diff --git a/.github/workflows/container_dev.yml b/.github/workflows/container_dev.yml index 999c71727..4692238a2 100644 --- a/.github/workflows/container_dev.yml +++ b/.github/workflows/container_dev.yml @@ -41,6 +41,8 @@ jobs: run: | sudo apt-get install -y gcc-aarch64-linux-gnu echo "CARGO_TARGET_AARCH64_UNKNOWN_LINUX_MUSL_LINKER=aarch64-linux-gnu-gcc" >> "$GITHUB_ENV" + # Disable glibc fortify source — its __memcpy_chk etc. symbols don't exist in musl + echo "CFLAGS_aarch64_unknown_linux_musl=-U_FORTIFY_SOURCE" >> "$GITHUB_ENV" - name: Cache cargo registry and target uses: actions/cache@v5 diff --git a/.github/workflows/container_latest.yml b/.github/workflows/container_latest.yml index dc393db65..ab1179be7 100644 --- a/.github/workflows/container_latest.yml +++ b/.github/workflows/container_latest.yml @@ -92,6 +92,8 @@ jobs: run: | sudo apt-get install -y gcc-aarch64-linux-gnu echo "CARGO_TARGET_AARCH64_UNKNOWN_LINUX_MUSL_LINKER=aarch64-linux-gnu-gcc" >> "$GITHUB_ENV" + # Disable glibc fortify source — its __memcpy_chk etc. symbols don't exist in musl + echo "CFLAGS_aarch64_unknown_linux_musl=-U_FORTIFY_SOURCE" >> "$GITHUB_ENV" - name: Cache cargo registry and target uses: actions/cache@v5 diff --git a/.github/workflows/container_release_unified.yml b/.github/workflows/container_release_unified.yml index 8218aaba9..6c7e8e215 100644 --- a/.github/workflows/container_release_unified.yml +++ b/.github/workflows/container_release_unified.yml @@ -74,6 +74,8 @@ jobs: run: | sudo apt-get install -y gcc-aarch64-linux-gnu echo "CARGO_TARGET_AARCH64_UNKNOWN_LINUX_MUSL_LINKER=aarch64-linux-gnu-gcc" >> "$GITHUB_ENV" + # Disable glibc fortify source — its __memcpy_chk etc. symbols don't exist in musl + echo "CFLAGS_aarch64_unknown_linux_musl=-U_FORTIFY_SOURCE" >> "$GITHUB_ENV" - name: Cache cargo registry and target uses: actions/cache@v5