Description of problem: Firefox 108.0 fails to build on s390x. Looks like linking error. https://kojipkgs.fedoraproject.org//work/tasks/4392/95084392/build.log 140:38.94 /usr/bin/ld: /builddir/build/BUILD/firefox-108.0/objdir/toolkit/library/build/../../components/uniffi-js/Unified_cpp_uniffi-js0.o: in function `mozilla::uniffi::ScaffoldingCallHandler<mozilla::uniffi::ScaffoldingObjectConverter<&mozilla::uniffi::kTabsTabsStorePointerType>, mozilla::uniffi::ScaffoldingConverter<mozilla::uniffi::RustBuffer, mozilla::uniffi::ScaffoldingConverterTagDefault> >::CallAsync(void* (*)(mozilla::uniffi::RustBuffer, mozilla::uniffi::RustCallStatus*), mozilla::dom::GlobalObject const&, mozilla::dom::Sequence<mozilla::dom::OwningDoubleOrArrayBufferOrUniFFIPointer> const&, nsTLiteralString<char> const&, mozilla::ErrorResult&) [clone .constprop.0]': 140:38.95 /builddir/build/BUILD/firefox-108.0/objdir/dist/include/mozilla/dom/ScaffoldingCall.h:78: undefined reference to `tabs_4d51_TabsStore_new' 140:38.95 /usr/bin/ld: /builddir/build/BUILD/firefox-108.0/objdir/dist/include/mozilla/dom/ScaffoldingCall.h:78: undefined reference to `tabs_4d51_TabsStore_new' 140:38.95 /usr/bin/ld: /builddir/build/BUILD/firefox-108.0/objdir/toolkit/library/build/../../components/uniffi-js/Unified_cpp_uniffi-js0.o: in function `mozilla::uniffi::UniFFICallSync(mozilla::dom::GlobalObject const&, unsigned long, mozilla::dom::Sequence<mozilla::dom::OwningDoubleOrArrayBufferOrUniFFIPointer> const&, mozilla::dom::RootedDictionary<mozilla::dom::UniFFIScaffoldingCallResult>&, mozilla::ErrorResult&)': 140:38.95 /builddir/build/BUILD/firefox-108.0/toolkit/components/uniffi-js/UniFFIGeneratedScaffolding.cpp:236: undefined reference to `tabs_4d51_TabsBridgedEngine_reset' 140:38.95 /usr/bin/ld: /builddir/build/BUILD/firefox-108.0/toolkit/components/uniffi-js/UniFFIGeneratedScaffolding.cpp:231: undefined reference to `tabs_4d51_TabsBridgedEngine_sync_finished' 140:38.95 /usr/bin/ld: /builddir/build/BUILD/firefox-108.0/objdir/toolkit/library/build/../../components/uniffi-js/Unified_cpp_uniffi-js0.o: in function `mozilla::uniffi::UniFFICallSync(mozilla::dom::GlobalObject const&, unsigned long, mozilla::dom::Sequence<mozilla::dom::OwningDoubleOrArrayBufferOrUniFFIPointer> const&, mozilla::dom::RootedDictionary<mozilla::dom::UniFFIScaffoldingCallResult>&, mozilla::ErrorResult&)': 140:38.95 /builddir/build/BUILD/firefox-108.0/objdir/dist/include/mozilla/dom/ScaffoldingCall.h:198: undefined reference to `tabs_4d51_TabsBridgedEngine_set_uploaded' 140:38.95 /usr/bin/ld: /builddir/build/BUILD/firefox-108.0/objdir/toolkit/library/build/../../components/uniffi-js/Unified_cpp_uniffi-js0.o: in function `mozilla::uniffi::UniFFICallSync(mozilla::dom::GlobalObject const&, unsigned long, mozilla::dom::Sequence<mozilla::dom::OwningDoubleOrArrayBufferOrUniFFIPointer> const&, mozilla::dom::RootedDictionary<mozilla::dom::UniFFIScaffoldingCallResult>&, mozilla::ErrorResult&)': 140:38.95 /builddir/build/BUILD/firefox-108.0/toolkit/components/uniffi-js/UniFFIGeneratedScaffolding.cpp:221: undefined reference to `tabs_4d51_TabsBridgedEngine_apply' 140:38.95 /usr/bin/ld: /builddir/build/BUILD/firefox-108.0/toolkit/components/uniffi-js/UniFFIGeneratedScaffolding.cpp:216: undefined reference to `tabs_4d51_TabsBridgedEngine_store_incoming' 140:38.95 /usr/bin/ld: /builddir/build/BUILD/firefox-108.0/toolkit/components/uniffi-js/UniFFIGeneratedScaffolding.cpp:211: undefined reference to `tabs_4d51_TabsBridgedEngine_sync_started' 140:38.95 /usr/bin/ld: /builddir/build/BUILD/firefox-108.0/toolkit/components/uniffi-js/UniFFIGeneratedScaffolding.cpp:206: undefined reference to `tabs_4d51_TabsBridgedEngine_prepare_for_sync' 140:38.95 /usr/bin/ld: /builddir/build/BUILD/firefox-108.0/objdir/toolkit/library/build/../../components/uniffi-js/Unified_cpp_uniffi-js0.o: in function `mozilla::uniffi::UniFFICallSync(mozilla::dom::GlobalObject const&, unsigned long, mozilla::dom::Sequence<mozilla::dom::OwningDoubleOrArrayBufferOrUniFFIPointer> const&, mozilla::dom::RootedDictionary<mozilla::dom::UniFFIScaffoldingCallResult>&, mozilla::ErrorResult&)': 140:38.95 /builddir/build/BUILD/firefox-108.0/objdir/dist/include/mozilla/dom/ScaffoldingCall.h:198: undefined reference to `tabs_4d51_TabsBridgedEngine_ensure_current_sync_id' 140:38.95 /usr/bin/ld: /builddir/build/BUILD/firefox-108.0/objdir/toolkit/library/build/../../components/uniffi-js/Unified_cpp_uniffi-js0.o: in function `mozilla::uniffi::UniFFICallSync(mozilla::dom::GlobalObject const&, unsigned long, mozilla::dom::Sequence<mozilla::dom::OwningDoubleOrArrayBufferOrUniFFIPointer> const&, mozilla::dom::RootedDictionary<mozilla::dom::UniFFIScaffoldingCallResult>&, mozilla::ErrorResult&)': 140:38.95 /builddir/build/BUILD/firefox-108.0/toolkit/components/uniffi-js/UniFFIGeneratedScaffolding.cpp:196: undefined reference to `tabs_4d51_TabsBridgedEngine_reset_sync_id' 140:38.95 /usr/bin/ld: /builddir/build/BUILD/firefox-108.0/toolkit/components/uniffi-js/UniFFIGeneratedScaffolding.cpp:191: undefined reference to `tabs_4d51_TabsBridgedEngine_sync_id' 140:38.95 /usr/bin/ld: /builddir/build/BUILD/firefox-108.0/objdir/toolkit/library/build/../../components/uniffi-js/Unified_cpp_uniffi-js0.o: in function `mozilla::uniffi::UniFFICallSync(mozilla::dom::GlobalObject const&, unsigned long, mozilla::dom::Sequence<mozilla::dom::OwningDoubleOrArrayBufferOrUniFFIPointer> const&, mozilla::dom::RootedDictionary<mozilla::dom::UniFFIScaffoldingCallResult>&, mozilla::ErrorResult&)': 140:38.95 /builddir/build/BUILD/firefox-108.0/objdir/dist/include/mozilla/dom/ScaffoldingCall.h:198: undefined reference to `tabs_4d51_TabsBridgedEngine_set_last_sync' 140:38.95 /usr/bin/ld: /builddir/build/BUILD/firefox-108.0/objdir/dist/include/mozilla/dom/ScaffoldingCall.h:198: undefined reference to `tabs_4d51_TabsBridgedEngine_last_sync' 140:38.95 /usr/bin/ld: /builddir/build/BUILD/firefox-108.0/objdir/dist/include/mozilla/dom/ScaffoldingCall.h:198: undefined reference to `tabs_4d51_TabsStore_bridged_engine' 140:38.95 /usr/bin/ld: /builddir/build/BUILD/firefox-108.0/objdir/dist/include/mozilla/dom/ScaffoldingCall.h:198: undefined reference to `tabs_4d51_TabsStore_sync' 140:38.95 /usr/bin/ld: /builddir/build/BUILD/firefox-108.0/objdir/dist/include/mozilla/dom/ScaffoldingCall.h:198: undefined reference to `tabs_4d51_TabsStore_set_local_tabs' 140:38.95 /usr/bin/ld: /builddir/build/BUILD/firefox-108.0/objdir/toolkit/library/build/../../components/uniffi-js/Unified_cpp_uniffi-js0.o: in function `mozilla::uniffi::UniFFICallSync(mozilla::dom::GlobalObject const&, unsigned long, mozilla::dom::Sequence<mozilla::dom::OwningDoubleOrArrayBufferOrUniFFIPointer> const&, mozilla::dom::RootedDictionary<mozilla::dom::UniFFIScaffoldingCallResult>&, mozilla::ErrorResult&)': 140:38.95 /builddir/build/BUILD/firefox-108.0/toolkit/components/uniffi-js/UniFFIGeneratedScaffolding.cpp:166: undefined reference to `tabs_4d51_TabsStore_reset' 140:38.95 /usr/bin/ld: /builddir/build/BUILD/firefox-108.0/objdir/toolkit/library/build/../../components/uniffi-js/Unified_cpp_uniffi-js0.o: in function `mozilla::uniffi::UniFFICallSync(mozilla::dom::GlobalObject const&, unsigned long, mozilla::dom::Sequence<mozilla::dom::OwningDoubleOrArrayBufferOrUniFFIPointer> const&, mozilla::dom::RootedDictionary<mozilla::dom::UniFFIScaffoldingCallResult>&, mozilla::ErrorResult&)': 140:38.95 /builddir/build/BUILD/firefox-108.0/objdir/dist/include/mozilla/dom/ScaffoldingCall.h:198: undefined reference to `tabs_4d51_TabsStore_new' 140:38.95 /usr/bin/ld: /builddir/build/BUILD/firefox-108.0/objdir/toolkit/library/build/../../components/uniffi-js/Unified_cpp_uniffi-js0.o: in function `mozilla::uniffi::UniFFICallSync(mozilla::dom::GlobalObject const&, unsigned long, mozilla::dom::Sequence<mozilla::dom::OwningDoubleOrArrayBufferOrUniFFIPointer> const&, mozilla::dom::RootedDictionary<mozilla::dom::UniFFIScaffoldingCallResult>&, mozilla::ErrorResult&)': 140:38.95 /builddir/build/BUILD/firefox-108.0/toolkit/components/uniffi-js/UniFFIGeneratedScaffolding.cpp:241: undefined reference to `tabs_4d51_TabsBridgedEngine_wipe' 140:38.95 /usr/bin/ld: /builddir/build/BUILD/firefox-108.0/toolkit/components/uniffi-js/UniFFIGeneratedScaffolding.cpp:161: undefined reference to `tabs_4d51_TabsStore_register_with_sync_manager' 140:38.95 /usr/bin/ld: /builddir/build/BUILD/firefox-108.0/objdir/toolkit/library/build/../../components/uniffi-js/Unified_cpp_uniffi-js0.o: in function `mozilla::uniffi::UniFFICallSync(mozilla::dom::GlobalObject const&, unsigned long, mozilla::dom::Sequence<mozilla::dom::OwningDoubleOrArrayBufferOrUniFFIPointer> const&, mozilla::dom::RootedDictionary<mozilla::dom::UniFFIScaffoldingCallResult>&, mozilla::ErrorResult&)': 140:38.95 /builddir/build/BUILD/firefox-108.0/objdir/dist/include/mozilla/dom/ScaffoldingCall.h:198: undefined reference to `tabs_4d51_TabsStore_get_all' 140:38.95 /usr/bin/ld: /builddir/build/BUILD/firefox-108.0/objdir/toolkit/library/build/../../components/uniffi-js/Unified_cpp_uniffi-js0.o: in function `mozilla::uniffi::UniFFICallAsync(mozilla::dom::GlobalObject const&, unsigned long, mozilla::dom::Sequence<mozilla::dom::OwningDoubleOrArrayBufferOrUniFFIPointer> const&, mozilla::ErrorResult&)': 140:38.95 /builddir/build/BUILD/firefox-108.0/toolkit/components/uniffi-js/UniFFIGeneratedScaffolding.cpp:132: undefined reference to `tabs_4d51_TabsBridgedEngine_reset' 140:38.95 /usr/bin/ld: /builddir/build/BUILD/firefox-108.0/toolkit/components/uniffi-js/UniFFIGeneratedScaffolding.cpp:128: undefined reference to `tabs_4d51_TabsBridgedEngine_sync_finished' 140:38.95 /usr/bin/ld: /builddir/build/BUILD/firefox-108.0/toolkit/components/uniffi-js/UniFFIGeneratedScaffolding.cpp:120: undefined reference to `tabs_4d51_TabsBridgedEngine_apply' 140:38.95 /usr/bin/ld: /builddir/build/BUILD/firefox-108.0/toolkit/components/uniffi-js/UniFFIGeneratedScaffolding.cpp:116: undefined reference to `tabs_4d51_TabsBridgedEngine_store_incoming' 140:38.95 /usr/bin/ld: /builddir/build/BUILD/firefox-108.0/toolkit/components/uniffi-js/UniFFIGeneratedScaffolding.cpp:112: undefined reference to `tabs_4d51_TabsBridgedEngine_sync_started' 140:38.95 /usr/bin/ld: /builddir/build/BUILD/firefox-108.0/toolkit/components/uniffi-js/UniFFIGeneratedScaffolding.cpp:108: undefined reference to `tabs_4d51_TabsBridgedEngine_prepare_for_sync' 140:38.95 /usr/bin/ld: /builddir/build/BUILD/firefox-108.0/objdir/toolkit/library/build/../../components/uniffi-js/Unified_cpp_uniffi-js0.o: in function `mozilla::uniffi::UniFFICallAsync(mozilla::dom::GlobalObject const&, unsigned long, mozilla::dom::Sequence<mozilla::dom::OwningDoubleOrArrayBufferOrUniFFIPointer> const&, mozilla::ErrorResult&)': 140:38.95 /builddir/build/BUILD/firefox-108.0/objdir/dist/include/mozilla/dom/ScaffoldingCall.h:78: undefined reference to `tabs_4d51_TabsBridgedEngine_ensure_current_sync_id' 140:38.95 /usr/bin/ld: /builddir/build/BUILD/firefox-108.0/objdir/dist/include/mozilla/dom/ScaffoldingCall.h:78: undefined reference to `tabs_4d51_TabsBridgedEngine_ensure_current_sync_id' 140:38.95 /usr/bin/ld: /builddir/build/BUILD/firefox-108.0/objdir/toolkit/library/build/../../components/uniffi-js/Unified_cpp_uniffi-js0.o: in function `mozilla::uniffi::UniFFICallAsync(mozilla::dom::GlobalObject const&, unsigned long, mozilla::dom::Sequence<mozilla::dom::OwningDoubleOrArrayBufferOrUniFFIPointer> const&, mozilla::ErrorResult&)': 140:38.95 /builddir/build/BUILD/firefox-108.0/toolkit/components/uniffi-js/UniFFIGeneratedScaffolding.cpp:100: undefined reference to `tabs_4d51_TabsBridgedEngine_reset_sync_id' 140:38.95 /usr/bin/ld: /builddir/build/BUILD/firefox-108.0/toolkit/components/uniffi-js/UniFFIGeneratedScaffolding.cpp:96: undefined reference to `tabs_4d51_TabsBridgedEngine_sync_id' 140:38.95 /usr/bin/ld: /builddir/build/BUILD/firefox-108.0/objdir/toolkit/library/build/../../components/uniffi-js/Unified_cpp_uniffi-js0.o: in function `mozilla::uniffi::UniFFICallAsync(mozilla::dom::GlobalObject const&, unsigned long, mozilla::dom::Sequence<mozilla::dom::OwningDoubleOrArrayBufferOrUniFFIPointer> const&, mozilla::ErrorResult&)': 140:38.95 /builddir/build/BUILD/firefox-108.0/objdir/dist/include/mozilla/dom/ScaffoldingCall.h:78: undefined reference to `tabs_4d51_TabsBridgedEngine_last_sync' 140:38.95 /usr/bin/ld: /builddir/build/BUILD/firefox-108.0/objdir/dist/include/mozilla/dom/ScaffoldingCall.h:78: undefined reference to `tabs_4d51_TabsStore_bridged_engine' 140:38.95 /usr/bin/ld: /builddir/build/BUILD/firefox-108.0/objdir/toolkit/library/build/../../components/uniffi-js/Unified_cpp_uniffi-js0.o: in function `mozilla::uniffi::UniFFICallAsync(mozilla::dom::GlobalObject const&, unsigned long, mozilla::dom::Sequence<mozilla::dom::OwningDoubleOrArrayBufferOrUniFFIPointer> const&, mozilla::ErrorResult&)': 140:38.95 /builddir/build/BUILD/firefox-108.0/toolkit/components/uniffi-js/UniFFIGeneratedScaffolding.cpp:76: undefined reference to `tabs_4d51_TabsStore_reset' 140:38.95 /usr/bin/ld: /builddir/build/BUILD/firefox-108.0/toolkit/components/uniffi-js/UniFFIGeneratedScaffolding.cpp:72: undefined reference to `tabs_4d51_TabsStore_register_with_sync_manager' 140:38.95 /usr/bin/ld: /builddir/build/BUILD/firefox-108.0/objdir/toolkit/library/build/../../components/uniffi-js/Unified_cpp_uniffi-js0.o: in function `mozilla::uniffi::UniFFICallAsync(mozilla::dom::GlobalObject const&, unsigned long, mozilla::dom::Sequence<mozilla::dom::OwningDoubleOrArrayBufferOrUniFFIPointer> const&, mozilla::ErrorResult&)': 140:38.95 /builddir/build/BUILD/firefox-108.0/objdir/dist/include/mozilla/dom/ScaffoldingCall.h:78: undefined reference to `tabs_4d51_TabsStore_set_local_tabs' 140:38.95 /usr/bin/ld: /builddir/build/BUILD/firefox-108.0/objdir/dist/include/mozilla/dom/ScaffoldingCall.h:78: undefined reference to `tabs_4d51_TabsStore_set_local_tabs' 140:38.95 /usr/bin/ld: /builddir/build/BUILD/firefox-108.0/objdir/dist/include/mozilla/dom/ScaffoldingCall.h:78: undefined reference to `tabs_4d51_TabsStore_get_all' 140:38.95 /usr/bin/ld: /builddir/build/BUILD/firefox-108.0/objdir/toolkit/library/build/../../components/uniffi-js/Unified_cpp_uniffi-js0.o: in function `mozilla::uniffi::UniFFICallAsync(mozilla::dom::GlobalObject const&, unsigned long, mozilla::dom::Sequence<mozilla::dom::OwningDoubleOrArrayBufferOrUniFFIPointer> const&, mozilla::ErrorResult&)': 140:38.95 /builddir/build/BUILD/firefox-108.0/toolkit/components/uniffi-js/UniFFIGeneratedScaffolding.cpp:136: undefined reference to `tabs_4d51_TabsBridgedEngine_wipe' 140:38.95 /usr/bin/ld: /builddir/build/BUILD/firefox-108.0/objdir/toolkit/library/build/../../components/uniffi-js/Unified_cpp_uniffi-js0.o: in function `mozilla::uniffi::UniFFICallAsync(mozilla::dom::GlobalObject const&, unsigned long, mozilla::dom::Sequence<mozilla::dom::OwningDoubleOrArrayBufferOrUniFFIPointer> const&, mozilla::ErrorResult&)': 140:38.95 /builddir/build/BUILD/firefox-108.0/objdir/dist/include/mozilla/dom/ScaffoldingCall.h:78: undefined reference to `tabs_4d51_TabsBridgedEngine_set_uploaded' 140:38.95 /usr/bin/ld: /builddir/build/BUILD/firefox-108.0/objdir/dist/include/mozilla/dom/ScaffoldingCall.h:78: undefined reference to `tabs_4d51_TabsBridgedEngine_set_uploaded' 140:38.95 /usr/bin/ld: /builddir/build/BUILD/firefox-108.0/objdir/dist/include/mozilla/dom/ScaffoldingCall.h:78: undefined reference to `tabs_4d51_TabsStore_sync' 140:38.95 /usr/bin/ld: /builddir/build/BUILD/firefox-108.0/objdir/dist/include/mozilla/dom/ScaffoldingCall.h:78: undefined reference to `tabs_4d51_TabsStore_sync' 140:38.95 /usr/bin/ld: /builddir/build/BUILD/firefox-108.0/objdir/dist/include/mozilla/dom/ScaffoldingCall.h:78: undefined reference to `tabs_4d51_TabsBridgedEngine_set_last_sync' 140:38.95 /usr/bin/ld: /builddir/build/BUILD/firefox-108.0/objdir/toolkit/library/build/../../components/uniffi-js/Unified_cpp_uniffi-js0.o:(.data.rel.ro.local._ZN7mozilla6uniffiL33kTabsTabsBridgedEnginePointerTypeE+0x10): undefined reference to `ffi_tabs_4d51_TabsBridgedEngine_object_free' 140:38.95 /usr/bin/ld: /builddir/build/BUILD/firefox-108.0/objdir/toolkit/library/build/../../components/uniffi-js/Unified_cpp_uniffi-js0.o:(.data.rel.ro.local._ZN7mozilla6uniffiL25kTabsTabsStorePointerTypeE+0x10): undefined reference to `ffi_tabs_4d51_TabsStore_object_free' 140:47.37 /usr/bin/ld: libxul.so: hidden symbol `tabs_4d51_TabsBridgedEngine_prepare_for_sync' isn't defined 140:47.37 /usr/bin/ld: final link failed: bad value
The workaround from https://bugzilla.mozilla.org/show_bug.cgi?id=1797714 is to regenerate the binding at the build start. If that won't work (eg. needs rust stuff from the Internet), then patching is possible. I will take a look.
It seems to affect arm7 as well: https://kojipkgs.fedoraproject.org//work/tasks/4360/95084360/build.log 239:42.10 ld.lld: error: undefined hidden symbol: tabs_4d51_TabsStore_get_all 239:42.10 >>> referenced by Unified_cpp_uniffi-js0.cpp 239:42.10 >>> /builddir/build/BUILD/firefox-108.0/objdir/toolkit/library/build/../../components/uniffi-js/Unified_cpp_uniffi-js0.o:(mozilla::uniffi::UniFFICallAsync(mozilla::dom::GlobalObject const&, unsigned long long, mozilla::dom::Sequence<mozilla::dom::OwningDoubleOrArrayBufferOrUniFFIPointer> const&, mozilla::ErrorResult&)) 239:42.10 >>> referenced by Unified_cpp_uniffi-js0.cpp 239:42.10 >>> /builddir/build/BUILD/firefox-108.0/objdir/toolkit/library/build/../../components/uniffi-js/Unified_cpp_uniffi-js0.o:(mozilla::uniffi::UniFFICallSync(mozilla::dom::GlobalObject const&, unsigned long long, mozilla::dom::Sequence<mozilla::dom::OwningDoubleOrArrayBufferOrUniFFIPointer> const&, mozilla::dom::RootedDictionary<mozilla::dom::UniFFIScaffoldingCallResult>&, mozilla::ErrorResult&)) 239:42.86 ld.lld: error: undefined hidden symbol: tabs_4d51_TabsStore_set_local_tabs 239:42.86 >>> referenced by Unified_cpp_uniffi-js0.cpp 239:42.86 >>> /builddir/build/BUILD/firefox-108.0/objdir/toolkit/library/build/../../components/uniffi-js/Unified_cpp_uniffi-js0.o:(mozilla::uniffi::UniFFICallAsync(mozilla::dom::GlobalObject const&, unsigned long long, mozilla::dom::Sequence<mozilla::dom::OwningDoubleOrArrayBufferOrUniFFIPointer> const&, mozilla::ErrorResult&)) 239:42.86 >>> referenced by Unified_cpp_uniffi-js0.cpp
(In reply to Martin Stransky from comment #2) > It seems to affect arm7 as well: > https://kojipkgs.fedoraproject.org//work/tasks/4360/95084360/build.log interesting, but possible :-)
As I wrote in https://bugzilla.mozilla.org/show_bug.cgi?id=1797714#c33, armv7 adds yet another hash. I don't think we can regenerate the bindings on the fly, because it requires network access to build the tools, but I have the diffs that could be applied on top of the version 108 release sources.
This bug appears to have been reported against 'rawhide' during the Fedora Linux 38 development cycle. Changing version to 38.
Builds fine for s390x now: https://koji.fedoraproject.org/koji/buildinfo?buildID=2150402 Upstream bug has been fixed.