mozjs-115: fix build with clang and libc++ 19

Signed-off-by: Khem Raj <raj.khem@gmail.com>
This commit is contained in:
Khem Raj 2024-09-03 22:48:46 -07:00
parent cfd5a02d26
commit 2eb7336df2
No known key found for this signature in database
GPG Key ID: BB053355919D3314
3 changed files with 68 additions and 0 deletions

View File

@ -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());
}

View File

@ -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));

View File

@ -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"