Skip to content

Commit b276d1e

Browse files
committed
wasi-sdk: update to 29.
1 parent dbf198e commit b276d1e

File tree

6 files changed

+103
-215
lines changed

6 files changed

+103
-215
lines changed

srcpkgs/wasi-libc

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
wasi-sdk

srcpkgs/wasi-libc/patches/0001-iconv-fix-erroneous-input-validation-in-EUC-KR-decod.patch

Lines changed: 0 additions & 38 deletions
This file was deleted.

srcpkgs/wasi-libc/patches/0002-iconv-harden-UTF-8-output-code-path-against-input-de.patch

Lines changed: 0 additions & 37 deletions
This file was deleted.

srcpkgs/wasi-libc/template

Lines changed: 0 additions & 36 deletions
This file was deleted.
Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
--- a/cmake/wasi-sdk-sysroot.cmake
2+
+++ b/cmake/wasi-sdk-sysroot.cmake
3+
@@ -357,16 +357,7 @@
4+
add_dependencies(build build-${target})
5+
endforeach()
6+
7+
-# Install a `VERSION` file in the output prefix with a dump of version
8+
-# information.
9+
-execute_process(
10+
- COMMAND ${PYTHON} ${version_script} dump
11+
- WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
12+
- OUTPUT_VARIABLE version_dump)
13+
-set(version_file_tmp ${wasi_sysroot}/VERSION)
14+
-file(GENERATE OUTPUT ${version_file_tmp} CONTENT ${version_dump})
15+
-add_custom_target(version-file DEPENDS ${version_file_tmp})
16+
-add_dependencies(build version-file)
17+
+add_dependencies(build)
18+
19+
if(WASI_SDK_INCLUDE_TESTS)
20+
add_subdirectory(tests)
21+
--- a/CMakeLists.txt
22+
+++ b/CMakeLists.txt
23+
@@ -23,11 +23,8 @@
24+
find_program(PYTHON python3 python REQUIRED)
25+
26+
# Set some variables based on the `version.py` script
27+
-set(version_script ${CMAKE_CURRENT_SOURCE_DIR}/version.py)
28+
-execute_process(
29+
- COMMAND ${PYTHON} ${version_script}
30+
- OUTPUT_VARIABLE wasi_sdk_version
31+
- OUTPUT_STRIP_TRAILING_WHITESPACE)
32+
+option(WASI_SDK_VERSION "version")
33+
+set(wasi_sdk_version ${WASI_SDK_VERSION})
34+
35+
message(STATUS "wasi-sdk version is ${wasi_sdk_version}")
36+

srcpkgs/wasi-sdk/template

Lines changed: 66 additions & 104 deletions
Original file line numberDiff line numberDiff line change
@@ -1,157 +1,119 @@
11
# Template file for 'wasi-sdk'
22
pkgname=wasi-sdk
3-
version=28
3+
version=29
44
revision=1
5-
_llvmversion="21.1.4"
5+
_llvmversion="21.1.7"
66
_llvmver="${_llvmversion%%.*}"
7-
_wasi_sdk_ver=28
8-
build_wrksrc="llvm-project-${_llvmversion}.src"
7+
_wasi_libc_ref=ac020b8
8+
# build_wrksrc="llvm-project-${_llvmversion}.src"
99
build_style=cmake
10-
hostmakedepends="python3 clang${_llvmver} llvm${_llvmver} chroot-git ninja"
11-
makedepends="wasi-libc"
10+
hostmakedepends="python3 clang${_llvmver} llvm${_llvmver} lld${_llvmver} ninja
11+
wasm-component-ld"
1212
depends="wasi-libc wasi-libcxx wasi-compiler-rt"
1313
short_desc="WASI-enabled WebAssembly C/C++ toolchain"
1414
maintainer="Duncaen <[email protected]>"
1515
license="custom:Apache-2.0-with-llvm-exception"
1616
homepage="https://github.com/WebAssembly/wasi-sdk"
1717
distfiles="https://github.com/llvm/llvm-project/releases/download/llvmorg-${_llvmversion}/llvm-project-${_llvmversion}.src.tar.xz
18-
https://github.com/WebAssembly/wasi-sdk/archive/refs/tags/wasi-sdk-${version}.tar.gz"
19-
checksum="a01ad7e5167780c945871d75c0413081d12067607a6de5cf71dc3e8d1a82112c
20-
b3f724b32e7e50ea32664ca66e77ad16d82ca94e660a0e543766ef3c261c3054"
18+
https://github.com/WebAssembly/wasi-sdk/archive/refs/tags/wasi-sdk-${version}.tar.gz
19+
https://github.com/WebAssembly/wasi-libc/archive/${_wasi_libc_ref}.zip>wasi-libc-${_wasi_libc_ref}.tar.gz"
20+
checksum="e5b65fd79c95c343bb584127114cb2d252306c1ada1e057899b6aacdd445899e
21+
aba99b0d51e766751d6832d07fdd044a827845d7e9e337aacc2357247d0696e6
22+
e8023fb214b2183b724defed68c92b89616a1f434f18c7d4559338926bb16877"
2123

2224
nostrip=yes
2325

26+
skip_extraction="llvm-project-${_llvmversion}.src.tar.xz wasi-libc-${_wasi_libc_ref}.tar.gz"
27+
28+
conf_files="
29+
/etc/clang21/wasm32-unknown-wasi.cfg
30+
/etc/clang21/wasm32-unknown-wasi-threads.cfg"
31+
32+
33+
subpackages="wasi-compiler-rt wasi-libcxx wasi-libc" # subpackages need to be ordered right
34+
2435
export CMAKE_GENERATOR=Ninja
2536

2637
post_extract() {
27-
cp "wasi-sdk-wasi-sdk-${version}/wasi-sdk.cmake" "llvm-project-${_llvmversion}.src"/wasi-sdk.cmake
28-
cp -r "wasi-sdk-wasi-sdk-${version}/cmake/Platform" "llvm-project-${_llvmversion}.src"/cmake
38+
vsrcextract -C src/llvm-project "llvm-project-${_llvmversion}.src.tar.xz"
39+
vsrcextract -C src/wasi-libc "wasi-libc-${_wasi_libc_ref}.tar.gz"
40+
# cp "wasi-sdk-wasi-sdk-${version}/wasi-sdk.cmake" "llvm-project-${_llvmversion}.src"/wasi-sdk.cmake
41+
# cp -r "wasi-sdk-wasi-sdk-${version}/cmake/Platform" "llvm-project-${_llvmversion}.src"/cmake
2942
}
3043

31-
_configure_libcxx() {
32-
local target="$1"
33-
local destdir="$2"
34-
local want_threads="OFF"
35-
local extra_cflags=""
36-
37-
case "$target" in
38-
*-threads)
39-
want_threads="ON"
40-
extra_cflags="-pthread"
41-
;;
42-
esac
43-
44-
cmake -B "$destdir" -G Ninja -S runtimes -Wno-dev \
45-
-DLLVM_ENABLE_RUNTIMES="libcxx;libcxxabi" \
46-
-DLLVM_ENABLE_PER_TARGET_RUNTIME_DIR=ON \
47-
-DCMAKE_BUILD_TYPE=MinSizeRel \
48-
-DCMAKE_MODULE_PATH="${wrksrc}/${build_wrksrc}/cmake" \
49-
-DCMAKE_TOOLCHAIN_FILE="${wrksrc}/${build_wrksrc}/wasi-sdk.cmake" \
50-
-DCMAKE_C_COMPILER_WORKS=ON \
51-
-DCMAKE_CXX_COMPILER_WORKS=ON \
52-
-DCMAKE_C_FLAGS="$CFLAGS $extra_cflags --target=$target" \
53-
-DCMAKE_CXX_FLAGS="$CXXFLAGS $extra_cflags --target=$target" \
54-
-DCMAKE_ASM_COMPILER_TARGET="$target" \
55-
-DCMAKE_CXX_COMPILER_TARGET="$target" \
56-
-DCMAKE_C_COMPILER_TARGET="$target" \
57-
-DLLVM_DEFAULT_TARGET_TRIPLE="$target" \
58-
-DCMAKE_STAGING_PREFIX="${XBPS_CROSS_BASE}/usr/share/wasi-sysroot" \
59-
-DCXX_SUPPORTS_CXX11=ON \
60-
-DLIBCXX_ABI_VERSION=2 \
61-
-DLIBCXX_BUILD_EXTERNAL_THREAD_LIBRARY=OFF \
62-
-DLIBCXX_CXX_ABI=libcxxabi \
63-
-DLIBCXX_CXX_ABI_INCLUDE_PATHS=libcxxabi/include \
64-
-DLIBCXX_ENABLE_EXCEPTIONS=OFF \
65-
-DLIBCXX_ENABLE_EXPERIMENTAL_LIBRARY=OFF \
66-
-DLIBCXX_ENABLE_FILESYSTEM=OFF \
67-
-DLIBCXX_ENABLE_SHARED=OFF \
68-
-DLIBCXX_ENABLE_THREADS=$want_threads \
69-
-DLIBCXX_HAS_EXTERNAL_THREAD_API=OFF \
70-
-DLIBCXX_HAS_MUSL_LIBC=ON \
71-
-DLIBCXX_HAS_PTHREAD_API=$want_threads \
72-
-DLIBCXX_HAS_WIN32_THREAD_API=OFF \
73-
-DLIBCXX_INCLUDE_TESTS="$([ "$CHECK_PKGS" ] && echo ON || echo OFF)" \
74-
-DLIBCXXABI_BUILD_EXTERNAL_THREAD_LIBRARY=OFF \
75-
-DLIBCXXABI_ENABLE_EXCEPTIONS=OFF \
76-
-DLIBCXXABI_ENABLE_PIC=OFF \
77-
-DLIBCXXABI_ENABLE_SHARED=OFF \
78-
-DLIBCXXABI_ENABLE_THREADS=$want_threads \
79-
-DLIBCXXABI_HAS_EXTERNAL_THREAD_API=OFF \
80-
-DLIBCXXABI_HAS_PTHREAD_API=$want_threads \
81-
-DLIBCXXABI_HAS_WIN32_THREAD_API=OFF \
82-
-DLIBCXXABI_INCLUDE_TESTS="$([ "$CHECK_PKGS" ] && echo ON || echo OFF)" \
83-
-DLIBCXXABI_LIBCXX_INCLUDES="${wrksrc}/${build_wrksrc}/build-libcxx/include/c++/v1" \
84-
-DLIBCXXABI_LIBCXX_PATH=libcxx \
85-
-DLIBCXXABI_SILENT_TERMINATE:BOOL=ON \
86-
-DLIBCXXABI_USE_LLVM_UNWINDER=OFF \
87-
-DUNIX=ON \
88-
-DWASI_SDK_PREFIX=/usr \
89-
-DLIBCXX_INSTALL_INCLUDE_DIR=include/$target/c++/v1 \
90-
-DLIBCXX_INSTALL_INCLUDE_TARGET_DIR=include/$target/c++/v1 \
91-
-DLIBCXXABI_INSTALL_INCLUDE_DIR=include/$target/c++/v1
44+
post_patch() {
45+
# avoid building again at install step
46+
vsed -e 's/\(install:\) finish/\1/' -i src/wasi-libc/Makefile
9247
}
9348

94-
do_configure() {
95-
export CFLAGS="-O2 -fno-exceptions --sysroot=${XBPS_CROSS_BASE}/usr/share/wasi-sysroot"
96-
export CXXFLAGS="-O2 -fno-exceptions --sysroot=${XBPS_CROSS_BASE}/usr/share/wasi-sysroot"
97-
98-
_configure_libcxx wasm32-wasi build
99-
_configure_libcxx wasm32-wasi-threads build-threads
10049

101-
cmake -B build-compiler-rt -G Ninja -S compiler-rt -Wno-dev \
102-
-DCMAKE_BUILD_TYPE=MinSizeRel \
103-
-DCMAKE_MODULE_PATH="${wrksrc}/${build_wrksrc}/cmake" \
104-
-DCMAKE_TOOLCHAIN_FILE="${wrksrc}/${build_wrksrc}/wasi-sdk.cmake" \
50+
do_configure() {
51+
unset CFLAGS CXXFLAGS LDFLAGS
52+
cmake -G Ninja -B build -S . \
53+
-DCMAKE_INSTALL_PREFIX=build/install \
54+
-DCMAKE_TOOLCHAIN_FILE=${wrksrc}/wasi-sdk.cmake \
10555
-DCMAKE_C_COMPILER_WORKS=ON \
10656
-DCMAKE_CXX_COMPILER_WORKS=ON \
107-
-DCOMPILER_RT_BAREMETAL_BUILD=ON \
108-
-DCOMPILER_RT_INCLUDE_TESTS=OFF \
109-
-DCOMPILER_RT_HAS_FPIC_FLAG=OFF \
110-
-DCOMPILER_RT_DEFAULT_TARGET_ONLY=ON \
111-
-DCOMPILER_RT_OS_DIR=wasi \
11257
-DWASI_SDK_PREFIX=/usr \
113-
-DCMAKE_INSTALL_PREFIX="/usr/lib/llvm/${_llvmver}/lib/clang/${_llvmver}/"
58+
-DWASI_SDK_VERSION="${version}"
11459
}
11560

11661
do_build() {
117-
cmake --build build ${makejobs}
118-
cmake --build build-threads ${makejobs}
119-
cmake --build build-compiler-rt ${makejobs}
62+
unset CFLAGS CXXFLAGS LDFLAGS
63+
cmake --build build --target dist ${makejobs}
12064
}
12165

12266
do_install() {
123-
DESTDIR="$DESTDIR" cmake --install build-compiler-rt
124-
rm -r "$DESTDIR/usr/lib/llvm/${_llvmver}/lib/clang/${_llvmver}/include"
67+
vmkdir "usr/lib/llvm/${_llvmver}/lib/clang/${_llvmver}/lib"
68+
bsdtar -x -C "${DESTDIR}/usr/lib/llvm/${_llvmver}/lib/clang/${_llvmver}/lib" --strip-components 1 -f "build/dist/libclang_rt-${version}.tar.gz"
12569

126-
DESTDIR="$DESTDIR" cmake --install build
127-
mv -v "${DESTDIR}"/usr/share/wasi-sysroot/lib/wasm32-{unknown-,}wasi
128-
DESTDIR="$DESTDIR" cmake --install build-threads
129-
mv -v "${DESTDIR}"/usr/share/wasi-sysroot/lib/wasm32-{unknown-,}wasi-threads
70+
vmkdir usr/share/wasi-sysroot
71+
bsdtar -x -C "${DESTDIR}/usr/share/wasi-sysroot" --strip-components 1 -f "build/dist/wasi-sysroot-${version}.tar.gz"
13072

13173
mkdir -p "${DESTDIR}/etc/clang${_llvmver}"
13274
cat <<-EOF >"${DESTDIR}/etc/clang${_llvmver}/wasm32-unknown-wasi.cfg"
13375
--sysroot /usr/share/wasi-sysroot
13476
EOF
135-
ln -svf wasm32-unknown-wasi.cfg "${DESTDIR}/etc/clang$_llvmver/wasm32-unknown-wasi-threads.cfg"
136-
vlicense "../wasi-sdk-wasi-sdk-${version}/LICENSE"
77+
cat <<-EOF >"${DESTDIR}/etc/clang${_llvmver}/wasm32-unknown-wasi-threads.cfg"
78+
--sysroot /usr/share/wasi-sysroot
79+
EOF
80+
81+
vlicense LICENSE
13782
}
13883

13984
wasi-libcxx_package() {
14085
short_desc+=" - C++ standard library"
14186
nostrip=yes
14287
make_dirs="/usr/share/wasi-sysroot/include/c++/v1 0755 root root"
14388
pkg_install() {
144-
vmove usr/share/wasi-sysroot/include
145-
vmove usr/share/wasi-sysroot/share
146-
vmove usr/share/wasi-sysroot/lib/wasm32-wasi
147-
vmove usr/share/wasi-sysroot/lib/wasm32-wasi-threads
89+
vmove usr/share/wasi-sysroot/include/wasm32-wasi-threads/c++
90+
vmove usr/share/wasi-sysroot/include/wasm32-wasi/c++
91+
vmove usr/share/wasi-sysroot/include/wasm32-wasip1-threads/c++
92+
vmove usr/share/wasi-sysroot/include/wasm32-wasip1/c++
93+
vmove usr/share/wasi-sysroot/include/wasm32-wasip2/c++
94+
vmove usr/share/wasi-sysroot/lib/wasm32-wasi-threads/libc++.a
95+
vmove usr/share/wasi-sysroot/lib/wasm32-wasi-threads/libc++abi.a
96+
vmove usr/share/wasi-sysroot/lib/wasm32-wasi-threads/libc++experimental.a
97+
vmove usr/share/wasi-sysroot/lib/wasm32-wasi/libc++.a
98+
vmove usr/share/wasi-sysroot/lib/wasm32-wasi/libc++abi.a
99+
vmove usr/share/wasi-sysroot/lib/wasm32-wasi/libc++experimental.a
100+
vmove usr/share/wasi-sysroot/share/libc++
148101
}
149102
}
150103

151104
wasi-compiler-rt_package() {
152105
short_desc+=" - runtime libraries"
153106
nostrip=yes
154107
pkg_install() {
155-
vmove "usr/lib/llvm/${_llvmver}/lib/clang/${_llvmver}/lib/wasi/libclang_rt.builtins-wasm32.a"
108+
vmove "usr/lib/llvm/${_llvmver}/lib/clang/${_llvmver}/lib"
109+
}
110+
}
111+
112+
wasi-libc_package() {
113+
short_desc+=" - C standard library"
114+
nostrip=yes
115+
pkg_install() {
116+
vmove "usr/share/wasi-sysroot/include"
117+
vmove "usr/share/wasi-sysroot/lib"
156118
}
157119
}

0 commit comments

Comments
 (0)