diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 8d394373..0218d937 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -55,7 +55,6 @@ jobs: ("aarch64", "ubuntu-24.04-arm", ("manylinux2014", "manylinux_2_28", "manylinux_2_34", "musllinux_1_2")), ("i686", "ubuntu-24.04", ("manylinux2014", "musllinux_1_2")), ("armv7l", "ubuntu-24.04-arm", ("manylinux_2_31", "musllinux_1_2")), - ("s390x", "ubuntu-24.04", ("musllinux_1_2",)), ] expanded = [{"policy": policy, "platform": platform, "runner": runner} for platform, runner, policies in reduced for policy in policies] print(json.dumps(expanded, indent=2)) @@ -83,10 +82,6 @@ jobs: with: fetch-depth: 50 - - name: Set up QEMU - if: matrix.platform == 's390x' - uses: docker/setup-qemu-action@v3 - - name: Set up Docker Buildx uses: docker/setup-buildx-action@v3 diff --git a/.travis.yml b/.travis.yml index 93133e86..752b3e0b 100644 --- a/.travis.yml +++ b/.travis.yml @@ -38,6 +38,8 @@ jobs: env: POLICY="manylinux_2_34" PLATFORM="s390x" - arch: ppc64le env: POLICY="manylinux_2_34" PLATFORM="ppc64le" + - arch: s390x + env: POLICY="musllinux_1_2" PLATFORM="s390x" - arch: ppc64le env: POLICY="musllinux_1_2" PLATFORM="ppc64le" diff --git a/docker/build_scripts/build-cpython.sh b/docker/build_scripts/build-cpython.sh index 39e99720..2454e5c4 100755 --- a/docker/build_scripts/build-cpython.sh +++ b/docker/build_scripts/build-cpython.sh @@ -36,6 +36,7 @@ pushd "Python-${CPYTHON_VERSION}" PREFIX="/opt/_internal/cpython-${CPYTHON_VERSION}" mkdir -p "${PREFIX}/lib" CFLAGS_EXTRA="" +LDFLAGS_EXTRA="" CONFIGURE_ARGS=(--disable-shared --with-ensurepip=no) if [ "${4:-}" == "nogil" ]; then @@ -77,11 +78,17 @@ if [ "${AUDITWHEEL_ARCH}" == "x86_64" ] && echo | gcc -S -x c -v - 2>&1 | grep ' export EXTRA_CFLAGS="-mtune=generic -march=x86-64" fi +if [ "${BASE_POLICY}" == "musllinux" ]; then + STACK_SIZE=0x200000 + CFLAGS_EXTRA="${CFLAGS_EXTRA} -DTHREAD_STACK_SIZE=${STACK_SIZE}" + LDFLAGS_EXTRA="${LDFLAGS_EXTRA} -Wl,-z,stack-size=${STACK_SIZE}" +fi + # configure with hardening options only for the interpreter & stdlib C extensions # do not change the default for user built extension (yet?) ./configure \ CFLAGS_NODIST="${MANYLINUX_CFLAGS} ${MANYLINUX_CPPFLAGS} ${CFLAGS_EXTRA}" \ - LDFLAGS_NODIST="${MANYLINUX_LDFLAGS}" \ + LDFLAGS_NODIST="${MANYLINUX_LDFLAGS} ${LDFLAGS_EXTRA}" \ "--prefix=${PREFIX}" "${CONFIGURE_ARGS[@]}" > /dev/null make > /dev/null make install > /dev/null