diff --git a/ci-targets.yaml b/ci-targets.yaml index cd892ac9..b1f53aa8 100644 --- a/ci-targets.yaml +++ b/ci-targets.yaml @@ -256,6 +256,7 @@ linux: - "3.11" - "3.12" - "3.13" + - "3.14" build_options: - debug+static - noopt+static @@ -263,6 +264,13 @@ linux: - debug - noopt - lto + # freethreaded builds require mimalloc which is not available on musl yet + # build_options_conditional: + # - options: + # - freethreaded+debug + # - freethreaded+noopt + # - freethreaded+lto + # minimum-python-version: "3.13" run: true x86_64_v2-unknown-linux-musl: @@ -275,6 +283,7 @@ linux: - "3.11" - "3.12" - "3.13" + - "3.14" build_options: - debug+static - noopt+static @@ -282,6 +291,13 @@ linux: - debug - noopt - lto + # freethreaded builds require mimalloc which is not available on musl yet + # build_options_conditional: + # - options: + # - freethreaded+debug + # - freethreaded+noopt + # - freethreaded+lto + # minimum-python-version: "3.13" run: true x86_64_v3-unknown-linux-musl: @@ -294,6 +310,7 @@ linux: - "3.11" - "3.12" - "3.13" + - "3.14" build_options: - debug+static - noopt+static @@ -301,6 +318,13 @@ linux: - debug - noopt - lto + # freethreaded builds require mimalloc which is not available on musl yet + # build_options_conditional: + # - options: + # - freethreaded+debug + # - freethreaded+noopt + # - freethreaded+lto + # minimum-python-version: "3.13" run: true x86_64_v4-unknown-linux-musl: @@ -313,6 +337,7 @@ linux: - "3.11" - "3.12" - "3.13" + - "3.14" build_options: - debug+static - noopt+static @@ -320,6 +345,13 @@ linux: - debug - noopt - lto + # freethreaded builds require mimalloc which is not available on musl yet + # build_options_conditional: + # - options: + # - freethreaded+debug + # - freethreaded+noopt + # - freethreaded+lto + # minimum-python-version: "3.13" run: true windows: diff --git a/cpython-unix/build-cpython.sh b/cpython-unix/build-cpython.sh index 5e66f053..bd045e91 100755 --- a/cpython-unix/build-cpython.sh +++ b/cpython-unix/build-cpython.sh @@ -391,7 +391,7 @@ if [ "${CC}" = "musl-clang" ]; then # provided by musl. These are part of the include files that are part of clang. # But musl-clang eliminates them from the default include path. So copy them into # place. - for h in /tools/${TOOLCHAIN}/lib/clang/*/include/*intrin.h /tools/${TOOLCHAIN}/lib/clang/*/include/{__wmmintrin_aes.h,__wmmintrin_pclmul.h,mm_malloc.h}; do + for h in /tools/${TOOLCHAIN}/lib/clang/*/include/*intrin.h /tools/${TOOLCHAIN}/lib/clang/*/include/{__wmmintrin_aes.h,__wmmintrin_pclmul.h,mm_malloc.h,cpuid.h}; do filename=$(basename "$h") if [ -e "/tools/host/include/${filename}" ]; then echo "${filename} already exists; don't need to copy!" @@ -416,7 +416,7 @@ if [ -n "${CPYTHON_DEBUG}" ]; then fi # Explicitly enable mimalloc on 3.13+, it's already included by default but with this it'll fail -# if it's missing from the system. The MUSL builds do not supprt mimalloc yet. +# if it's missing from the system. The musl builds do not supprt mimalloc yet. if [[ -n "${PYTHON_MEETS_MINIMUM_VERSION_3_13}" && "${CC}" != "musl-clang" ]]; then CONFIGURE_FLAGS="${CONFIGURE_FLAGS} --with-mimalloc" fi @@ -974,7 +974,7 @@ s390x-unknown-linux-gnu) x86_64-unknown-linux-*) # In Python 3.13+, the musl target is identified in cross compiles and the output directory # is named accordingly. - if [ "${CC}" = "musl-clang" ] && [ "${PYTHON_MAJMIN_VERSION}" = "3.13" ]; then + if [[ "${CC}" = "musl-clang" && -n "${PYTHON_MEETS_MINIMUM_VERSION_3_13}" ]]; then PYTHON_ARCH="x86_64-linux-musl" else PYTHON_ARCH="x86_64-linux-gnu"