Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 947338 - =www-client/firefox-133.0.3: build fails on riscv/musl with error: no matching member function for call to 'ma_cmp_set'
Summary: =www-client/firefox-133.0.3: build fails on riscv/musl with error: no matchin...
Status: CONFIRMED
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: Current packages (show other bugs)
Hardware: All Linux
: Normal normal
Assignee: Mozilla Gentoo Team
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2025-01-01 22:57 UTC by Michael Orlitzky
Modified: 2025-03-13 02:29 UTC (History)
1 user (show)

See Also:
Package list:
Runtime testing required: ---


Attachments
emerge-info.txt (emerge-info.txt,6.42 KB, text/plain)
2025-01-01 22:57 UTC, Michael Orlitzky
Details
build.log.xz (build.log.xz,646.60 KB, application/x-xz)
2025-01-01 22:58 UTC, Michael Orlitzky
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Michael Orlitzky gentoo-dev 2025-01-01 22:57:44 UTC
Created attachment 915705 [details]
emerge-info.txt

A new and exciting error to add to the list. Four instances of e.g.

66:53.44 $WORKDIR/firefox-133.0.3/js/src/jit/riscv64/MacroAssembler-riscv64-inl.h:1439:3: error: no matching member function for call to 'ma_cmp_set'

$ emerge -pv1 =www-client/firefox-133.0.3
...
[ebuild  N     ] www-client/firefox-133.0.3:rapid::gentoo  USE="clang dbus hardened system-av1 system-harfbuzz system-icu system-jpeg (system-libevent) system-libvpx system-png system-webp wayland -X -debug (-eme-free) -gmp-autoupdate -gnome-shell -hwaccel -jack -jumbo-build -libproxy -openh264 (-pgo) -pulseaudio (-selinux) -sndio -telemetry (-valgrind) (-wasm) -wifi" L10N="-ach -af -an -ar -ast -az -be -bg -bn -br -bs -ca -ca-valencia -cak -cs -cy -da -de -dsb -el -en-CA -en-GB -eo -es-AR -es-CL -es-ES -es-MX -et -eu -fa -ff -fi -fr -fur -fy -ga -gd -gl -gn -gu -he -hi -hr -hsb -hu -hy -ia -id -is -it -ja -ka -kab -kk -km -kn -ko -lij -lt -lv -mk -mr -ms -my -nb -ne -nl -nn -oc -pa -pl -pt-BR -pt-PT -rm -ro -ru -sc -sco -si -sk -skr -sl -son -sq -sr -sv -szl -ta -te -th -tl -tr -trs -uk -ur -uz -vi -xh -zh-CN -zh-TW" LLVM_SLOT="19 -17 -18" 0 KiB
Comment 1 Michael Orlitzky gentoo-dev 2025-01-01 22:58:00 UTC
Created attachment 915706 [details]
build.log.xz
Comment 2 Michael Orlitzky gentoo-dev 2025-01-04 00:27:13 UTC
Essentially the same thing with USE="-clang jumbo-build",

18:37.15 $WORKDIR/firefox-133.0.3/js/src/jit/riscv64/MacroAssembler-riscv64-inl.h:1439:13: error: no matching function for call to 'js::jit::MacroAssembler::ma_cmp_set(js::jit::Register&, js::jit::Address&, js::jit::Register&, js::jit::Assembler::Condition&)'


and two new ones due to random chance and/or jumbo-build:

19:02.10 $WORKDIR/firefox-133.0.3/js/src/wasm/WasmBaselineCompile.cpp:1971:31: error: 'WasmCallRefCallScratchReg2' was not declared in this scope

19:02.13 $WORKDIR/firefox-133.0.3/js/src/wasm/WasmBaselineCompile.cpp:1991:64: error: use of deleted function 'js::jit::CodeOffset js::jit::MacroAssembler::move32WithPatch(js::jit::Register)'
Comment 3 Joonas Niilola gentoo-dev 2025-01-04 06:49:48 UTC
Kind of anxious to see wasm there, but I wonder if it's jit-related like bug 937867
Comment 4 Michael Orlitzky gentoo-dev 2025-01-04 23:53:05 UTC
(In reply to Joonas Niilola from comment #3)
> Kind of anxious to see wasm there, but I wonder if it's jit-related like bug
> 937867

Funny enough, if I disable the JIT, then I get a build failure that looks a lot like what I reported in bug 947337 for firefox-128.5.1:

222:50.66 ld.lld: error: undefined symbol: webrtc::DesktopCaptureOptions::DesktopCaptureOptions(webrtc::DesktopCaptureOptions const&)
222:50.68 ld.lld: error: undefined symbol: webrtc::DesktopCapturer::~DesktopCapturer()
222:50.69 ld.lld: error: undefined symbol: webrtc::DesktopCaptureOptions::DesktopCaptureOptions()
222:50.71 ld.lld: error: undefined symbol: webrtc::DesktopCaptureOptions::CreateDefault()
222:50.72 ld.lld: error: undefined symbol: webrtc::DesktopCaptureOptions::operator=(webrtc::DesktopCaptureOptions&&)
222:50.74 ld.lld: error: undefined symbol: webrtc::DesktopCaptureOptions::~DesktopCaptureOptions()
222:50.77 ld.lld: error: undefined symbol: webrtc::DesktopCapturer::CreateGenericCapturer(webrtc::DesktopCaptureOptions const&)
222:50.79 ld.lld: error: undefined symbol: webrtc::DesktopCapturer::CreateScreenCapturer(webrtc::DesktopCaptureOptions const&)
222:50.80 ld.lld: error: undefined symbol: webrtc::DesktopCapturer::CreateWindowCapturer(webrtc::DesktopCaptureOptions const&)
222:50.82 ld.lld: error: undefined symbol: webrtc::DesktopAndCursorComposer::DesktopAndCursorComposer(std::unique_ptr<webrtc::DesktopCapturer, std::default_delete<webrtc::DesktopCapturer>>, webrtc::DesktopCaptureOptions const&)
222:50.83 ld.lld: error: undefined symbol: webrtc::DesktopCapturerDifferWrapper::DesktopCapturerDifferWrapper(std::unique_ptr<webrtc::DesktopCapturer, std::default_delete<webrtc::DesktopCapturer>>)
222:50.84 ld.lld: error: undefined symbol: webrtc::BasicDesktopFrame::BasicDesktopFrame(webrtc::DesktopSize)
222:50.86 ld.lld: error: undefined symbol: webrtc::DesktopFrame::CopyPixelsFrom(unsigned char const*, int, webrtc::DesktopRect const&)
222:50.87 ld.lld: error: undefined symbol: webrtc::DesktopCapturer::GetDelegatedSourceListController()
222:50.88 ld.lld: error: undefined symbol: webrtc::DesktopCapturer::SetSharedMemoryFactory(std::unique_ptr<webrtc::SharedMemoryFactory, std::default_delete<webrtc::SharedMemoryFactory>>)
222:50.89 ld.lld: error: undefined symbol: webrtc::DesktopCapturer::SetExcludedWindow(long)
Comment 5 Michael Orlitzky gentoo-dev 2025-03-13 02:29:56 UTC
I finally managed to build 136.0. On riscv, or musl, or riscv+musl:

1. --enable-jit doesn't work (original report)
2. --enable-webrtc doesn't work (comment 4)
3. LTO with clang doesn't work

I haven't tried with GCC+LTO. But in short, what works is

  EXTRA_ECONF="--disable-jit --disable-webrtc"

and a CFLAGS/CXXFLAGS override to omit my -flto flags.