[arch-commits] Commit in js78/repos/extra-x86_64 (4 files)
Jan Steffens
heftig at archlinux.org
Tue Nov 17 22:40:45 UTC 2020
Date: Tuesday, November 17, 2020 @ 22:40:45
Author: heftig
Revision: 401330
archrelease: copy trunk to extra-x86_64
Added:
js78/repos/extra-x86_64/PKGBUILD
(from rev 401329, js78/trunk/PKGBUILD)
js78/repos/extra-x86_64/lto-pgo.diff
(from rev 401329, js78/trunk/lto-pgo.diff)
Deleted:
js78/repos/extra-x86_64/PKGBUILD
js78/repos/extra-x86_64/lto-pgo.diff
--------------+
PKGBUILD | 246 ++++++++++++++++++++++++++++-----------------------------
lto-pgo.diff | 184 +++++++++++++++++++++---------------------
2 files changed, 215 insertions(+), 215 deletions(-)
Deleted: PKGBUILD
===================================================================
--- PKGBUILD 2020-11-17 22:40:32 UTC (rev 401329)
+++ PKGBUILD 2020-11-17 22:40:45 UTC (rev 401330)
@@ -1,123 +0,0 @@
-# Maintainer: Jan Alexander Steffens (heftig) <heftig at archlinux.org>
-
-pkgname=js78
-pkgver=78.4.1
-pkgrel=1
-pkgdesc="JavaScript interpreter and libraries - Version 78"
-arch=(x86_64)
-url="https://developer.mozilla.org/en-US/docs/Mozilla/Projects/SpiderMonkey"
-license=(MPL)
-depends=(gcc-libs readline zlib sh)
-makedepends=(zip autoconf2.13 python-setuptools python-psutil rust llvm clang lld)
-checkdepends=(mercurial git)
-_relver=${pkgver}esr
-source=(https://archive.mozilla.org/pub/firefox/releases/$_relver/source/firefox-$_relver.source.tar.xz{,.asc}
- lto-pgo.diff)
-sha256sums=('1978eedd975b1cf95bd4a04b2381560d1ad9a4223032717f23fac26e3458a760'
- 'SKIP'
- '7b3d631c20a8de8d0bfd4de77e8ebeffa0bd0aa536abed713c36931ea4810926')
-validpgpkeys=('14F26682D0916CDD81E37B6D61B7B526D98F0353') # Mozilla Software Releases <release at mozilla.com>
-
-# Make sure the duplication between bin and lib is found
-COMPRESSZST+=(--long)
-
-prepare() {
- cd firefox-$pkgver
- mkdir obj
-
- # Post-78 fixes to fix LTO with LLVM 11
- patch -Np1 -i ../lto-pgo.diff
-}
-
-build() {
- local configure_args=(
- --prefix=/usr
- --disable-debug
- --disable-debug-symbols
- --disable-jemalloc
- --disable-strip
- --enable-hardening
- --enable-linker=lld
- --enable-optimize
- --enable-readline
- --enable-release
- --enable-rust-simd
- --enable-shared-js
- --enable-tests
- --with-intl-api
- --with-system-zlib
- --without-system-icu
- )
-
- export CC='clang --target=x86_64-unknown-linux-gnu'
- export CXX='clang++ --target=x86_64-unknown-linux-gnu'
- export AR=llvm-ar
- export NM=llvm-nm
- export RANLIB=llvm-ranlib
-
- cd firefox-$pkgver/obj
-
- # Do 3-tier PGO
- echo "Building instrumented JS..."
- sh ../js/src/configure "${configure_args[@]}" \
- --enable-profile-generate=cross
- make
-
- echo "Profiling instrumented JS..."
- (
- local js="$PWD/dist/bin/js"
- export LLVM_PROFILE_FILE="$PWD/js-%p-%m.profraw"
-
- cd ../js/src/octane
- "$js" run.js
-
- cd ../../../third_party/webkit/PerformanceTests/ARES-6
- "$js" cli.js
-
- cd ../SunSpider/sunspider-0.9.1
- "$js" sunspider-standalone-driver.js
- )
-
- llvm-profdata merge -o merged.profdata *.profraw
-
- stat -c "Profile data found (%s bytes)" merged.profdata
- test -s merged.profdata
-
- echo "Removing instrumented JS..."
- make clobber
-
- echo "Building optimized JS..."
- sh ../js/src/configure "${configure_args[@]}" \
- --enable-lto=cross \
- --enable-profile-use=cross \
- --with-pgo-profile-path="$PWD/merged.profdata"
- make
-}
-
-check() {
- local jstests_extra_args=(
- --format=none
- --exclude-random
- --wpt=disabled
- ) jittest_extra_args=(
- --format=none
- --timeout 300
- ) jittest_test_args=(
- basic
- )
-
- cd firefox-$pkgver/obj
- make -C js/src check-jstests check-jit-test \
- JSTESTS_EXTRA_ARGS="${jstests_extra_args[*]}" \
- JITTEST_EXTRA_ARGS="${jittest_extra_args[*]}" \
- JITTEST_TEST_ARGS="${jittest_test_args[*]}"
-}
-
-package() {
- cd firefox-$pkgver/obj
- make DESTDIR="$pkgdir" install
- rm "$pkgdir"/usr/lib/*.ajs
- find "$pkgdir"/usr/{lib/pkgconfig,include} -type f -exec chmod -c a-x {} +
-}
-
-# vim:set ts=2 sw=2 et:
Copied: js78/repos/extra-x86_64/PKGBUILD (from rev 401329, js78/trunk/PKGBUILD)
===================================================================
--- PKGBUILD (rev 0)
+++ PKGBUILD 2020-11-17 22:40:45 UTC (rev 401330)
@@ -0,0 +1,123 @@
+# Maintainer: Jan Alexander Steffens (heftig) <heftig at archlinux.org>
+
+pkgname=js78
+pkgver=78.5.0
+pkgrel=1
+pkgdesc="JavaScript interpreter and libraries - Version 78"
+arch=(x86_64)
+url="https://developer.mozilla.org/en-US/docs/Mozilla/Projects/SpiderMonkey"
+license=(MPL)
+depends=(gcc-libs readline zlib sh)
+makedepends=(zip autoconf2.13 python-setuptools python-psutil rust llvm clang lld)
+checkdepends=(mercurial git)
+_relver=${pkgver}esr
+source=(https://archive.mozilla.org/pub/firefox/releases/$_relver/source/firefox-$_relver.source.tar.xz{,.asc}
+ lto-pgo.diff)
+sha256sums=('51f54ff608aa09de07b304307581ae89112781597322b8999b3099cfabf48290'
+ 'SKIP'
+ '7b3d631c20a8de8d0bfd4de77e8ebeffa0bd0aa536abed713c36931ea4810926')
+validpgpkeys=('14F26682D0916CDD81E37B6D61B7B526D98F0353') # Mozilla Software Releases <release at mozilla.com>
+
+# Make sure the duplication between bin and lib is found
+COMPRESSZST+=(--long)
+
+prepare() {
+ cd firefox-$pkgver
+ mkdir obj
+
+ # Post-78 fixes to fix LTO with LLVM 11
+ patch -Np1 -i ../lto-pgo.diff
+}
+
+build() {
+ local configure_args=(
+ --prefix=/usr
+ --disable-debug
+ --disable-debug-symbols
+ --disable-jemalloc
+ --disable-strip
+ --enable-hardening
+ --enable-linker=lld
+ --enable-optimize
+ --enable-readline
+ --enable-release
+ --enable-rust-simd
+ --enable-shared-js
+ --enable-tests
+ --with-intl-api
+ --with-system-zlib
+ --without-system-icu
+ )
+
+ export CC='clang --target=x86_64-unknown-linux-gnu'
+ export CXX='clang++ --target=x86_64-unknown-linux-gnu'
+ export AR=llvm-ar
+ export NM=llvm-nm
+ export RANLIB=llvm-ranlib
+
+ cd firefox-$pkgver/obj
+
+ # Do 3-tier PGO
+ echo "Building instrumented JS..."
+ sh ../js/src/configure "${configure_args[@]}" \
+ --enable-profile-generate=cross
+ make
+
+ echo "Profiling instrumented JS..."
+ (
+ local js="$PWD/dist/bin/js"
+ export LLVM_PROFILE_FILE="$PWD/js-%p-%m.profraw"
+
+ cd ../js/src/octane
+ "$js" run.js
+
+ cd ../../../third_party/webkit/PerformanceTests/ARES-6
+ "$js" cli.js
+
+ cd ../SunSpider/sunspider-0.9.1
+ "$js" sunspider-standalone-driver.js
+ )
+
+ llvm-profdata merge -o merged.profdata *.profraw
+
+ stat -c "Profile data found (%s bytes)" merged.profdata
+ test -s merged.profdata
+
+ echo "Removing instrumented JS..."
+ make clobber
+
+ echo "Building optimized JS..."
+ sh ../js/src/configure "${configure_args[@]}" \
+ --enable-lto=cross \
+ --enable-profile-use=cross \
+ --with-pgo-profile-path="$PWD/merged.profdata"
+ make
+}
+
+check() {
+ local jstests_extra_args=(
+ --format=none
+ --exclude-random
+ --wpt=disabled
+ ) jittest_extra_args=(
+ --format=none
+ --timeout 300
+ ) jittest_test_args=(
+ basic
+ )
+
+ cd firefox-$pkgver/obj
+ make -C js/src check-jstests check-jit-test \
+ JSTESTS_EXTRA_ARGS="${jstests_extra_args[*]}" \
+ JITTEST_EXTRA_ARGS="${jittest_extra_args[*]}" \
+ JITTEST_TEST_ARGS="${jittest_test_args[*]}"
+}
+
+package() {
+ cd firefox-$pkgver/obj
+ make DESTDIR="$pkgdir" install
+ rm "$pkgdir"/usr/lib/*.ajs
+ find "$pkgdir"/usr/{lib/pkgconfig,include} -type f -exec chmod -c a-x {} +
+}
+
+# vim:set ts=2 sw=2 et:
Deleted: lto-pgo.diff
===================================================================
--- lto-pgo.diff 2020-11-17 22:40:32 UTC (rev 401329)
+++ lto-pgo.diff 2020-11-17 22:40:45 UTC (rev 401330)
@@ -1,92 +0,0 @@
-diff --git i/build/moz.configure/lto-pgo.configure w/build/moz.configure/lto-pgo.configure
-index 366c6691f7d1..e5342a037ee9 100644
---- i/build/moz.configure/lto-pgo.configure
-+++ w/build/moz.configure/lto-pgo.configure
-@@ -229,7 +229,10 @@ def lto(value, c_compiler, ld64_known_good, target, instrumented_build):
- # instruction sets.
- else:
- num_cores = multiprocessing.cpu_count()
-- cflags.append("-flto")
-+ if len(value) and value[0].lower() == 'full':
-+ cflags.append("-flto")
-+ else:
-+ cflags.append("-flto=thin")
- cflags.append("-flifetime-dse=1")
-
- ldflags.append("-flto=%s" % num_cores)
-@@ -258,6 +261,6 @@ set_config('MOZ_LTO', lto.enabled)
- set_define('MOZ_LTO', lto.enabled)
- set_config('MOZ_LTO_CFLAGS', lto.cflags)
- set_config('MOZ_LTO_LDFLAGS', lto.ldflags)
--set_config('MOZ_LTO_RUST', lto.rust_lto)
-+set_config('MOZ_LTO_RUST_CROSS', lto.rust_lto)
- add_old_configure_assignment('MOZ_LTO_CFLAGS', lto.cflags)
- add_old_configure_assignment('MOZ_LTO_LDFLAGS', lto.ldflags)
-diff --git i/config/makefiles/rust.mk w/config/makefiles/rust.mk
-index b5c7973104ce..079408b358ed 100644
---- i/config/makefiles/rust.mk
-+++ w/config/makefiles/rust.mk
-@@ -59,17 +59,19 @@ cargo_rustc_flags = $(CARGO_RUSTCFLAGS)
- ifndef DEVELOPER_OPTIONS
- ifndef MOZ_DEBUG_RUST
- # Enable link-time optimization for release builds, but not when linking
--# gkrust_gtest.
-+# gkrust_gtest. And not when doing cross-language LTO.
-+ifndef MOZ_LTO_RUST_CROSS
- ifeq (,$(findstring gkrust_gtest,$(RUST_LIBRARY_FILE)))
- cargo_rustc_flags += -Clto
- endif
- # Versions of rust >= 1.45 need -Cembed-bitcode=yes for all crates when
- # using -Clto.
- ifeq (,$(filter 1.38.% 1.39.% 1.40.% 1.41.% 1.42.% 1.43.% 1.44.%,$(RUSTC_VERSION)))
- RUSTFLAGS += -Cembed-bitcode=yes
- endif
- endif
- endif
-+endif
-
- ifdef CARGO_INCREMENTAL
- export CARGO_INCREMENTAL
-@@ -185,10 +187,19 @@ target_rust_ltoable := force-cargo-library-build
- target_rust_nonltoable := force-cargo-test-run force-cargo-library-check $(foreach b,build check,force-cargo-program-$(b))
-
- ifdef MOZ_PGO_RUST
--rust_pgo_flags := $(if $(MOZ_PROFILE_GENERATE),-C profile-generate=$(topobjdir)) $(if $(MOZ_PROFILE_USE),-C profile-use=$(PGO_PROFILE_PATH))
-+ifdef MOZ_PROFILE_GENERATE
-+rust_pgo_flags := -C profile-generate=$(topobjdir)
-+# The C compiler may be passed extra llvm flags for PGO that we also want to pass to rust as well.
-+# In PROFILE_GEN_CFLAGS, they look like "-mllvm foo", and we want "-C llvm-args=foo", so first turn
-+# "-mllvm foo" into "-mllvm:foo" so that it becomes a unique argument, that we can then filter for,
-+# excluding other flags, and then turn into the right string.
-+rust_pgo_flags += $(patsubst -mllvm:%,-C llvm-args=%,$(filter -mllvm:%,$(subst -mllvm ,-mllvm:,$(PROFILE_GEN_CFLAGS))))
-+else # MOZ_PROFILE_USE
-+rust_pgo_flags := -C profile-use=$(PGO_PROFILE_PATH)
-+endif
- endif
-
--$(target_rust_ltoable): RUSTFLAGS:=$(rustflags_override) $(rustflags_sancov) $(RUSTFLAGS) $(if $(MOZ_LTO_RUST),-Clinker-plugin-lto) $(rust_pgo_flags)
-+$(target_rust_ltoable): RUSTFLAGS:=$(rustflags_override) $(rustflags_sancov) $(RUSTFLAGS) $(if $(MOZ_LTO_RUST_CROSS),-Clinker-plugin-lto) $(rust_pgo_flags)
- $(target_rust_nonltoable): RUSTFLAGS:=$(rustflags_override) $(rustflags_sancov) $(RUSTFLAGS)
-
- TARGET_RECIPES := $(target_rust_ltoable) $(target_rust_nonltoable)
-@@ -302,17 +313,19 @@ $(RUST_LIBRARY_FILE): force-cargo-library-build
- # When we are building in --enable-release mode; we add an additional check to confirm
- # that we are not importing any networking-related functions in rust code. This reduces
- # the chance of proxy bypasses originating from rust code.
--# The check only works when rust code is built with -Clto.
-+# The check only works when rust code is built with -Clto but without MOZ_LTO_RUST_CROSS.
- # Sanitizers and sancov also fail because compiler-rt hooks network functions.
- ifndef MOZ_PROFILE_GENERATE
- ifeq ($(OS_ARCH), Linux)
- ifeq (,$(rustflags_sancov)$(MOZ_ASAN)$(MOZ_TSAN)$(MOZ_UBSAN))
-+ifndef MOZ_LTO_RUST_CROSS
- ifneq (,$(filter -Clto,$(cargo_rustc_flags)))
- $(call py_action,check_binary,--target --networking $@)
- endif
- endif
- endif
- endif
-+endif
-
- force-cargo-library-check:
- $(call CARGO_CHECK) --lib $(cargo_target_flag) $(rust_features_flag)
Copied: js78/repos/extra-x86_64/lto-pgo.diff (from rev 401329, js78/trunk/lto-pgo.diff)
===================================================================
--- lto-pgo.diff (rev 0)
+++ lto-pgo.diff 2020-11-17 22:40:45 UTC (rev 401330)
@@ -0,0 +1,92 @@
+diff --git i/build/moz.configure/lto-pgo.configure w/build/moz.configure/lto-pgo.configure
+index 366c6691f7d1..e5342a037ee9 100644
+--- i/build/moz.configure/lto-pgo.configure
++++ w/build/moz.configure/lto-pgo.configure
+@@ -229,7 +229,10 @@ def lto(value, c_compiler, ld64_known_good, target, instrumented_build):
+ # instruction sets.
+ else:
+ num_cores = multiprocessing.cpu_count()
+- cflags.append("-flto")
++ if len(value) and value[0].lower() == 'full':
++ cflags.append("-flto")
++ else:
++ cflags.append("-flto=thin")
+ cflags.append("-flifetime-dse=1")
+
+ ldflags.append("-flto=%s" % num_cores)
+@@ -258,6 +261,6 @@ set_config('MOZ_LTO', lto.enabled)
+ set_define('MOZ_LTO', lto.enabled)
+ set_config('MOZ_LTO_CFLAGS', lto.cflags)
+ set_config('MOZ_LTO_LDFLAGS', lto.ldflags)
+-set_config('MOZ_LTO_RUST', lto.rust_lto)
++set_config('MOZ_LTO_RUST_CROSS', lto.rust_lto)
+ add_old_configure_assignment('MOZ_LTO_CFLAGS', lto.cflags)
+ add_old_configure_assignment('MOZ_LTO_LDFLAGS', lto.ldflags)
+diff --git i/config/makefiles/rust.mk w/config/makefiles/rust.mk
+index b5c7973104ce..079408b358ed 100644
+--- i/config/makefiles/rust.mk
++++ w/config/makefiles/rust.mk
+@@ -59,17 +59,19 @@ cargo_rustc_flags = $(CARGO_RUSTCFLAGS)
+ ifndef DEVELOPER_OPTIONS
+ ifndef MOZ_DEBUG_RUST
+ # Enable link-time optimization for release builds, but not when linking
+-# gkrust_gtest.
++# gkrust_gtest. And not when doing cross-language LTO.
++ifndef MOZ_LTO_RUST_CROSS
+ ifeq (,$(findstring gkrust_gtest,$(RUST_LIBRARY_FILE)))
+ cargo_rustc_flags += -Clto
+ endif
+ # Versions of rust >= 1.45 need -Cembed-bitcode=yes for all crates when
+ # using -Clto.
+ ifeq (,$(filter 1.38.% 1.39.% 1.40.% 1.41.% 1.42.% 1.43.% 1.44.%,$(RUSTC_VERSION)))
+ RUSTFLAGS += -Cembed-bitcode=yes
+ endif
+ endif
+ endif
++endif
+
+ ifdef CARGO_INCREMENTAL
+ export CARGO_INCREMENTAL
+@@ -185,10 +187,19 @@ target_rust_ltoable := force-cargo-library-build
+ target_rust_nonltoable := force-cargo-test-run force-cargo-library-check $(foreach b,build check,force-cargo-program-$(b))
+
+ ifdef MOZ_PGO_RUST
+-rust_pgo_flags := $(if $(MOZ_PROFILE_GENERATE),-C profile-generate=$(topobjdir)) $(if $(MOZ_PROFILE_USE),-C profile-use=$(PGO_PROFILE_PATH))
++ifdef MOZ_PROFILE_GENERATE
++rust_pgo_flags := -C profile-generate=$(topobjdir)
++# The C compiler may be passed extra llvm flags for PGO that we also want to pass to rust as well.
++# In PROFILE_GEN_CFLAGS, they look like "-mllvm foo", and we want "-C llvm-args=foo", so first turn
++# "-mllvm foo" into "-mllvm:foo" so that it becomes a unique argument, that we can then filter for,
++# excluding other flags, and then turn into the right string.
++rust_pgo_flags += $(patsubst -mllvm:%,-C llvm-args=%,$(filter -mllvm:%,$(subst -mllvm ,-mllvm:,$(PROFILE_GEN_CFLAGS))))
++else # MOZ_PROFILE_USE
++rust_pgo_flags := -C profile-use=$(PGO_PROFILE_PATH)
++endif
+ endif
+
+-$(target_rust_ltoable): RUSTFLAGS:=$(rustflags_override) $(rustflags_sancov) $(RUSTFLAGS) $(if $(MOZ_LTO_RUST),-Clinker-plugin-lto) $(rust_pgo_flags)
++$(target_rust_ltoable): RUSTFLAGS:=$(rustflags_override) $(rustflags_sancov) $(RUSTFLAGS) $(if $(MOZ_LTO_RUST_CROSS),-Clinker-plugin-lto) $(rust_pgo_flags)
+ $(target_rust_nonltoable): RUSTFLAGS:=$(rustflags_override) $(rustflags_sancov) $(RUSTFLAGS)
+
+ TARGET_RECIPES := $(target_rust_ltoable) $(target_rust_nonltoable)
+@@ -302,17 +313,19 @@ $(RUST_LIBRARY_FILE): force-cargo-library-build
+ # When we are building in --enable-release mode; we add an additional check to confirm
+ # that we are not importing any networking-related functions in rust code. This reduces
+ # the chance of proxy bypasses originating from rust code.
+-# The check only works when rust code is built with -Clto.
++# The check only works when rust code is built with -Clto but without MOZ_LTO_RUST_CROSS.
+ # Sanitizers and sancov also fail because compiler-rt hooks network functions.
+ ifndef MOZ_PROFILE_GENERATE
+ ifeq ($(OS_ARCH), Linux)
+ ifeq (,$(rustflags_sancov)$(MOZ_ASAN)$(MOZ_TSAN)$(MOZ_UBSAN))
++ifndef MOZ_LTO_RUST_CROSS
+ ifneq (,$(filter -Clto,$(cargo_rustc_flags)))
+ $(call py_action,check_binary,--target --networking $@)
+ endif
+ endif
+ endif
+ endif
++endif
+
+ force-cargo-library-check:
+ $(call CARGO_CHECK) --lib $(cargo_target_flag) $(rust_features_flag)
More information about the arch-commits
mailing list