View previous topic :: View next topic |
Author |
Message |
luke_ n00b
Joined: 03 Sep 2024 Posts: 3
|
Posted: Tue Sep 03, 2024 7:40 pm Post subject: Can't emerge Firefox on a fresh LLVM install |
|
|
Hey all, I have a fairly new install using the "default/linux/amd64/23.0/llvm/systemd" profile and corresponding stage3 build. I've had no issues so far really building all of the XFCE4 desktop but Firefox is giving me some trouble. According to the build info it should be using clang/llvm:
Code: |
[ebuild N ] www-client/firefox-115.14.0 USE="X (clang) gmp-autoupdate system-av1 system-harfbuzz system-icu system-jpeg system-libevent system-libvpx system-webp -dbus -debug -eme-free -geckodriver -hardened -hwaccel -jack -libproxy -lto -openh264 -pgo -pulseaudio -screencast (-selinux) -sndio -system-png (-system-python-libs) -wayland -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 -sl -son -sq -sr -sv -szl -ta -te -th -tl -tr -trs -uk -ur -uz -vi -xh -zh-CN -zh-TW"
|
It builds for quite some time and then fails with this:
Code: |
5:17.51 /usr/lib/llvm/18/bin/x86_64-pc-linux-gnu-clang++-18 -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2 -fstack-protector-strong -fstack-clash-protection -fno-sized-deallocation -fno-
aligned-new -march=native -pipe -fno-exceptions -fPIC -fno-rtti -ffunction-sections -fdata-sections -fno-exceptions -fno-math-errno -pthread -pipe -O2 -fomit-frame-pointer -funwi
nd-tables -shared -Wl,-z,defs -Wl,--gc-sections -Wl,-h,libxul.so -o libxul.so /var/tmp/portage/www-client/firefox-115.14.0/work/firefox_build/toolkit/library/build/libxul_so.lis
t -lpthread -Wl,-O1 -Wl,--as-needed -Wl,-z,pack-relative-relocs -Wl,--as-needed -Wl,--compress-debug-sections=zlib -Wl,-rpath=/usr/lib64/firefox,--enable-new-dtags -fuse-ld=lld
-Wl,-z,noexecstack -Wl,-z,text -Wl,-z,relro -Wl,-z,nocopyreloc -Wl,-Bsymbolic-functions -fstack-protector-strong -fstack-clash-protection -Wl,-rpath-link,/var/tmp/portage/www-cl
ient/firefox-115.14.0/work/firefox_build/dist/bin -Wl,-rpath-link,/usr/lib ../../../js/src/build/libjs_static.a /var/tmp/portage/www-client/firefox-115.14.0/work/firefox_build/x
86_64-unknown-linux-gnu/release/libgkrust.a ../../../security/sandbox/linux/libmozsandbox.so ../../../config/external/lgpllibs/liblgpllibs.so ../../../config/external/sqlite/libm
ozsqlite3.so ../../../widget/gtk/mozgtk/libmozgtk.so -Wl,--version-script,symverscript -licui18n -licuuc -licudata -laom -ldav1d -lasound -lrt -lX11 -lXcomposite -lXdamage -lXex
t -lXfixes -lXrandr -lXrender -lXtst -lpthread -ldl -lc -lffi -lplds4 -lplc4 -lnspr4 -lz -lm -lssl3 -lsmime3 -lnss3 -lnssutil3 -lfreetype -lfontconfig -lgtk-3 -lgdk-3 -lpangocair
o-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 -lgraphite2 -lwebp -lwebpdemux -levent -lvpx -lpixman-1 -lxcb-s
hm -lX11-xcb -lxcb -lXcursor -lXi
5:17.52 ld.lld: error: undefined hidden symbol: std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>::assign(char const*)
5:17.52 >>> referenced by Unified_cpp_linux_launch0.cpp
5:17.52 >>> /var/tmp/portage/www-client/firefox-115.14.0/work/firefox_build/toolkit/library/build/../../../security/sandbox/linux/launch/Unified_cpp_linux_launch0.
|
This matches exactly the linking error from the Gentoo Clang wiki entry however that entry is implying that I've changed from the GCC to LLVM profile and I have not made any changes as it's a brand new system. I've tried re-emerging the base llvm components per that entry but the Firefox build fails at exactly the same part.
Here's the system info: https://pastebin.com/WYj7Kt27
I can provide the full build.log as well if someone points me to a place to upload it. Thanks! |
|
Back to top |
|
|
luke_ n00b
Joined: 03 Sep 2024 Posts: 3
|
Posted: Wed Sep 04, 2024 2:25 pm Post subject: |
|
|
I did some more digging with this and had a bit of a success. So the LLVM-systemd profile sets up everything to use libc++ as the standard C++ library (maybe obviously?) and I figured I'd try to compile Firefox against the GCC one (libstdc++) by creating an environment override just for that package like so:
Code: |
CXXFLAGS="-stdlib=libstdc++ ${CFLAGS}"
|
After that change Firefox finished building with no errors. Great! I'm unsure though why it wouldn't find the proper symbols in libc++ however so I'm doing a full system rebuild with that env change removed to see if there's some dependencies that were built incorrectly. |
|
Back to top |
|
|
Juippisi Developer
Joined: 30 Sep 2005 Posts: 750 Location: /home
|
Posted: Sat Sep 07, 2024 5:50 am Post subject: |
|
|
IIRC there's a problem exactly when using libc++-18. So you can downgrade to llvm-17 toolchain and use that, or compile firefox with "-clang" use flag to force using gcc.
The point of using system-wide libc++ is that you then can get rid of gcc and glibc. If you force usage of libstdc++ on pure llvm profile - then you shouldn't be using the llvm profile :) you can go system-wide clang/llvm (with gcc & glibc installed) using any default profile too.
Mixing libc++ and libstdc++ like that is a pretty sure way to break things along the way. |
|
Back to top |
|
|
luke_ n00b
Joined: 03 Sep 2024 Posts: 3
|
Posted: Sun Sep 08, 2024 1:47 pm Post subject: |
|
|
Yeah I was mostly trying different workarounds. For now firefox:rapid builds and works with the latest llvm. I'm also kind of curious when you say it's a known issue, I looked everywhere I could for issues, bugs and open PRs around the Firefox package and couldn't find anything. Do you have any pointers where to look for this stuff in the future? |
|
Back to top |
|
|
Juippisi Developer
Joined: 30 Sep 2005 Posts: 750 Location: /home
|
Posted: Mon Sep 09, 2024 6:20 am Post subject: |
|
|
luke_ wrote: |
Do you have any pointers where to look for this stuff in the future?
|
Upstream bugzilla :)
https://bugzilla.mozilla.org/show_bug.cgi?id=1874059
but I'll admit these things aren't always obvious or easy to find. Also I'm pretty sure there's a bug open in Gentoo's bugzilla about it, but the libcxx-18 connection is probably hidden somewhere in comments. |
|
Back to top |
|
|
|
|
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum
|
|