Skip to content

Commit f322ad6

Browse files
authored
Use latest LLVM for musl builds (#916)
closes #829
1 parent 29c7b9a commit f322ad6

File tree

3 files changed

+8
-15
lines changed

3 files changed

+8
-15
lines changed

cpython-unix/build-tcl.sh

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -19,12 +19,14 @@ export PKG_CONFIG_PATH=${TOOLS_PATH}/deps/share/pkgconfig:${TOOLS_PATH}/deps/lib
1919
tar -xf tcl${TCL_VERSION}-src.tar.gz
2020
pushd tcl${TCL_VERSION}
2121

22+
EXTRA_CONFIGURE=
2223

2324
if [ -n "${STATIC}" ]; then
2425
if echo "${TARGET_TRIPLE}" | grep -q -- "-unknown-linux-musl"; then
25-
# tcl misbehaves when performing static musl builds
26-
# `checking whether musl-clang accepts -g...` fails with a duplicate definition error
27-
TARGET_TRIPLE="$(echo "${TARGET_TRIPLE}" | sed -e 's/-unknown-linux-musl/-unknown-linux-gnu/g')"
26+
# tcl will use an internal implementation of certain POSIX function when
27+
# cross-compiling. The implementation of strtoul create multiple definitions
28+
# when linked against the static musl libc. Exclude the internal implementation.
29+
EXTRA_CONFIGURE="${EXTRA_CONFIGURE} tcl_cv_strtoul_unbroken=ok"
2830
fi
2931

3032
patch -p1 << 'EOF'
@@ -59,7 +61,8 @@ CFLAGS="${CFLAGS}" CPPFLAGS="${CFLAGS}" LDFLAGS="${LDFLAGS}" ./configure \
5961
--host=${TARGET_TRIPLE} \
6062
--prefix=/tools/deps \
6163
--enable-shared"${STATIC:+=no}" \
62-
--enable-threads
64+
--enable-threads \
65+
${EXTRA_CONFIGURE}
6366

6467
make -j ${NUM_CPUS} DYLIB_INSTALL_DIR=@rpath
6568
make -j ${NUM_CPUS} install DESTDIR=${ROOT}/out DYLIB_INSTALL_DIR=@rpath

pythonbuild/downloads.py

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -176,12 +176,6 @@
176176
"licenses": ["MIT"],
177177
"license_file": "LICENSE.libxcb.txt",
178178
},
179-
"llvm-14-x86_64-linux": {
180-
"url": "https://github.com/indygreg/toolchain-tools/releases/download/toolchain-bootstrap%2F20220508/llvm-14.0.3+20220508-gnu_only-x86_64-unknown-linux-gnu.tar.zst",
181-
"size": 158614671,
182-
"sha256": "04cb77c660f09df017a57738ae9635ef23a506024789f2f18da1304b45af2023",
183-
"version": "14.0.3+20220508",
184-
},
185179
# Remember to update LLVM_URL in src/release.rs whenever upgrading.
186180
"llvm-21-aarch64-linux": {
187181
"url": "https://github.com/indygreg/toolchain-tools/releases/download/toolchain-bootstrap%2F20251029/llvm-21.1.4+20251029-gnu_only-aarch64-unknown-linux-gnu.tar.zst",

pythonbuild/utils.py

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -475,11 +475,7 @@ def sort_key(v):
475475

476476
def clang_toolchain(host_platform: str, target_triple: str) -> str:
477477
if host_platform == "linux_x86_64":
478-
# musl currently has issues with LLVM 15+.
479-
if "musl" in target_triple:
480-
return "llvm-14-x86_64-linux"
481-
else:
482-
return "llvm-21-x86_64-linux"
478+
return "llvm-21-x86_64-linux"
483479
elif host_platform == "linux_aarch64":
484480
return "llvm-21-aarch64-linux"
485481
elif host_platform == "macos_arm64":

0 commit comments

Comments
 (0)