New package: mozjs102-102.5.0

This commit is contained in:
Michal Vasilek 2022-09-11 18:58:40 +02:00
parent 8b17c647c6
commit c5757115e2
24 changed files with 881 additions and 0 deletions

View File

@ -3491,6 +3491,7 @@ libmaxminddb.so.0 libmaxminddb-1.3.2_1
libmysqlpp.so.3 mysql++-3.2.5_1
libKF5Syndication.so.5 syndication-5.50.0_1
liblqr-1.so.0 liblqr-0.4.2_1
libmozjs-102.so.0 mozjs102-102.3.0_1
libmozjs-78.so.0 mozjs78-78.1.0_1
libmozjs-91.so.0 mozjs91-91.5.0_1
libebur128.so.1 libebur128-1.2.4_1

1
srcpkgs/mozjs102-devel Symbolic link
View File

@ -0,0 +1 @@
mozjs102

View File

@ -0,0 +1,26 @@
From d21c7cb9343d8c495d987e71be0f35887574c820 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Franti=C5=A1ek=20Zatloukal?= <fzatlouk@redhat.com>
Date: Wed, 15 Jul 2020 08:21:47 +0200
Subject: [PATCH] Add soname switch to linker, regardless of Operating System
Fix backported from Debian: http://bugs.debian.org/746705
---
config/rules.mk | 2 ++
1 file changed, 2 insertions(+)
diff --git a/config/rules.mk b/config/rules.mk
index 0f9b2ac..f6b4efe 100644
--- a/config/rules.mk
+++ b/config/rules.mk
@@ -285,6 +285,8 @@ ifeq ($(OS_ARCH),GNU)
OS_CPPFLAGS += -DPATH_MAX=1024 -DMAXPATHLEN=1024
endif
+EXTRA_DSO_LDOPTS += -Wl,-soname,lib$(JS_LIBRARY_NAME).so.0
+
#
# MINGW32
#
--
2.31.1

View File

@ -0,0 +1,38 @@
From 3b3c8e37cca418e07bdeceaf3a601805df28d925 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Franti=C5=A1ek=20Zatloukal?= <fzatlouk@redhat.com>
Date: Wed, 15 Jul 2020 08:27:39 +0200
Subject: [PATCH] build: Copy headers on install instead of symlinking
Patch by Philip Chimento ported forward to mozjs78
---
python/mozbuild/mozbuild/backend/recursivemake.py | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/python/mozbuild/mozbuild/backend/recursivemake.py b/python/mozbuild/mozbuild/backend/recursivemake.py
index d964466..0285ad9 100644
--- a/python/mozbuild/mozbuild/backend/recursivemake.py
+++ b/python/mozbuild/mozbuild/backend/recursivemake.py
@@ -1568,9 +1568,9 @@ class RecursiveMakeBackend(MakeBackend):
" of srcdir-relative or absolute paths."
)
- install_manifest.add_pattern_link(basepath, wild, dest_dir)
+ install_manifest.add_pattern_copy(basepath, wild, dest_dir)
else:
- install_manifest.add_pattern_link(f.srcdir, f, dest_dir)
+ install_manifest.add_pattern_copy(f.srcdir, f, dest_dir)
elif isinstance(f, AbsolutePath):
if not f.full_path.lower().endswith((".dll", ".pdb", ".so")):
raise Exception(
@@ -1581,7 +1581,7 @@ class RecursiveMakeBackend(MakeBackend):
install_manifest.add_optional_exists(dest_file)
absolute_files.append(f.full_path)
else:
- install_manifest.add_link(f.full_path, dest_file)
+ install_manifest.add_copy(f.full_path, dest_file)
else:
install_manifest.add_optional_exists(dest_file)
objdir_files.append(self._pretty_path(f, backend_file))
--
2.31.1

View File

@ -0,0 +1,26 @@
From 9be85b155c6df0454c5faef9e850f572c99e3615 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Franti=C5=A1ek=20Zatloukal?= <fzatlouk@redhat.com>
Date: Wed, 15 Jul 2020 08:32:44 +0200
Subject: [PATCH] Increase the test timeout for slower buildds
Ported forward from Debian: https://bugs.debian.org/878284
---
js/src/Makefile.in | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/js/src/Makefile.in b/js/src/Makefile.in
index b86aeed..d68655a 100644
--- a/js/src/Makefile.in
+++ b/js/src/Makefile.in
@@ -53,7 +53,7 @@ check:: check-js-msg
check-jstests:
$(wildcard $(RUN_TEST_PROGRAM)) $(PYTHON3) -u $(srcdir)/tests/jstests.py \
- --no-progress --format=automation --timeout 300 \
+ --no-progress --format=automation --timeout 600 \
$(JSTESTS_EXTRA_ARGS) \
$(DIST)/bin/$(JS_SHELL_NAME)$(BIN_SUFFIX)
--
2.26.2

View File

@ -0,0 +1,29 @@
From: Simon McVittie <smcv@debian.org>
Date: Mon, 9 Oct 2017 09:22:12 +0100
Subject: icu_sources_data.py: Decouple from Mozilla build system
mozpack.path is a wrapper around os.path that normalizes path
separators on Windows, but on Unix we only have one path separator
so there's nothing to normalize. Avoid needing to import all of it.
---
intl/icu_sources_data.py | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/intl/icu_sources_data.py b/intl/icu_sources_data.py
index 2936df9..4db52af 100644
--- a/intl/icu_sources_data.py
+++ b/intl/icu_sources_data.py
@@ -21,7 +21,9 @@ import subprocess
import sys
import tempfile
-from mozpack import path as mozpath
+# Close enough
+import os.path as mozpath
+mozpath.normsep = lambda p: p
# The following files have been determined to be dead/unused by a
# semi-automated analysis. You can just remove any of the files below
--
2.31.1

View File

@ -0,0 +1,44 @@
From: Simon McVittie <smcv@debian.org>
Date: Mon, 9 Oct 2017 09:23:14 +0100
Subject: icu_sources_data: Write command output to our stderr
Saying "See output in /tmp/foobar" is all very well for a developer
build, but on a buildd our /tmp is going to get thrown away after
the build. Just log the usual way instead.
---
intl/icu_sources_data.py | 16 ++++------------
1 file changed, 4 insertions(+), 12 deletions(-)
diff --git a/intl/icu_sources_data.py b/intl/icu_sources_data.py
index 4db52af..d62960d 100644
--- a/intl/icu_sources_data.py
+++ b/intl/icu_sources_data.py
@@ -188,21 +188,13 @@ def update_sources(topsrcdir):
def try_run(name, command, cwd=None, **kwargs):
try:
- with tempfile.NamedTemporaryFile(prefix=name, delete=False) as f:
- subprocess.check_call(
- command, cwd=cwd, stdout=f, stderr=subprocess.STDOUT, **kwargs
- )
- except subprocess.CalledProcessError:
- print(
- """Error running "{}" in directory {}
- See output in {}""".format(
- " ".join(command), cwd, f.name
- ),
- file=sys.stderr,
+ subprocess.check_call(
+ command, cwd=cwd, stdout=sys.stderr, stderr=subprocess.STDOUT, **kwargs
)
+ except subprocess.CalledProcessError:
+ print('''Error running "{}" in directory {}'''.format(' '.join(command), cwd), file=sys.stderr)
return False
else:
- os.unlink(f.name)
return True
--
2.31.1

View File

@ -0,0 +1,67 @@
From d1d785c169345b81c76213f6dd9be32b4db60294 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Franti=C5=A1ek=20Zatloukal?= <fzatlouk@redhat.com>
Date: Wed, 15 Jul 2020 08:39:47 +0200
Subject: [PATCH] Build: allow LOCAL_INCLUDES paths with topsrcdir or topobjdir
---
python/mozbuild/mozbuild/frontend/emitter.py | 10 ---------
.../mozbuild/test/frontend/test_emitter.py | 22 -------------------
2 files changed, 32 deletions(-)
diff --git a/python/mozbuild/mozbuild/frontend/emitter.py b/python/mozbuild/mozbuild/frontend/emitter.py
index 44b916e..f2e821d 100644
--- a/python/mozbuild/mozbuild/frontend/emitter.py
+++ b/python/mozbuild/mozbuild/frontend/emitter.py
@@ -1367,16 +1367,6 @@ class TreeMetadataEmitter(LoggingMixin):
"(resolved to %s)" % (local_include, full_path),
context,
)
- if (
- full_path == context.config.topsrcdir
- or full_path == context.config.topobjdir
- ):
- raise SandboxValidationError(
- "Path specified in LOCAL_INCLUDES "
- "(%s) resolves to the topsrcdir or topobjdir (%s), which is "
- "not allowed" % (local_include, full_path),
- context,
- )
include_obj = LocalInclude(context, local_include)
local_includes.append(include_obj.path.full_path)
yield include_obj
diff --git a/python/mozbuild/mozbuild/test/frontend/test_emitter.py b/python/mozbuild/mozbuild/test/frontend/test_emitter.py
index e53bc5e..c1b9d32 100644
--- a/python/mozbuild/mozbuild/test/frontend/test_emitter.py
+++ b/python/mozbuild/mozbuild/test/frontend/test_emitter.py
@@ -1098,28 +1098,6 @@ class TestEmitterBasic(unittest.TestCase):
self.assertEqual(local_includes, expected)
- def test_local_includes_invalid(self):
- """Test that invalid LOCAL_INCLUDES are properly detected."""
- reader = self.reader("local_includes-invalid/srcdir")
-
- with six.assertRaisesRegex(
- self,
- SandboxValidationError,
- "Path specified in LOCAL_INCLUDES.*resolves to the "
- "topsrcdir or topobjdir",
- ):
- self.read_topsrcdir(reader)
-
- reader = self.reader("local_includes-invalid/objdir")
-
- with six.assertRaisesRegex(
- self,
- SandboxValidationError,
- "Path specified in LOCAL_INCLUDES.*resolves to the "
- "topsrcdir or topobjdir",
- ):
- self.read_topsrcdir(reader)
-
def test_local_includes_file(self):
"""Test that a filename can't be used in LOCAL_INCLUDES."""
reader = self.reader("local_includes-filename")
--
2.31.1

View File

@ -0,0 +1,66 @@
From 1af9fdd2124547099eb0cf5a71b513ef5592dbf9 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Franti=C5=A1ek=20Zatloukal?= <fzatlouk@redhat.com>
Date: Tue, 10 Aug 2021 00:00:50 +0200
Subject: [PATCH] Tests: Use native TemporaryDirectory
Without ugly wrapper for Py < 3.2 that doesn't work half of the times...
---
js/src/jit-test/jit_test.py | 2 +-
js/src/tests/jstests.py | 2 +-
js/src/tests/lib/tempfile.py | 17 +----------------
3 files changed, 3 insertions(+), 18 deletions(-)
diff --git a/js/src/jit-test/jit_test.py b/js/src/jit-test/jit_test.py
index f5d7794..8d443aa 100755
--- a/js/src/jit-test/jit_test.py
+++ b/js/src/jit-test/jit_test.py
@@ -38,7 +38,7 @@ from lib.tests import (
get_environment_overlay,
change_env,
)
-from lib.tempfile import TemporaryDirectory
+from tempfile import TemporaryDirectory
def which(name):
diff --git a/js/src/tests/jstests.py b/js/src/tests/jstests.py
index 6fa2f5f..53ceff6 100755
--- a/js/src/tests/jstests.py
+++ b/js/src/tests/jstests.py
@@ -37,7 +37,7 @@ from lib.tests import (
from lib.results import ResultsSink, TestOutput
from lib.progressbar import ProgressBar
from lib.adaptor import xdr_annotate
-from lib.tempfile import TemporaryDirectory
+from tempfile import TemporaryDirectory
if sys.platform.startswith("linux") or sys.platform.startswith("darwin"):
from lib.tasks_unix import run_all_tests
diff --git a/js/src/tests/lib/tempfile.py b/js/src/tests/lib/tempfile.py
index ecc21c9..f0a1fa3 100644
--- a/js/src/tests/lib/tempfile.py
+++ b/js/src/tests/lib/tempfile.py
@@ -2,19 +2,4 @@
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
from __future__ import absolute_import
-
-try:
- # Python 3.2
- from tempfile import TemporaryDirectory
-except ImportError:
- import tempfile
- import shutil
- from contextlib import contextmanager
-
- @contextmanager
- def TemporaryDirectory(*args, **kwds):
- d = tempfile.mkdtemp(*args, **kwds)
- try:
- yield d
- finally:
- shutil.rmtree(d)
+from tempfile import TemporaryDirectory
--
2.31.1

View File

@ -0,0 +1,28 @@
From 00414eb67ab0591911167155963b5524fbf2b0c0 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Franti=C5=A1ek=20Zatloukal?= <fzatlouk@redhat.com>
Date: Mon, 9 Aug 2021 14:38:58 +0200
Subject: [PATCH] Don't throw InvalidOptionError on invalid options
---
python/mozbuild/mozbuild/configure/__init__.py | 5 +----
1 file changed, 1 insertion(+), 4 deletions(-)
diff --git a/python/mozbuild/mozbuild/configure/__init__.py b/python/mozbuild/mozbuild/configure/__init__.py
index f3167f6..c9e1132 100644
--- a/python/mozbuild/mozbuild/configure/__init__.py
+++ b/python/mozbuild/mozbuild/configure/__init__.py
@@ -553,10 +553,7 @@ class ConfigureSandbox(dict):
for arg in self._helper:
without_value = arg.split("=", 1)[0]
msg = "Unknown option: %s" % without_value
- if self._help:
- self._logger.warning(msg)
- else:
- raise InvalidOptionError(msg)
+ self._logger.warning(msg)
# Run the execution queue
for func, args in self._execution_queue:
--
2.31.1

View File

@ -0,0 +1,29 @@
From 2d99a7b076578a3394fb9d5be6eb44f9cfebc681 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Franti=C5=A1ek=20Zatloukal?= <fzatlouk@redhat.com>
Date: Mon, 9 Aug 2021 16:15:37 +0200
Subject: [PATCH] Remove sloppy m4 detection from bundled autoconf
---
build/autoconf/autoconf.sh | 6 ------
1 file changed, 6 deletions(-)
diff --git a/build/autoconf/autoconf.sh b/build/autoconf/autoconf.sh
index ceb8a25..606c74e 100644
--- a/build/autoconf/autoconf.sh
+++ b/build/autoconf/autoconf.sh
@@ -114,12 +114,6 @@ fi
# Use the frozen version of Autoconf if available.
r= f=
-# Some non-GNU m4's don't reject the --help option, so give them /dev/null.
-case `$M4 --help < /dev/null 2>&1` in
-*reload-state*) test -r $AC_MACRODIR/autoconf.m4f && { r=--reload f=f; } ;;
-*traditional*) ;;
-*) echo Autoconf requires GNU m4 1.1 or later >&2; rm -f $tmpin; exit 1 ;;
-esac
$M4 -I$AC_MACRODIR $use_localdir $r autoconf.m4$f $infile > $tmpout ||
{ rm -f $tmpin $tmpout; exit 2; }
--
2.31.1

View File

@ -0,0 +1,36 @@
From db3a0a25b97377b388532b23e73a10d246f66496 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Franti=C5=A1ek=20Zatloukal?= <fzatlouk@redhat.com>
Date: Mon, 3 Aug 2020 10:27:00 +0200
Subject: [PATCH] Skip failing tests on ppc64 and s390x
ppc64 and s390x: non262/extensions/clone-errors.js
s390x: test262/built-ins/TypedArray/prototype/set/typedarray-arg-set-values-same-buffer-other-type.js
s390x, ppc64 and aarch64: test262/built-ins/Date/UTC/fp-evaluation-order.js
---
js/src/tests/jstests.list | 9 +++++++++
1 file changed, 9 insertions(+)
diff --git a/js/src/tests/jstests.list b/js/src/tests/jstests.list
index 73ce42f..1797646 100644
--- a/js/src/tests/jstests.list
+++ b/js/src/tests/jstests.list
@@ -53,6 +53,15 @@ skip-if(!this.hasOwnProperty("Intl")) include test262/intl402/jstests.list
skip-if(!this.hasOwnProperty("Atomics")) include test262/built-ins/Atomics/jstests.list
skip-if(!this.hasOwnProperty("SharedArrayBuffer")) include test262/built-ins/SharedArrayBuffer/jstests.list
+# Crashes on s390x and ppc64, avoid it
+skip-if(xulRuntime.XPCOMABI.match(/s390x|ppc64-/)) script non262/extensions/clone-errors.js
+
+# Crashes on s390x, ppc64, aarch64
+skip-if(xulRuntime.XPCOMABI.match(/s390x|aarch64|ppc64-/)) script test262/built-ins/Date/UTC/fp-evaluation-order.js
+
+# Crashes on s390x, avoid it
+skip-if(xulRuntime.XPCOMABI.match(/s390x/)) script test262/built-ins/TypedArray/prototype/set/typedarray-arg-set-values-same-buffer-other-type.js
+
#####################################
# Test262 tests disabled on browser #
#####################################
--
2.31.1

View File

@ -0,0 +1,21 @@
commit 80ae97f2b875493c5714d00ae5c2a13efbd6e017
Author: Daniel Kolesa <daniel@octaforge.org>
Date: Sun Jan 23 21:06:47 2022 +0100
fix musl miscompilation
https://github.com/void-linux/void-packages/issues/2598
diff --git a/js/src/old-configure.in b/js/src/old-configure.in
index 77652f67..ab5e917b 100644
--- a/js/src/old-configure.in
+++ b/js/src/old-configure.in
@@ -1069,7 +1069,7 @@ if test "$ac_cv_thread_keyword" = yes; then
mips*-*)
:
;;
- *-android*|*-linuxandroid*)
+ *-android*|*-linuxandroid*|*-musl*)
:
;;
*)

View File

@ -0,0 +1,26 @@
commit 34d8f3fb025e930450ce44f7aac501da4c2adc9c
Author: Daniel Kolesa <daniel@octaforge.org>
Date: Sun Jan 23 21:09:42 2022 +0100
disable spidermonkey jslint
diff --git a/js/src/build/moz.build b/js/src/build/moz.build
index 55c66b97..243f7db2 100644
--- a/js/src/build/moz.build
+++ b/js/src/build/moz.build
@@ -97,15 +97,3 @@ NO_EXPAND_LIBS = True
DIST_INSTALL = True
-# Run SpiderMonkey style checker after linking the static library. This avoids
-# running the script for no-op builds.
-GeneratedFile(
- "spidermonkey_checks",
- script="/config/run_spidermonkey_checks.py",
- inputs=[
- "!%sjs_static.%s" % (CONFIG["LIB_PREFIX"], CONFIG["LIB_SUFFIX"]),
- "/config/check_spidermonkey_style.py",
- "/config/check_macroassembler_style.py",
- "/config/check_js_opcode.py",
- ],
-)

View File

@ -0,0 +1,28 @@
commit 34b3ac3195a40757bc5f51a1db5a47a4b18c68b5
Author: Daniel Kolesa <daniel@octaforge.org>
Date: Sun Jan 23 21:13:38 2022 +0100
bypass rust triplet checks and just force ours
diff --git a/build/moz.configure/rust.configure b/build/moz.configure/rust.configure
index cd77d72b..0c03cab7 100644
--- a/build/moz.configure/rust.configure
+++ b/build/moz.configure/rust.configure
@@ -261,7 +261,7 @@ def rust_supported_targets(rustc):
data.setdefault(key, []).append(namespace(rust_target=t, target=info))
return data
-
+@imports("os")
def detect_rustc_target(
host_or_target, compiler_info, arm_target, rust_supported_targets
):
@@ -383,7 +383,7 @@ def detect_rustc_target(
return None
- rustc_target = find_candidate(candidates)
+ rustc_target = os.environ["RUST_TARGET"]
if rustc_target is None:
die("Don't know how to translate {} for rustc".format(host_or_target.alias))

View File

@ -0,0 +1,80 @@
drop some rust compiler validation
--- a/build/moz.configure/rust.configure
+++ b/build/moz.configure/rust.configure
@@ -91,9 +91,6 @@ def unwrap_rustup(prog, name):
return unwrap
-rustc = unwrap_rustup(rustc, "rustc")
-cargo = unwrap_rustup(cargo, "cargo")
-
set_config("CARGO", cargo)
set_config("RUSTC", rustc)
@@ -411,35 +408,6 @@ def assert_rust_compile(host_or_target, rustc_target, rustc):
os.write(in_fd, ensure_binary(source))
os.close(in_fd)
-
- cmd = [
- rustc,
- "--crate-type",
- "staticlib",
- target_arg,
- "-o",
- out_path,
- in_path,
- ]
-
- def failed():
- die(
- dedent(
- """\
- Cannot compile for {} with {}
- The target may be unsupported, or you may not have
- a rust std library for that target installed. Try:
-
- rustup target add {}
- """.format(
- host_or_target.alias, rustc, rustc_target
- )
- )
- )
-
- check_cmd_output(*cmd, onerror=failed)
- if not os.path.exists(out_path) or os.path.getsize(out_path) == 0:
- failed()
finally:
os.remove(in_path)
os.remove(out_path)
@@ -462,29 +430,6 @@ def rust_host_triple(
rustc_target = detect_rustc_target(
host, compiler_info, arm_target, rust_supported_targets
)
- if rustc_target != rustc_host:
- if host.alias == rustc_target:
- configure_host = host.alias
- else:
- configure_host = "{}/{}".format(host.alias, rustc_target)
- die(
- dedent(
- """\
- The rust compiler host ({rustc}) is not suitable for the configure host ({configure}).
-
- You can solve this by:
- * Set your configure host to match the rust compiler host by editing your
- mozconfig and adding "ac_add_options --host={rustc}".
- * Or, install the rust toolchain for {configure}, if supported, by running
- "rustup default stable-{rustc_target}"
- """.format(
- rustc=rustc_host,
- configure=configure_host,
- rustc_target=rustc_target,
- )
- )
- )
- assert_rust_compile(host, rustc_target, rustc)
return rustc_target

View File

@ -0,0 +1,35 @@
commit 1cc729c5221d0ce4c80786ccdcb2de4a6ca382b6
Author: Daniel Kolesa <daniel@octaforge.org>
Date: Sun Jan 23 21:55:43 2022 +0100
drop some library checks
This calls readelf and won't work with LTO'd setups.
diff --git a/config/makefiles/rust.mk b/config/makefiles/rust.mk
index 401c2933..ade4f1da 100644
--- a/config/makefiles/rust.mk
+++ b/config/makefiles/rust.mk
@@ -405,22 +405,6 @@ force-cargo-library-build:
$(call CARGO_BUILD) --lib $(cargo_target_flag) $(rust_features_flag) -- $(cargo_rustc_flags)
$(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 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)

View File

@ -0,0 +1,18 @@
--- a/config/makefiles/rust.mk
+++ b/config/makefiles/rust.mk
@@ -64,6 +64,7 @@ endif
# These flags are passed via `cargo rustc` and only apply to the final rustc
# invocation (i.e., only the top-level crate, not its dependencies).
cargo_rustc_flags = $(CARGO_RUSTCFLAGS)
+ifneq (1,$(MOZ_NO_RUST_LTO))
ifndef DEVELOPER_OPTIONS
ifndef MOZ_DEBUG_RUST
# Enable link-time optimization for release builds, but not when linking
@@ -77,6 +78,7 @@ RUSTFLAGS += -Cembed-bitcode=yes
endif
endif
endif
+endif
ifdef CARGO_INCREMENTAL
export CARGO_INCREMENTAL

View File

@ -0,0 +1,16 @@
diff -rup Architecture-arm.cpp.orig Architecture-arm.cpp
--- a/js/src/jit/arm/Architecture-arm.cpp
+++ b/js/src/jit/arm/Architecture-arm.cpp
@@ -531,7 +531,11 @@ void FlushExecutionContext() {
#ifndef JS_SIMULATOR_ARM
// Ensure that any instructions already in the pipeline are discarded and
// reloaded from the icache.
- asm volatile("isb\n" : : : "memory");
+# if defined(__ARM_ARCH_7__) || defined(__ARM_ARCH_7A__)
+ asm volatile("isb\n" : : : "memory");
+# else
+ asm volatile("mcr p15, 0, %0, c7, c5, 4" : : "r" (0) : "memory");
+# endif
#else
// We assume the icache flushing routines on other platforms take care of this
#endif

View File

@ -0,0 +1,18 @@
From 62780b31095fcd37a5d9218d0393d552bc44149f Mon Sep 17 00:00:00 2001
From: q66 <daniel@octaforge.org>
Date: Mon Jun 13 14:01:59 2022 +0200
Subject: fix ftbfs on powerpc32
diff --git a/js/src/wasm/WasmDebugFrame.h b/js/src/wasm/WasmDebugFrame.h
index 47652e9..02a13559 100644
--- a/js/src/wasm/WasmDebugFrame.h
+++ b/js/src/wasm/WasmDebugFrame.h
@@ -112,7 +112,7 @@ class DebugFrame {
// Avoid -Wunused-private-field warnings.
protected:
-#if defined(JS_CODEGEN_ARM) || defined(JS_CODEGEN_X86) || defined(__wasi__)
+#if defined(JS_CODEGEN_ARM) || defined(JS_CODEGEN_X86) || defined(__wasi__) || (defined(__powerpc__) && !defined(__powerpc64__))
// See alignmentStaticAsserts(). For ARM32 and X86 DebugFrame is only
// 4-byte aligned, so we add another word to get up to 8-byte
// alignment.

View File

@ -0,0 +1,18 @@
# error: typedef redefinition with different types ('__double_t' (aka 'double') vs 'long double')
# https://bugzilla.mozilla.org/show_bug.cgi?id=1729459
--- a/modules/fdlibm/src/math_private.h
+++ b/modules/fdlibm/src/math_private.h
@@ -30,7 +30,12 @@
* Adapted from https://github.com/freebsd/freebsd-src/search?q=__double_t
*/
+#if defined(__linux__) && defined(__i386__)
+// rely on glibc's double_t
+typedef long double __double_t;
+#else
typedef double __double_t;
+#endif
typedef __double_t double_t;
/*

View File

@ -0,0 +1,130 @@
From 964834abba3b093385409f1d594835ad94362def Mon Sep 17 00:00:00 2001
From: ahochheiden <ahochheiden@mozilla.com>
Date: Thu, 2 Jun 2022 06:27:44 +0000
Subject: [PATCH] Bug 1769631 - Remove 'U' from 'mode' parameters for various
'open' calls to ensure Python3.11 compatibility
r=firefox-build-system-reviewers,glandium
The 'U' flag represents "universal newline". It has been deprecated
since Python3.3. Since then "universal newline" is the default when a
file is opened in text mode (not bytes). In Python3.11 using the 'U'
flag throws errors. There should be no harm in removing 'U' from 'open'
everywhere it is used, and doing allows the use of Python3.11.
For more reading see: https://docs.python.org/3.11/whatsnew/3.11.html#changes-in-the-python-api
Differential Revision: https://phabricator.services.mozilla.com/D147721
---
dom/base/usecounters.py | 2 +-
python/mozbuild/mozbuild/action/process_define_files.py | 2 +-
python/mozbuild/mozbuild/backend/base.py | 2 +-
python/mozbuild/mozbuild/preprocessor.py | 6 +++---
python/mozbuild/mozbuild/util.py | 2 +-
python/mozbuild/mozpack/files.py | 4 ++--
6 files changed, 9 insertions(+), 9 deletions(-)
diff --git a/dom/base/usecounters.py b/dom/base/usecounters.py
index 780e3b32b2131..7e2c7148ece55 100644
--- a/dom/base/usecounters.py
+++ b/dom/base/usecounters.py
@@ -8,7 +8,7 @@
def read_conf(conf_filename):
# Can't read/write from a single StringIO, so make a new one for reading.
- stream = open(conf_filename, "rU")
+ stream = open(conf_filename, "r")
def parse_counters(stream):
for line_num, line in enumerate(stream):
diff --git a/python/mozbuild/mozbuild/action/process_define_files.py b/python/mozbuild/mozbuild/action/process_define_files.py
index f1d401ac26006..aca59d0f05177 100644
--- a/python/mozbuild/mozbuild/action/process_define_files.py
+++ b/python/mozbuild/mozbuild/action/process_define_files.py
@@ -36,7 +36,7 @@ def process_define_file(output, input):
) and not config.substs.get("JS_STANDALONE"):
config = PartialConfigEnvironment(mozpath.join(topobjdir, "js", "src"))
- with open(path, "rU") as input:
+ with open(path, "r") as input:
r = re.compile(
"^\s*#\s*(?P<cmd>[a-z]+)(?:\s+(?P<name>\S+)(?:\s+(?P<value>\S+))?)?", re.U
)
diff --git a/python/mozbuild/mozbuild/backend/base.py b/python/mozbuild/mozbuild/backend/base.py
index 7bc1986d863b5..b64a70946863d 100644
--- a/python/mozbuild/mozbuild/backend/base.py
+++ b/python/mozbuild/mozbuild/backend/base.py
@@ -272,7 +272,7 @@ def post_build(self, config, output, jobs, verbose, status):
return status
@contextmanager
- def _write_file(self, path=None, fh=None, readmode="rU"):
+ def _write_file(self, path=None, fh=None, readmode="r"):
"""Context manager to write a file.
This is a glorified wrapper around FileAvoidWrite with integration to
diff --git a/python/mozbuild/mozbuild/preprocessor.py b/python/mozbuild/mozbuild/preprocessor.py
index f7820b9c91473..857f1a6c9bfd1 100644
--- a/python/mozbuild/mozbuild/preprocessor.py
+++ b/python/mozbuild/mozbuild/preprocessor.py
@@ -531,7 +531,7 @@ def get_output_file(path, encoding=None):
if args:
for f in args:
- with io.open(f, "rU", encoding="utf-8") as input:
+ with io.open(f, "r", encoding="utf-8") as input:
self.processFile(input=input, output=out)
if depfile:
mk = Makefile()
@@ -860,7 +860,7 @@ def do_include(self, args, filters=True):
args = self.applyFilters(args)
if not os.path.isabs(args):
args = os.path.join(self.curdir, args)
- args = io.open(args, "rU", encoding="utf-8")
+ args = io.open(args, "r", encoding="utf-8")
except Preprocessor.Error:
raise
except Exception:
@@ -914,7 +914,7 @@ def do_error(self, args):
def preprocess(includes=[sys.stdin], defines={}, output=sys.stdout, marker="#"):
pp = Preprocessor(defines=defines, marker=marker)
for f in includes:
- with io.open(f, "rU", encoding="utf-8") as input:
+ with io.open(f, "r", encoding="utf-8") as input:
pp.processFile(input=input, output=output)
return pp.includes
diff --git a/python/mozbuild/mozbuild/util.py b/python/mozbuild/mozbuild/util.py
index b09f1646988f0..4f1e0cdc5f568 100644
--- a/python/mozbuild/mozbuild/util.py
+++ b/python/mozbuild/mozbuild/util.py
@@ -236,7 +236,7 @@ class FileAvoidWrite(BytesIO):
still occur, as well as diff capture if requested.
"""
- def __init__(self, filename, capture_diff=False, dry_run=False, readmode="rU"):
+ def __init__(self, filename, capture_diff=False, dry_run=False, readmode="r"):
BytesIO.__init__(self)
self.name = filename
assert type(capture_diff) == bool
diff --git a/python/mozbuild/mozpack/files.py b/python/mozbuild/mozpack/files.py
index 1d8a1ed2d8a7e..a295a67b5a34f 100644
--- a/python/mozbuild/mozpack/files.py
+++ b/python/mozbuild/mozpack/files.py
@@ -554,7 +554,7 @@ def inputs(self):
pp = Preprocessor(defines=self.defines, marker=self.marker)
pp.setSilenceDirectiveWarnings(self.silence_missing_directive_warnings)
- with _open(self.path, "rU") as input:
+ with _open(self.path, "r") as input:
with _open(os.devnull, "w") as output:
pp.processFile(input=input, output=output)
@@ -611,7 +611,7 @@ def copy(self, dest, skip_if_older=True):
pp = Preprocessor(defines=self.defines, marker=self.marker)
pp.setSilenceDirectiveWarnings(self.silence_missing_directive_warnings)
- with _open(self.path, "rU") as input:
+ with _open(self.path, "r") as input:
pp.processFile(input=input, output=dest, depfile=deps_out)
dest.close()

98
srcpkgs/mozjs102/template Normal file
View File

@ -0,0 +1,98 @@
# Template file for 'mozjs102'
pkgname=mozjs102
version=102.5.0
revision=1
build_wrksrc=js/src
build_style=gnu-configure
build_helper=rust
make_check_target=check-jit-test
configure_args="--disable-jemalloc --disable-strip --disable-tests \
--disable-optimize --disable-debug --enable-ctypes --enable-readline \
--enable-shared-js --enable-system-ffi --with-intl-api --with-system-icu \
--with-system-nspr --with-system-zlib --enable-hardening --enable-release"
hostmakedepends="make pkg-config python3 python3-setuptools python3-six perl m4
rust cargo llvm12 clang"
makedepends="icu-devel libffi-devel nspr-devel python3-devel readline-devel
zlib-devel rust-std"
checkdepends="python3"
short_desc="SpiderMonkey JavaScript interpreter and library (102.x)"
maintainer="Michal Vasilek <michal@vasilek.cz>"
license="MPL-2.0"
homepage="https://spidermonkey.dev"
distfiles="${MOZILLA_SITE}/firefox/releases/${version}esr/source/firefox-${version}esr.source.tar.xz"
checksum=017dd44b1285913f477074802707a4c76ed1a28270ec5a327bbb76574cc057d8
LDFLAGS="-Wl,-z,stack-size=1048576"
if [ "$XBPS_TARGET_NO_ATOMIC8" ]; then
makedepends+=" libatomic-devel"
LDFLAGS+=" -latomic"
fi
if [ "$XBPS_TARGET_MACHINE" = i686 ]; then
# Disable LTO on i686, otherwise compilation of `jsrust` fails with -
# error: ran out of registers during register allocation
# LLVM ERROR: Cannot emit physreg copy instruction
# error: could not compile `jsrust` due to previous error
export MOZ_NO_RUST_LTO=1
fi
pre_configure() {
if [ "$CROSS_BUILD" ]; then
configure_args+=" --host=${XBPS_TRIPLET} --target=${XBPS_CROSS_TRIPLET} --enable-linker=bfd"
fi
export M4=m4
export AWK=awk
export AC_MACRODIR=../../build/autoconf
chmod 0755 ../../build/autoconf/autoconf.sh
sh ../../build/autoconf/autoconf.sh configure.in > configure
chmod 0755 configure
}
post_install() {
# Remove unneeded static library
rm -f "${DESTDIR}"/usr/lib/*.ajs
# it has correct soname but not the right file name
mv "${DESTDIR}"/usr/lib/libmozjs-102.so \
"${DESTDIR}"/usr/lib/libmozjs-102.so.0
ln -rs "${DESTDIR}"/usr/lib/libmozjs-102.so.0 \
"${DESTDIR}"/usr/lib/libmozjs-102.so
}
pre_check() {
if [ "$XBPS_WORDSIZE" = 32 ]; then
vsed -i jit-test/tests/basic/bug653153.js -e s/65536/65568/g
vsed -i jit-test/tests/basic/bug653153.js -e s/65537/65569/g
fi
if [ "$XBPS_TARGET_MACHINE" = i686 ]; then
export JITTEST_EXTRA_ARGS="${JITTEST_EXTRA_ARGS} \
-x basic/fdlibm-for-sin-cos-tan-argument.js \
-x gc/gcparam.js \
-x ion/dce-with-rinstructions.js \
-x sunspider/check-3d-cube.js \
-x sunspider/check-3d-raytrace.js \
-x sunspider/check-access-nbody.js \
-x wasm/nan-semantics.js \
-x wasm/spec/spec/float_literals.wast.js \
-x wasm/spec/spec/float_memory.wast.js \
-x wasm/spec/threads/float_memory.wast.js \
"
fi
if [ "$XBPS_LIBC" = musl ]; then
export JITTEST_EXTRA_ARGS="${JITTEST_EXTRA_ARGS} \
-x sunspider/check-date-format-tofte.js \
"
fi
}
mozjs102-devel_package() {
depends="nspr-devel ${sourcepkg}>=${version}_${revision}"
short_desc+=" - development files"
pkg_install() {
vmove usr/bin/js102-config
vmove usr/include
vmove "usr/lib/*.so"
vmove usr/lib/pkgconfig
}
}

2
srcpkgs/mozjs102/update Normal file
View File

@ -0,0 +1,2 @@
site="${MOZILLA_SITE}/firefox/releases/"
pattern="releases/\K${version%%.*}.*(?=esr/\")"