mirror of
https://github.com/archlinuxarm/PKGBUILDs.git
synced 2025-02-16 23:57:11 +00:00
removed extra/js78
This commit is contained in:
parent
60fd93e0b0
commit
b49b970bc5
6 changed files with 0 additions and 5239 deletions
|
@ -1,103 +0,0 @@
|
|||
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
||||
From: "Jan Alexander Steffens (heftig)" <jan.steffens@gmail.com>
|
||||
Date: Tue, 17 Nov 2020 22:45:47 +0100
|
||||
Subject: [PATCH] Fixes for LTO+PGO support
|
||||
|
||||
Cherry-picked from Firefox Nightly.
|
||||
---
|
||||
build/moz.configure/lto-pgo.configure | 7 +++++--
|
||||
config/makefiles/rust.mk | 21 +++++++++++++++++----
|
||||
2 files changed, 22 insertions(+), 6 deletions(-)
|
||||
|
||||
diff --git a/build/moz.configure/lto-pgo.configure b/build/moz.configure/lto-pgo.configure
|
||||
index 366c6691f7d1..e5342a037ee9 100644
|
||||
--- a/build/moz.configure/lto-pgo.configure
|
||||
+++ b/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 a/config/makefiles/rust.mk b/config/makefiles/rust.mk
|
||||
index f4475054f897..f19dfbc72fad 100644
|
||||
--- a/config/makefiles/rust.mk
|
||||
+++ b/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
|
||||
@@ -195,10 +197,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)
|
||||
@@ -312,17 +323,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)
|
File diff suppressed because one or more lines are too long
File diff suppressed because it is too large
Load diff
File diff suppressed because one or more lines are too long
|
@ -1,147 +0,0 @@
|
|||
# Maintainer: Jan Alexander Steffens (heftig) <heftig@archlinux.org>
|
||||
|
||||
# ALARM: Kevin Mihelich <kevin@archlinuxarm.org>
|
||||
# - configure with --disable-lto, --disable-rust-simd
|
||||
# - patch to fix build on ARM
|
||||
|
||||
pkgname=js78
|
||||
pkgver=78.15.0
|
||||
pkgrel=4
|
||||
pkgdesc="JavaScript interpreter and libraries - Version 78"
|
||||
arch=(x86_64)
|
||||
url="https://spidermonkey.dev/"
|
||||
license=(MPL)
|
||||
depends=(gcc-libs readline zlib sh)
|
||||
makedepends=(zip autoconf2.13 python-setuptools python-psutil rust llvm clang lld)
|
||||
checkdepends=(mercurial git)
|
||||
options=(!lto debug)
|
||||
_relver=${pkgver}esr
|
||||
source=(https://archive.mozilla.org/pub/firefox/releases/$_relver/source/firefox-$_relver.source.tar.xz{,.asc}
|
||||
0001-Fixes-for-LTO-PGO-support.patch
|
||||
0002-Fixes-for-Python-3.10.patch
|
||||
0003-Fixes-for-Rust-1.56.patch
|
||||
arm.patch)
|
||||
sha256sums=('a4438d84d95171a6d4fea9c9f02c2edbf0475a9c614d968ebe2eedc25a672151'
|
||||
'SKIP'
|
||||
'606ef0a2faeffd52cd3d4564146a95eef2b0e58e610d3af8d203753ed27e5a00'
|
||||
'b723277864c8afad1db007963f8e1090b352ced7bb312b2e7e2f11f448e8432d'
|
||||
'cb5f1a0551f55c12562c1f384e9d0a011dd13993039e65aa69b5345a5951af9f'
|
||||
'bc00516032330760444939c516a60c78f868631e1b37f075f0fe71a53737b966')
|
||||
validpgpkeys=('14F26682D0916CDD81E37B6D61B7B526D98F0353') # Mozilla Software Releases <release@mozilla.com>
|
||||
|
||||
# Make sure the duplication between bin and lib is found
|
||||
COMPRESSZST+=(--long)
|
||||
|
||||
prepare() {
|
||||
mkdir mozbuild
|
||||
cd firefox-$pkgver
|
||||
patch -p1 -i ../arm.patch
|
||||
|
||||
# Post-78 fixes to fix LTO with LLVM 11
|
||||
patch -Np1 -i ../0001-Fixes-for-LTO-PGO-support.patch
|
||||
|
||||
# Fix build with Python 3.10
|
||||
patch -Np1 -i ../0002-Fixes-for-Python-3.10.patch
|
||||
|
||||
# Fix build with Rust 1.56
|
||||
patch -Np1 -i ../0003-Fixes-for-Rust-1.56.patch
|
||||
|
||||
cat >../mozconfig <<END
|
||||
ac_add_options --enable-application=js
|
||||
mk_add_options MOZ_OBJDIR=${PWD@Q}/obj
|
||||
|
||||
ac_add_options --prefix=/usr
|
||||
ac_add_options --enable-release
|
||||
ac_add_options --enable-hardening
|
||||
ac_add_options --disable-lto
|
||||
ac_add_options --enable-optimize
|
||||
ac_add_options --disable-rust-simd
|
||||
ac_add_options --enable-linker=lld
|
||||
ac_add_options --disable-debug
|
||||
ac_add_options --disable-debug-symbols
|
||||
ac_add_options --disable-jemalloc
|
||||
ac_add_options --disable-strip
|
||||
|
||||
# System libraries
|
||||
ac_add_options --with-system-zlib
|
||||
ac_add_options --without-system-icu
|
||||
|
||||
# Features
|
||||
ac_add_options --enable-readline
|
||||
ac_add_options --enable-shared-js
|
||||
ac_add_options --enable-tests
|
||||
ac_add_options --with-intl-api
|
||||
END
|
||||
}
|
||||
|
||||
build() {
|
||||
cd firefox-$pkgver
|
||||
|
||||
export MOZ_NOSPAM=1
|
||||
export MOZBUILD_STATE_PATH="$srcdir/mozbuild"
|
||||
|
||||
# Do 3-tier PGO
|
||||
echo "Building instrumented JS..."
|
||||
cat >.mozconfig ../mozconfig - <<END
|
||||
ac_add_options --enable-profile-generate=cross
|
||||
END
|
||||
./mach build
|
||||
|
||||
echo "Profiling instrumented JS..."
|
||||
(
|
||||
local js="$PWD/obj/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..."
|
||||
./mach clobber
|
||||
|
||||
echo "Building optimized JS..."
|
||||
cat >.mozconfig ../mozconfig - <<END
|
||||
ac_add_options --enable-profile-use=cross
|
||||
ac_add_options --with-pgo-profile-path=${PWD@Q}/merged.profdata
|
||||
END
|
||||
./mach build
|
||||
}
|
||||
|
||||
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 sw=2 et:
|
|
@ -1,15 +0,0 @@
|
|||
https://bugzilla.mozilla.org/show_bug.cgi?id=1526653
|
||||
|
||||
diff --git a/js/src/wasm/WasmSignalHandlers.cpp.orig b/js/src/wasm/WasmSignalHandlers.cpp
|
||||
index 636537f..0f3461a 100644
|
||||
--- a/js/src/wasm/WasmSignalHandlers.cpp.orig
|
||||
+++ b/js/src/wasm/WasmSignalHandlers.cpp
|
||||
@@ -244,7 +244,7 @@ using mozilla::DebugOnly;
|
||||
// emulation here.
|
||||
|
||||
#if defined(__linux__) && defined(__arm__)
|
||||
-# define WASM_EMULATE_ARM_UNALIGNED_FP_ACCESS
|
||||
+//# define WASM_EMULATE_ARM_UNALIGNED_FP_ACCESS
|
||||
#endif
|
||||
|
||||
#ifdef WASM_EMULATE_ARM_UNALIGNED_FP_ACCESS
|
Loading…
Reference in a new issue