Bug 1569370 - add mozconfig fragments for declaring wasm sandboxing bits; r=firefox-build-system-reviewers,rstewart

This patch is not ideal: if would be better to do the defaulting in
`toolkit/moz.configure`, but doing it there runs into problems with base
toolchain configurations, as the clang there is not new enough.  So we
have this, doing everything with environment variables, which is easily
turned on or off, depending on the needs of the specific configuration.

The `mozconfig.no-compile` change is not really needed, as the wasm
sandboxing detection bits are not conditional on
`--enable-compile-environment`.  Those bits should be, and I will tackle
doing that after the holidays.

Differential Revision: https://phabricator.services.mozilla.com/D58102

--HG--
extra : moz-landing-system : lando
This commit is contained in:
Nathan Froyd 2019-12-24 04:27:01 +00:00
Родитель 9b65f62ce1
Коммит 52c254b0e6
14 изменённых файлов: 36 добавлений и 0 удалений

Просмотреть файл

@ -9,6 +9,7 @@ MOZ_REQUIRE_SIGNING=0
ac_add_options "MOZ_ALLOW_LEGACY_EXTENSIONS=1"
. $topsrcdir/build/mozconfig.stylo
. $topsrcdir/build/mozconfig.wasm-sandboxing
# ASan specific options on Linux
ac_add_options --enable-valgrind

Просмотреть файл

@ -1,6 +1,7 @@
# This file is sourced by the nightly, beta, and release mozconfigs.
. $topsrcdir/build/mozconfig.stylo
. $topsrcdir/build/mozconfig.wasm-sandboxing
ac_add_options --enable-update-channel=${MOZ_UPDATE_CHANNEL}
ac_add_options --with-google-location-service-api-keyfile=/builds/gls-gapi.data

Просмотреть файл

@ -1,6 +1,7 @@
ac_add_options --enable-debug
. $topsrcdir/build/mozconfig.stylo
. $topsrcdir/build/mozconfig.wasm-sandboxing
MOZ_AUTOMATION_L10N_CHECK=0

Просмотреть файл

@ -4,6 +4,7 @@ ac_add_options --enable-debug
ac_add_options --enable-optimize="-O1"
. $topsrcdir/build/mozconfig.stylo
. $topsrcdir/build/mozconfig.wasm-sandboxing
# ASan specific options on Linux
ac_add_options --enable-valgrind

Просмотреть файл

@ -1,6 +1,7 @@
ac_add_options --enable-debug
. $topsrcdir/build/mozconfig.stylo
. $topsrcdir/build/mozconfig.wasm-sandboxing
MOZ_AUTOMATION_L10N_CHECK=0

Просмотреть файл

@ -8,6 +8,7 @@ MOZ_AUTOMATION_CHECK=0
ac_add_options --enable-debug
. $topsrcdir/build/mozconfig.stylo
. $topsrcdir/build/mozconfig.wasm-sandboxing
# Use Clang as specified in manifest
export CC="$MOZ_FETCHES_DIR/clang/bin/clang"

Просмотреть файл

@ -7,6 +7,7 @@ MOZ_AUTOMATION_L10N_CHECK=0
ac_add_options --enable-debug
. $topsrcdir/build/mozconfig.stylo
. $topsrcdir/build/mozconfig.wasm-sandboxing
# Use Clang as specified in manifest
export CC="$MOZ_FETCHES_DIR/clang/bin/clang"

Просмотреть файл

@ -3,6 +3,7 @@ ac_add_options --disable-debug
ac_add_options --enable-optimize="-O2 -gline-tables-only"
. $topsrcdir/build/mozconfig.stylo
. $topsrcdir/build/mozconfig.wasm-sandboxing
# ASan specific options on Linux
ac_add_options --enable-valgrind

Просмотреть файл

@ -8,6 +8,7 @@ MOZ_REQUIRE_SIGNING=0
ac_add_options "MOZ_ALLOW_LEGACY_EXTENSIONS=1"
. $topsrcdir/build/mozconfig.stylo
. $topsrcdir/build/mozconfig.wasm-sandboxing
# ASan specific options on Linux
ac_add_options --enable-valgrind

Просмотреть файл

@ -1,6 +1,12 @@
export TOOLTOOL_DIR="$topsrcdir"
export LLVM_CONFIG="${MOZ_FETCHES_DIR}/clang/bin/llvm-config"
export WASM_SANDBOXED_LIBRARIES=graphite
export LUCETC="${MOZ_FETCHES_DIR}/lucetc/lucetc"
export WASI_SYSROOT="${MOZ_FETCHES_DIR}/wasi-sysroot/share/wasi-sysroot"
export WASM_CC="${MOZ_FETCHES_DIR}/clang/bin/clang --target=wasm32-wasi"
export WASM_CXX="${MOZ_FETCHES_DIR}/clang/bin/clang++ --target=wasm32-wasi"
CARGO="${MOZ_FETCHES_DIR}/rustc/bin/cargo"
RUSTC="${MOZ_FETCHES_DIR}/rustc/bin/rustc"
RUSTDOC="${MOZ_FETCHES_DIR}/rustc/bin/rustdoc"

Просмотреть файл

@ -3,6 +3,7 @@ ac_add_options --disable-debug
ac_add_options --enable-optimize="-O2 -gline-tables-only"
. $topsrcdir/build/mozconfig.stylo
. $topsrcdir/build/mozconfig.wasm-sandboxing
. $topsrcdir/build/unix/mozconfig.tsan
ac_add_options --disable-elf-hack

Просмотреть файл

@ -38,3 +38,9 @@ unset AR
unset NM
unset RANLIB
unset NASM
unset WASM_SANDBOXED_LIBRARIES
unset WASM_CC
unset WASM_CXX
unset LUCETC
unset WASI_SYSROOT

Просмотреть файл

@ -0,0 +1,13 @@
# Tell the build system about bits to build sandboxed wasm libraries.
case "$PERFHERDER_EXTRA_OPTIONS" in
base-toolchains*)
# Clang versions < 8.0 don't support wasm.
;;
*)
export WASM_SANDBOXED_LIBRARIES=graphite
export WASM_CC="${MOZ_FETCHES_DIR}/clang/bin/clang --target=wasm32-wasi"
export WASM_CXX="${MOZ_FETCHES_DIR}/clang/bin/clang++ --target=wasm32-wasi"
export LUCETC="${MOZ_FETCHES_DIR}/lucetc/lucetc"
export WASI_SYSROOT="${MOZ_FETCHES_DIR}/wasi-sysroot/share/wasi-sysroot"
;;
esac

Просмотреть файл

@ -1774,6 +1774,7 @@ def wasm_sandboxing_libraries():
return ('graphite',)
option('--with-wasm-sandboxed-libraries',
env='WASM_SANDBOXED_LIBRARIES',
help='Enable wasm sandboxing for the selected libraries',
nargs='+',
choices=dependable(wasm_sandboxing_libraries))