Re: thunderbird 115.10 build failure on -current

From: Michael Butler <imb_at_protected-networks.net>
Date: Thu, 18 Apr 2024 14:49:35 UTC
On 4/17/24 17:40, Dimitry Andric wrote:
> On 17 Apr 2024, at 23:07, Michael Butler<imb@protected-networks.net>  wrote:
>> In a clean environment with default options on -current, I get ..
>>
>> error[E0412]: cannot find type `_Pred` in this scope
>>      --> /usr/ports/mail/thunderbird/work/.build/x86_64-unknown-freebsd/release/build/style-5fb673490cc43b88/out/gecko/structs.rs:34497:49
>>       |
>> 34497 |                 pub _base: root::std::__1::_And<_Pred>,
>>       |                                                 ^^^^^ not found in this scope
>>       |
>> help: you might be missing a type parameter
>>       |
>> 34496 |             pub struct tuple__EnableUTypesCtor<_Pred> {
>>       |                                               +++++++
>>
>> Any hints?
> Yes, this ishttps://bugzilla.mozilla.org/show_bug.cgi?id=1873379, but apparently the fix (https://github.com/mozilla/gecko-dev/commit/627cc80defb3fa48e82ce656536d666176b9f8d1) did not land in the most recent Thunderbird port?
>
> -Dimitry
>

Sadly, it now compiles but fails to link :-( With MAKE_JOBS_UNSAFE set, 
I get ..

gmake[3]: Entering directory 
'/usr/ports/mail/thunderbird/work/.build/toolkit/library/build'
toolkit/library/build/libxul.so
rm -f libxul.so
/usr/local/bin/clang++17 -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2 
-fstack-protector-strong -fstack-clash-protection -DLIBICONV_PLUG 
-isystem /usr/local/include -fno-sized-deallocation -fno-aligned-new -O2 
-pipe -march=ivybridge -O3 -DLIBIC
ONV_PLUG -isystem /usr/local/include -fno-strict-aliasing 
-DLIBICONV_PLUG -isystem /usr/local/include -fno-exceptions -fPIC 
-fno-rtti -ffunction-sections -fdata-sections -fno-exceptions 
-fno-math-errno -pipe -O2 -O3 -fomit-frame-pointer
-funwind-tables  -shared -Wl,-z,defs -Wl,--warn-unresolved-symbols 
-Wl,--gc-sections -Wl,-h,libxul.so -o libxul.so 
/usr/ports/mail/thunderbird/work/.build/toolkit/library/build/libxul_so.list 
   -pthread -Wl,--as-needed -Wl,--undefined-
version -Wl,-z,noexecstack -Wl,-z,text -Wl,-z,relro -Wl,-z,nocopyreloc 
-Wl,-Bsymbolic-functions -Wl,--build-id=sha1 -fstack-protector-strong 
-fstack-clash-protection 
-Wl,-rpath-link,/usr/ports/mail/thunderbird/work/.build/dist/bin -Wl,-
rpath-link,/usr/local/lib  ../../../js/src/build/libjs_static.a 
/usr/ports/mail/thunderbird/work/.build/x86_64-unknown-freebsd/release/libgkrust.a 
../../../config/external/lgpllibs/liblgpllibs.so 
../../../config/external/sqlite/libmozsq
lite3.so ../../../widget/gtk/mozgtk/libmozgtk.so 
../../../widget/gtk/mozwayland/libmozwayland.so   -L/usr/local/lib 
-L/usr/local/lib -laom -ldav1d -lX11 -lXcomposite -lXdamage -lXext 
-lXfixes -lXrandr -lXrender -lXtst -lpthread -lplds4
-lplc4 -lnspr4 -pthread -ldl -lffi -L/lib -lz -lm -lnss3 -lsmime3 -lssl3 
-lnssutil3 -lfreetype -lfontconfig -lgtk-3 -lgdk-3 -lpangocairo-1.0 
-lpango-1.0 -lharfbuzz -latk-1.0 -lcairo-gobject -lcairo 
-lgdk_pixbuf-2.0 -lgio-2.0 -lgobject-2
.0 -lglib-2.0 -lintl -lutil -lpng16 -lwebp -lwebpdemux -lgraphite2 
-levent -lvpx -lpixman-1 -ldbus-glib-1 -ldbus-1 -lxcb-shm -lX11-xcb 
-lxcb -lXcursor -lXi
ld: error: undefined hidden symbol: std::__1::basic_string<char, 
std::__1::char_traits<char>, std::__1::allocator<char>>::assign(char 
const*)
 >>> referenced by Unified_cpp_components_viaduct0.cpp
 >>> 
               /usr/ports/mail/thunderbird/work/.build/toolkit/library/build/../../components/viaduct/Unified_cpp_components_viaduct0.o:(mozilla::HeaderVisitor::VisitHeader(nsTSubstring<char> const&, nsTSubstring<char> const&))
 >>> referenced by Unified_cpp_tools_profiler0.cpp
 >>> 
               /usr/ports/mail/thunderbird/work/.build/toolkit/library/build/../../../tools/profiler/Unified_cpp_tools_profiler0.o:(ActivePS::ActivePS(PSAutoLock const&, mozilla::TimeStamp const&, mozilla::PowerOfTwo<unsigned int>, d
ouble, unsigned int, char const**, unsigned int, unsigned long, 
mozilla::Maybe<double> const&, 
mozilla::UniquePtr<mozilla::ProfileBufferChunkManagerWithLocalLimit, 
mozilla::DefaultDelete<mozilla::ProfileBufferChunkManagerWithLocalLimit>
 >))
 >>> referenced by Unified_cpp_rtc_base_logging_gn0.cpp
 >>> 
               /usr/ports/mail/thunderbird/work/.build/toolkit/library/build/../../../third_party/libwebrtc/rtc_base/logging_gn/Unified_cpp_rtc_base_logging_gn0.o:(rtc::LogMessage::LogMessage(char const*, int, rtc::LoggingSeverity, r
tc::LogErrorContext, int))
 >>> referenced 237 more times
 >>> did you mean: std::__1::basic_string<char, 
std::__1::char_traits<char>, std::__1::allocator<char>>::assign(char 
const*, unsigned long)
 >>> defined in: /lib/libc++.so.1

ld: error: undefined hidden symbol: std::__1::basic_string<char, 
std::__1::char_traits<char>, 
std::__1::allocator<char>>::operator=(std::__1::basic_string<char, 
std::__1::char_traits<char>, std::__1::allocator<char>> const&)
 >>> referenced by Unified_cpp_components_viaduct0.cpp
 >>> 
               /usr/ports/mail/thunderbird/work/.build/toolkit/library/build/../../components/viaduct/Unified_cpp_components_viaduct0.o:(mozilla::appservices::httpconfig::protobuf::Request::MergeFrom(mozilla::appservices::httpconfig:
:protobuf::Request const&))
 >>> referenced by Unified_cpp_components_viaduct0.cpp
 >>> 
               /usr/ports/mail/thunderbird/work/.build/toolkit/library/build/../../components/viaduct/Unified_cpp_components_viaduct0.o:(mozilla::appservices::httpconfig::protobuf::Response::MergeFrom(mozilla::appservices::httpconfig
::protobuf::Response const&))
 >>> referenced by Unified_cpp_components_viaduct0.cpp
 >>> 
               /usr/ports/mail/thunderbird/work/.build/toolkit/library/build/../../components/viaduct/Unified_cpp_components_viaduct0.o:(google::protobuf::internal::MapEntryImpl<mozilla::appservices::httpconfig::protobuf::Request_Hea
dersEntry_DoNotUse, google::protobuf::MessageLite, 
std::__1::basic_string<char, std::__1::char_traits<char>, 
std::__1::allocator<char>>, std::__1::basic_string<char, 
std::__1::char_traits<char>, std::__1::allocator<char>>, (google::prot
obuf::internal::WireFormatLite::FieldType)9, 
(google::protobuf::internal::WireFormatLite::FieldType)9>::Parser<google::protobuf::internal::MapFieldLite<mozilla::appservices::httpconfig::protobuf::Request_HeadersEntry_DoNotUse, 
std::__1:
:basic_string<char, std::__1::char_traits<char>, 
std::__1::allocator<char>>, std::__1::basic_string<char, 
std::__1::char_traits<char>, std::__1::allocator<char>>, 
(google::protobuf::internal::WireFormatLite::FieldType)9, (google::protob
uf::internal::WireFormatLite::FieldType)9>, 
google::protobuf::Map<std::__1::basic_string<char, 
std::__1::char_traits<char>, std::__1::allocator<char>>, 
std::__1::basic_string<char, std::__1::char_traits<char>, 
std::__1::allocator<char>>
 >>::UseKeyAndValueFromEntry())
 >>> referenced 259 more times

ld: error: undefined hidden symbol: std::__1::basic_string<char, 
std::__1::char_traits<char>, std::__1::allocator<char>>::push_back(char)
 >>> referenced by Telemetry.cpp
 >>> 
               /usr/ports/mail/thunderbird/work/.build/toolkit/library/build/../../components/telemetry/Telemetry.o:(std::__1::basic_istream<char, std::__1::char_traits<char>>& std::__1::operator>>[abi:sn180100]<char, std::__1::char_
traits<char>, std::__1::allocator<char>>(std::__1::basic_istream<char, 
std::__1::char_traits<char>>&, std::__1::basic_string<char, 
std::__1::char_traits<char>, std::__1::allocator<char>>&))
 >>> referenced by parse_context.cc
 >>> 
               /usr/ports/mail/thunderbird/work/.build/toolkit/library/build/../../components/protobuf/parse_context.o:(google::protobuf::internal::WriteVarint(unsigned int, unsigned long, std::__1::basic_string<char, std::__1::char_
traits<char>, std::__1::allocator<char>>*))
 >>> referenced by parse_context.cc
 >>> 
               /usr/ports/mail/thunderbird/work/.build/toolkit/library/build/../../components/protobuf/parse_context.o:(google::protobuf::internal::WriteVarint(unsigned int, unsigned long, std::__1::basic_string<char, std::__1::char_
traits<char>, std::__1::allocator<char>>*))
 >>> referenced 104 more times

ld: error: undefined hidden symbol: std::__1::basic_string<char, 
std::__1::char_traits<char>, std::__1::allocator<char>>::append(char 
const*, unsigned long)
 >>> referenced by Unified_cpp_components_protobuf0.cpp
 >>> 
               /usr/ports/mail/thunderbird/work/.build/toolkit/library/build/../../components/protobuf/Unified_cpp_components_protobuf0.o:(google::protobuf::StrAppend(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1
::allocator<char>>*, google::protobuf::strings::AlphaNum const&))
 >>> referenced by Unified_cpp_components_protobuf0.cpp
 >>> 
               /usr/ports/mail/thunderbird/work/.build/toolkit/library/build/../../components/protobuf/Unified_cpp_components_protobuf0.o:(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>& std::__1
::basic_string<char, std::__1::char_traits<char>, 
std::__1::allocator<char>>::append[abi:sn180100]<char const*, 0>(char 
const*, char const*))
 >>> referenced by common.cc
 >>> 
               /usr/ports/mail/thunderbird/work/.build/toolkit/library/build/../../components/protobuf/common.o:(google::protobuf::internal::LogMessage::operator<<(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::a
llocator<char>> const&))
 >>> referenced 281 more times

ld: error: undefined hidden symbol: std::__1::basic_string<char, 
std::__1::char_traits<char>, std::__1::allocator<char>>::append(char 
const*)
 >>> referenced by common.cc
 >>> 
               /usr/ports/mail/thunderbird/work/.build/toolkit/library/build/../../components/protobuf/common.o:(google::protobuf::internal::LogMessage::operator<<(char const*))
 >>> referenced by message_lite.cc
 >>> 
               /usr/ports/mail/thunderbird/work/.build/toolkit/library/build/../../components/protobuf/message_lite.o:(google::protobuf::MessageLite::LogInitializationErrorMessage() const)
 >>> referenced by message_lite.cc
 >>> 
               /usr/ports/mail/thunderbird/work/.build/toolkit/library/build/../../components/protobuf/message_lite.o:(google::protobuf::MessageLite::LogInitializationErrorMessage() const)
 >>> referenced 1299 more times

ld: error: undefined hidden symbol: std::__1::basic_string<char, 
std::__1::char_traits<char>, std::__1::allocator<char>>::resize(unsigned 
long, char)
 >>> referenced by message_lite.cc
 >>> 
               /usr/ports/mail/thunderbird/work/.build/toolkit/library/build/../../components/protobuf/message_lite.o:(google::protobuf::MessageLite::AppendPartialToString(std::__1::basic_string<char, std::__1::char_traits<char>, std
::__1::allocator<char>>*) const)
 >>> referenced by Unified_cpp_hunspell_glue0.cpp
 >>> 
               /usr/ports/mail/thunderbird/work/.build/toolkit/library/build/../../../extensions/spellcheck/hunspell/glue/Unified_cpp_hunspell_glue0.o:(mozHunspell::DictionaryData::ConvertCharset(nsTSubstring<char16_t> const&, std::_
_1::basic_string<char, std::__1::char_traits<char>, 
std::__1::allocator<char>>&))
 >>> referenced by Unified_cpp_hunspell_glue0.cpp
 >>> 
               /usr/ports/mail/thunderbird/work/.build/toolkit/library/build/../../../extensions/spellcheck/hunspell/glue/Unified_cpp_hunspell_glue0.o:(mozHunspell::DictionaryData::ConvertCharset(nsTSubstring<char16_t> const&, std::_
_1::basic_string<char, std::__1::char_traits<char>, 
std::__1::allocator<char>>&))
 >>> referenced 31 more times

ld: error: undefined hidden symbol: std::__1::basic_string<char, 
std::__1::char_traits<char>, std::__1::allocator<char>>::insert(unsigned 
long, char const*)
 >>> referenced by Unified_cpp_rtc_base_logging_gn0.cpp
 >>> 
               /usr/ports/mail/thunderbird/work/.build/toolkit/library/build/../../../third_party/libwebrtc/rtc_base/logging_gn/Unified_cpp_rtc_base_logging_gn0.o:(rtc::LogSink::OnLogMessage(std::__1::basic_string<char, std::__1::cha
r_traits<char>, std::__1::allocator<char>> const&, rtc::LoggingSeverity, 
char const*))
 >>> referenced by Unified_cpp_rtc_base_logging_gn0.cpp
 >>> 
               /usr/ports/mail/thunderbird/work/.build/toolkit/library/build/../../../third_party/libwebrtc/rtc_base/logging_gn/Unified_cpp_rtc_base_logging_gn0.o:(rtc::LogSink::OnLogMessage(absl::string_view, rtc::LoggingSeverity, c
har const*))
 >>> referenced by Unified_cpp_rtc_base_logging_gn0.cpp
 >>> 
               /usr/ports/mail/thunderbird/work/.build/toolkit/library/build/../../../third_party/libwebrtc/rtc_base/logging_gn/Unified_cpp_rtc_base_logging_gn0.o:(rtc::LogSink::OnLogMessage(absl::string_view, rtc::LoggingSeverity, c
har const*))
 >>> referenced 5 more times

ld: error: undefined hidden symbol: std::__1::basic_string<char, 
std::__1::char_traits<char>, std::__1::allocator<char>>::insert(unsigned 
long, char const*, unsigned long)
 >>> referenced by VariablePacker.cpp
 >>> 
               /usr/ports/mail/thunderbird/work/.build/toolkit/library/build/../../../gfx/angle/targets/translator/VariablePacker.o:(sh::(anonymous namespace)::ExpandStructArrayVariable(sh::ShaderVariable const&, unsigned int, std::_
_1::basic_string<char, std::__1::char_traits<char>, 
std::__1::allocator<char>> const&, std::__1::vector<sh::ShaderVariable, 
std::__1::allocator<sh::ShaderVariable>>*))
 >>> referenced by Unified_cpp_dom_canvas0.cpp
 >>> 
               /usr/ports/mail/thunderbird/work/.build/toolkit/library/build/../../../dom/canvas/Unified_cpp_dom_canvas0.o:(mozilla::webgl::SanitizeRenderer(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocato
r<char>> const&))
clang++: error: linker command failed with exit code 1 (use -v to see 
invocation)
gmake[3]: *** 
[/usr/ports/mail/thunderbird/work/thunderbird-115.10.0/config/rules.mk:532: 
libxul.so] Error 1
gmake[3]: Leaving directory 
'/usr/ports/mail/thunderbird/work/.build/toolkit/library/build'
gmake[2]: *** 
[/usr/ports/mail/thunderbird/work/thunderbird-115.10.0/config/recurse.mk:72: 
toolkit/library/build/target] Error 2
gmake[2]: Leaving directory '/usr/ports/mail/thunderbird/work/.build'
gmake[1]: *** 
[/usr/ports/mail/thunderbird/work/thunderbird-115.10.0/config/recurse.mk:34: 
compile] Error 2
gmake[1]: Leaving directory '/usr/ports/mail/thunderbird/work/.build'
gmake: *** 
[/usr/ports/mail/thunderbird/work/thunderbird-115.10.0/config/rules.mk:361: 
all] Error 2
*** [do-build] Error code 1

make[1]: stopped in /usr/ports/mail/thunderbird
make[1]: 1 error

make[1]: stopped in /usr/ports/mail/thunderbird
*** [stage] Error code 2

make: stopped in /usr/ports/mail/thunderbird
make: 1 error

make: stopped in /usr/ports/mail/thunderbird