diff mbox series

[meta-oe] mozjs-115: fix build with clang and libc++ 19

Message ID 20240904054937.2097000-1-raj.khem@gmail.com
State New
Headers show
Series [meta-oe] mozjs-115: fix build with clang and libc++ 19 | expand

Commit Message

Khem Raj Sept. 4, 2024, 5:49 a.m. UTC
Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
 .../mozjs/mozjs-115/1849070.patch             | 36 +++++++++++++++++++
 .../mozjs/mozjs-115/1894423.patch             | 30 ++++++++++++++++
 .../mozjs/mozjs-115_115.11.0.bb               |  2 ++
 3 files changed, 68 insertions(+)
 create mode 100644 meta-oe/recipes-extended/mozjs/mozjs-115/1849070.patch
 create mode 100644 meta-oe/recipes-extended/mozjs/mozjs-115/1894423.patch
diff mbox series

Patch

diff --git a/meta-oe/recipes-extended/mozjs/mozjs-115/1849070.patch b/meta-oe/recipes-extended/mozjs/mozjs-115/1849070.patch
new file mode 100644
index 0000000000..c19a32690d
--- /dev/null
+++ b/meta-oe/recipes-extended/mozjs/mozjs-115/1849070.patch
@@ -0,0 +1,36 @@ 
+Bug 1849070 - Avoid using char_traits<unsigned char>. r=spidermonkey-reviewers,anba
+
+It is not guaranteed to exist by the standard, and is actively being
+removed from libc++ in LLVM 18.
+
+Differential Revision: https://phabricator.services.mozilla.com/D186421
+
+Upstream-Status: Backport [https://hg.mozilla.org/mozilla-central/rev/68ff4d3f7338248b4d67cf03aade5a73f8d396b2]
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+
+--- a/js/src/builtin/intl/Locale.cpp
++++ b/js/src/builtin/intl/Locale.cpp
+@@ -802,8 +802,10 @@ static inline auto FindUnicodeExtensionT
+                                             UnicodeKey key) {
+   JS::AutoCheckCannotGC nogc;
+   return unicodeExtension->hasLatin1Chars()
+-             ? FindUnicodeExtensionType(unicodeExtension->latin1Chars(nogc),
+-                                        unicodeExtension->length(), key)
++             ? FindUnicodeExtensionType(
++                   reinterpret_cast<const char*>(
++                       unicodeExtension->latin1Chars(nogc)),
++                   unicodeExtension->length(), key)
+              : FindUnicodeExtensionType(unicodeExtension->twoByteChars(nogc),
+                                         unicodeExtension->length(), key);
+ }
+@@ -920,7 +922,9 @@ static BaseNamePartsResult BaseNameParts
+ static inline auto BaseNameParts(JSLinearString* baseName) {
+   JS::AutoCheckCannotGC nogc;
+   return baseName->hasLatin1Chars()
+-             ? BaseNameParts(baseName->latin1Chars(nogc), baseName->length())
++             ? BaseNameParts(
++                   reinterpret_cast<const char*>(baseName->latin1Chars(nogc)),
++                   baseName->length())
+              : BaseNameParts(baseName->twoByteChars(nogc), baseName->length());
+ }
+ 
diff --git a/meta-oe/recipes-extended/mozjs/mozjs-115/1894423.patch b/meta-oe/recipes-extended/mozjs/mozjs-115/1894423.patch
new file mode 100644
index 0000000000..93e0f0f4f9
--- /dev/null
+++ b/meta-oe/recipes-extended/mozjs/mozjs-115/1894423.patch
@@ -0,0 +1,30 @@ 
+Bug 1894423 - Remove unused ExclusiveData move constructor. r=spidermonkey-reviewers,jonco
+
+Because the constructor is actually not used, the compiler used to not
+complain about it being broken. Recent changes on clang trunk made it
+catch this problem without the constructor being used.
+
+As Mutex doesn't have a move constructor, it's also not only a matter of
+adding the missing underscore to lock.
+
+As the constructor is never used, just remove it.
+
+Differential Revision: https://phabricator.services.mozilla.com/D209108
+
+Upstream-Status: Backport [https://hg.mozilla.org/mozilla-central/rev/223087fdc29f]
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+
+--- a/js/src/threading/ExclusiveData.h
++++ b/js/src/threading/ExclusiveData.h
+@@ -109,11 +109,6 @@ class ExclusiveData {
+   explicit ExclusiveData(const MutexId& id, Args&&... args)
+       : lock_(id), value_(std::forward<Args>(args)...) {}
+ 
+-  ExclusiveData(ExclusiveData&& rhs)
+-      : lock_(std::move(rhs.lock)), value_(std::move(rhs.value_)) {
+-    MOZ_ASSERT(&rhs != this, "self-move disallowed!");
+-  }
+-
+   ExclusiveData& operator=(ExclusiveData&& rhs) {
+     this->~ExclusiveData();
+     new (mozilla::KnownNotNull, this) ExclusiveData(std::move(rhs));
diff --git a/meta-oe/recipes-extended/mozjs/mozjs-115_115.11.0.bb b/meta-oe/recipes-extended/mozjs/mozjs-115_115.11.0.bb
index c0eb1291fe..4a0baf5fa6 100644
--- a/meta-oe/recipes-extended/mozjs/mozjs-115_115.11.0.bb
+++ b/meta-oe/recipes-extended/mozjs/mozjs-115_115.11.0.bb
@@ -16,6 +16,8 @@  SRC_URI = "https://archive.mozilla.org/pub/firefox/releases/${PV}esr/source/fire
            file://musl-disable-stackwalk.patch \
            file://0001-add-arm-to-list-of-mozinline.patch \
            file://armv5.patch \
+           file://1849070.patch \ 
+           file://1894423.patch \
            "
 SRC_URI[sha256sum] = "16be46f16a356a2b8bd3541805a24c8a2acf6f077cf8a65859689685c26025e0"