Skip to content

Commit

Permalink
Bug 1800150 - Use the clang-trunk-based wasi sysroot on the toolchain…
Browse files Browse the repository at this point in the history
…s branch. r=firefox-build-system-reviewers,ahochheiden

And because it's built against clang-trunk, it needs the same patch as
compiler-rt-wasi.

Differential Revision: https://phabricator.services.mozilla.com/D161838
  • Loading branch information
glandium committed Nov 10, 2022
1 parent 2398868 commit bbec452
Show file tree
Hide file tree
Showing 4 changed files with 35 additions and 26 deletions.
9 changes: 8 additions & 1 deletion taskcluster/ci/toolchain/sysroot.yml
Original file line number Diff line number Diff line change
Expand Up @@ -68,7 +68,10 @@ sysroot-wasm32-wasi-clang-15:
symbol: TL(sysroot-wasi-15)
run:
script: build-sysroot-wasi.sh
toolchain-alias: sysroot-wasm32-wasi
toolchain-alias:
by-project:
toolchains: null
default: sysroot-wasm32-wasi
toolchain-artifact: public/build/sysroot-wasm32-wasi.tar.zst
fetches:
fetch:
Expand All @@ -85,6 +88,10 @@ sysroot-wasm32-wasi-clang-trunk:
symbol: TL(sysroot-wasi-trunk)
run:
script: build-sysroot-wasi.sh
toolchain-alias:
by-project:
toolchains: sysroot-wasm32-wasi
default: null
toolchain-artifact: public/build/sysroot-wasm32-wasi.tar.zst
fetches:
fetch:
Expand Down
27 changes: 2 additions & 25 deletions taskcluster/scripts/misc/build-compiler-rt-wasi.sh
Original file line number Diff line number Diff line change
Expand Up @@ -4,34 +4,11 @@ set -x -e -v
artifact=$(basename $TOOLCHAIN_ARTIFACT)
dir=${artifact%.tar.*}

patch -d $MOZ_FETCHES_DIR/wasi-sdk -p1 < $(dirname $0)/wasi-sdk.patch

cd $MOZ_FETCHES_DIR/wasi-sdk
LLVM_PROJ_DIR=$MOZ_FETCHES_DIR/llvm-project

# Apply patch from https://github.com/WebAssembly/wasi-libc/pull/344.
patch -p1 <<'EOF'
diff --git a/src/wasi-libc/Makefile b/src/wasi-libc/Makefile
index 44acdee..6e01bed 100644
--- a/src/wasi-libc/Makefile
+++ b/src/wasi-libc/Makefile
@@ -556,6 +556,8 @@ check-symbols: startup_files libc
-U__clang_version__ \
-U__clang_literal_encoding__ \
-U__clang_wide_literal_encoding__ \
+ -U__wasm_mutable_globals__ \
+ -U__wasm_sign_ext__ \
-U__GNUC__ \
-U__GNUC_MINOR__ \
-U__GNUC_PATCHLEVEL__ \
@@ -565,6 +567,7 @@ check-symbols: startup_files libc
-U__BITINT_MAXWIDTH__ \
-U__FLT_EVAL_METHOD__ -Wno-builtin-macro-redefined \
| sed -e 's/__[[:upper:][:digit:]]*_ATOMIC_\([[:upper:][:digit:]_]*\)_LOCK_FREE/__compiler_ATOMIC_\1_LOCK_FREE/' \
+ | sed -e 's/__GNUC_VA_LIST $$/__GNUC_VA_LIST 1/' \
| grep -v '^#define __FLT16_' \
| grep -v '^#define __\(BOOL\|INT_\(LEAST\|FAST\)\(8\|16\|32\|64\)\|INT\|LONG\|LLONG\|SHRT\)_WIDTH__' \
> "$(SYSROOT_SHARE)/predefined-macros.txt"
EOF

mkdir -p build/install/wasi
# The wasi-sdk build system wants to build clang itself. We trick it into
# thinking it did, and put our own clang where it would have built its own.
Expand Down
2 changes: 2 additions & 0 deletions taskcluster/scripts/misc/build-sysroot-wasi.sh
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,8 @@ set -x -e -v
artifact=$(basename $TOOLCHAIN_ARTIFACT)
sysroot=${artifact%.tar.*}

patch -d $MOZ_FETCHES_DIR/wasi-sdk -p1 < $(dirname $0)/wasi-sdk.patch

cd $MOZ_FETCHES_DIR/wasi-sdk
LLVM_PROJ_DIR=$MOZ_FETCHES_DIR/llvm-project

Expand Down
23 changes: 23 additions & 0 deletions taskcluster/scripts/misc/wasi-sdk.patch
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
Patch from https://github.com/WebAssembly/wasi-libc/pull/344.

diff --git a/src/wasi-libc/Makefile b/src/wasi-libc/Makefile
index 44acdee..6e01bed 100644
--- a/src/wasi-libc/Makefile
+++ b/src/wasi-libc/Makefile
@@ -556,6 +556,8 @@ check-symbols: startup_files libc
-U__clang_version__ \
-U__clang_literal_encoding__ \
-U__clang_wide_literal_encoding__ \
+ -U__wasm_mutable_globals__ \
+ -U__wasm_sign_ext__ \
-U__GNUC__ \
-U__GNUC_MINOR__ \
-U__GNUC_PATCHLEVEL__ \
@@ -565,6 +567,7 @@ check-symbols: startup_files libc
-U__BITINT_MAXWIDTH__ \
-U__FLT_EVAL_METHOD__ -Wno-builtin-macro-redefined \
| sed -e 's/__[[:upper:][:digit:]]*_ATOMIC_\([[:upper:][:digit:]_]*\)_LOCK_FREE/__compiler_ATOMIC_\1_LOCK_FREE/' \
+ | sed -e 's/__GNUC_VA_LIST $$/__GNUC_VA_LIST 1/' \
| grep -v '^#define __FLT16_' \
| grep -v '^#define __\(BOOL\|INT_\(LEAST\|FAST\)\(8\|16\|32\|64\)\|INT\|LONG\|LLONG\|SHRT\)_WIDTH__' \
> "$(SYSROOT_SHARE)/predefined-macros.txt"

0 comments on commit bbec452

Please sign in to comment.