Clang 19 now diagnoses incorrect member accesses, which causes lang/spidermonkey102 to fail with an error similar to: /wrkdirs/usr/ports/lang/spidermonkey102/work/firefox-102.9.0/js/src/threading/ExclusiveData.h:113:29: error: reference to non-static member function must be called 113 | : lock_(std::move(rhs.lock)), value_(std::move(rhs.value_)) { | ~~~~^~~~ Upstream fixed this for https://bugzilla.mozilla.org/1894423 in changeset 223087fdc29f18678f6174e9807b8780e439acf6 [2], so pull this in as a patch and apply it. Also, as noted in the libc++ 19 release notes [1], std::char_traits<> is now only provided for char, char8_t, char16_t, char32_t and wchar_t, and any instantiation for other types will fail. With lang/spidermonkey102 and clang/libc++ 19 this results in errors similar to: /wrkdirs/usr/ports/lang/spidermonkey102/work/firefox-102.9.0/js/src/builtin/intl/Locale.cpp:208:20: error: implicit instantiation of undefined template 'std::char_traits<unsigned char>' 208 | iter_ = std::char_traits<CharT>::find( | ^ /wrkdirs/usr/ports/lang/spidermonkey102/work/firefox-102.9.0/js/src/builtin/intl/Locale.cpp:769:21: note: in instantiation of member function 'SepKeywordIterator<unsigned char>::next' requested here 769 | beginKey = iter.next(); | ^ /wrkdirs/usr/ports/lang/spidermonkey102/work/firefox-102.9.0/js/src/builtin/intl/Locale.cpp:808:16: note: in instantiation of function template specialization 'FindUnicodeExtensionType<unsigned char>' requested here 808 | ? FindUnicodeExtensionType(unicodeExtension->latin1Chars(nogc), | ^ Upstream fixed this for https://bugzilla.mozilla.org/1849070 in changeset 68ff4d3f7338248b4d67cf03aade5a73f8d396b2 [3], so pull this in as a patch and apply it. [1] https://libcxx.llvm.org/ReleaseNotes/19.html#deprecations-and-removals [2] https://hg.mozilla.org/mozilla-central/rev/223087fdc29f18678f6174e9807b8780e439acf6 [3] https://hg.mozilla.org/mozilla-central/rev/68ff4d3f7338248b4d67cf03aade5a73f8d396b2
Created attachment 252656 [details] lang/spidermonkey102: fix build with clang and libc++ 19
LGTM. Feel free to commit.
A commit in branch main references this bug: URL: https://cgit.FreeBSD.org/ports/commit/?id=8e8ef3deb407ff549eba6d5310e0988f1f49a9c5 commit 8e8ef3deb407ff549eba6d5310e0988f1f49a9c5 Author: Dimitry Andric <dim@FreeBSD.org> AuthorDate: 2024-08-10 13:48:05 +0000 Commit: Dimitry Andric <dim@FreeBSD.org> CommitDate: 2024-08-12 19:38:10 +0000 lang/spidermonkey102: fix build with clang and libc++ 19 Clang 19 now diagnoses incorrect member accesses, which causes lang/spidermonkey102 to fail with an error similar to: /wrkdirs/usr/ports/lang/spidermonkey102/work/firefox-102.9.0/js/src/threading/ExclusiveData.h:113:29: error: reference to non-static member function must be called 113 | : lock_(std::move(rhs.lock)), value_(std::move(rhs.value_)) { | ~~~~^~~~ Upstream fixed this for https://bugzilla.mozilla.org/1894423 in changeset 223087fdc29f18678f6174e9807b8780e439acf6 [2], so pull this in as a patch and apply it. Also, as noted in the libc++ 19 release notes [1], std::char_traits<> is now only provided for char, char8_t, char16_t, char32_t and wchar_t, and any instantiation for other types will fail. With lang/spidermonkey102 and clang/libc++ 19 this results in errors similar to: /wrkdirs/usr/ports/lang/spidermonkey102/work/firefox-102.9.0/js/src/builtin/intl/Locale.cpp:208:20: error: implicit instantiation of undefined template 'std::char_traits<unsigned char>' 208 | iter_ = std::char_traits<CharT>::find( | ^ /wrkdirs/usr/ports/lang/spidermonkey102/work/firefox-102.9.0/js/src/builtin/intl/Locale.cpp:769:21: note: in instantiation of member function 'SepKeywordIterator<unsigned char>::next' requested here 769 | beginKey = iter.next(); | ^ /wrkdirs/usr/ports/lang/spidermonkey102/work/firefox-102.9.0/js/src/builtin/intl/Locale.cpp:808:16: note: in instantiation of function template specialization 'FindUnicodeExtensionType<unsigned char>' requested here 808 | ? FindUnicodeExtensionType(unicodeExtension->latin1Chars(nogc), | ^ Upstream fixed this for https://bugzilla.mozilla.org/1849070 in changeset 68ff4d3f7338248b4d67cf03aade5a73f8d396b2 [3], so pull this in as a patch and apply it. [1] https://libcxx.llvm.org/ReleaseNotes/19.html#deprecations-and-removals [2] https://hg.mozilla.org/mozilla-central/rev/223087fdc29f18678f6174e9807b8780e439acf6 [3] https://hg.mozilla.org/mozilla-central/rev/68ff4d3f7338248b4d67cf03aade5a73f8d396b2 PR: 280730 Approved by: nc (maintainer) MFH: 2024Q3 lang/spidermonkey102/Makefile | 4 ++++ lang/spidermonkey102/distinfo | 6 +++++- 2 files changed, 9 insertions(+), 1 deletion(-)
A commit in branch 2024Q3 references this bug: URL: https://cgit.FreeBSD.org/ports/commit/?id=ba047c5711db7512124836e092e428546ca78eef commit ba047c5711db7512124836e092e428546ca78eef Author: Dimitry Andric <dim@FreeBSD.org> AuthorDate: 2024-08-10 13:48:05 +0000 Commit: Dimitry Andric <dim@FreeBSD.org> CommitDate: 2024-08-12 19:46:24 +0000 lang/spidermonkey102: fix build with clang and libc++ 19 Clang 19 now diagnoses incorrect member accesses, which causes lang/spidermonkey102 to fail with an error similar to: /wrkdirs/usr/ports/lang/spidermonkey102/work/firefox-102.9.0/js/src/threading/ExclusiveData.h:113:29: error: reference to non-static member function must be called 113 | : lock_(std::move(rhs.lock)), value_(std::move(rhs.value_)) { | ~~~~^~~~ Upstream fixed this for https://bugzilla.mozilla.org/1894423 in changeset 223087fdc29f18678f6174e9807b8780e439acf6 [2], so pull this in as a patch and apply it. Also, as noted in the libc++ 19 release notes [1], std::char_traits<> is now only provided for char, char8_t, char16_t, char32_t and wchar_t, and any instantiation for other types will fail. With lang/spidermonkey102 and clang/libc++ 19 this results in errors similar to: /wrkdirs/usr/ports/lang/spidermonkey102/work/firefox-102.9.0/js/src/builtin/intl/Locale.cpp:208:20: error: implicit instantiation of undefined template 'std::char_traits<unsigned char>' 208 | iter_ = std::char_traits<CharT>::find( | ^ /wrkdirs/usr/ports/lang/spidermonkey102/work/firefox-102.9.0/js/src/builtin/intl/Locale.cpp:769:21: note: in instantiation of member function 'SepKeywordIterator<unsigned char>::next' requested here 769 | beginKey = iter.next(); | ^ /wrkdirs/usr/ports/lang/spidermonkey102/work/firefox-102.9.0/js/src/builtin/intl/Locale.cpp:808:16: note: in instantiation of function template specialization 'FindUnicodeExtensionType<unsigned char>' requested here 808 | ? FindUnicodeExtensionType(unicodeExtension->latin1Chars(nogc), | ^ Upstream fixed this for https://bugzilla.mozilla.org/1849070 in changeset 68ff4d3f7338248b4d67cf03aade5a73f8d396b2 [3], so pull this in as a patch and apply it. [1] https://libcxx.llvm.org/ReleaseNotes/19.html#deprecations-and-removals [2] https://hg.mozilla.org/mozilla-central/rev/223087fdc29f18678f6174e9807b8780e439acf6 [3] https://hg.mozilla.org/mozilla-central/rev/68ff4d3f7338248b4d67cf03aade5a73f8d396b2 PR: 280730 Approved by: nc (maintainer) MFH: 2024Q3 (cherry picked from commit 8e8ef3deb407ff549eba6d5310e0988f1f49a9c5) lang/spidermonkey102/Makefile | 4 ++++ lang/spidermonkey102/distinfo | 6 +++++- 2 files changed, 9 insertions(+), 1 deletion(-)