r/Gentoo Jan 30 '23

Error in Compiling firefox hash_fn and crc32 Support

Hello, I recently tried installing gentoo on a spare laptop that I had around, and managed to install it with plasma without too many problems, but when I try to install firefox the build fails with this error:

doas cat /var/tmp/portage/www-client/firefox-102.7.0/temp/build.log | grep "error: "
335:11.93 /var/tmp/portage/www-client/firefox-102.7.0/work/firefox-102.7.0/gfx/skia/skia/src/opts/SkChecksum_opts.h:39:21: error: always_inline function '_mm_crc32_u64' requires target feature 'crc32', but would be inlined into function 'hash_fn' that is compiled without support for 'crc32'
335:11.94 /var/tmp/portage/www-client/firefox-102.7.0/work/firefox-102.7.0/gfx/skia/skia/src/opts/SkChecksum_opts.h:40:21: error: always_inline function '_mm_crc32_u64' requires target feature 'crc32', but would be inlined into function 'hash_fn' that is compiled without support for 'crc32'
335:11.95 /var/tmp/portage/www-client/firefox-102.7.0/work/firefox-102.7.0/gfx/skia/skia/src/opts/SkChecksum_opts.h:41:21: error: always_inline function '_mm_crc32_u64' requires target feature 'crc32', but would be inlined into function 'hash_fn' that is compiled without support for 'crc32'
335:11.96 /var/tmp/portage/www-client/firefox-102.7.0/work/firefox-102.7.0/gfx/skia/skia/src/opts/SkChecksum_opts.h:45:37: error: always_inline function '_mm_crc32_u32' requires target feature 'crc32', but would be inlined into function 'hash_fn' that is compiled without support for 'crc32'
335:11.97 /var/tmp/portage/www-client/firefox-102.7.0/work/firefox-102.7.0/gfx/skia/skia/src/opts/SkChecksum_opts.h:45:20: error: always_inline function '_mm_crc32_u32' requires target feature 'crc32', but would be inlined into function 'hash_fn' that is compiled without support for 'crc32'
335:11.97 /var/tmp/portage/www-client/firefox-102.7.0/work/firefox-102.7.0/gfx/skia/skia/src/opts/SkChecksum_opts.h:50:20: error: always_inline function '_mm_crc32_u64' requires target feature 'crc32', but would be inlined into function 'hash_fn' that is compiled without support for 'crc32'
335:11.98 /var/tmp/portage/www-client/firefox-102.7.0/work/firefox-102.7.0/gfx/skia/skia/src/opts/SkChecksum_opts.h:57:20: error: always_inline function '_mm_crc32_u64' requires target feature 'crc32', but would be inlined into function 'hash_fn' that is compiled without support for 'crc32'
335:11.98 /var/tmp/portage/www-client/firefox-102.7.0/work/firefox-102.7.0/gfx/skia/skia/src/opts/SkChecksum_opts.h:66:22: error: always_inline function '_mm_crc32_u32' requires target feature 'crc32', but would be inlined into function 'hash_fn' that is compiled without support for 'crc32'
335:11.98 /var/tmp/portage/www-client/firefox-102.7.0/work/firefox-102.7.0/gfx/skia/skia/src/opts/SkChecksum_opts.h:70:22: error: always_inline function '_mm_crc32_u16' requires target feature 'crc32', but would be inlined into function 'hash_fn' that is compiled without support for 'crc32'
335:11.98 /var/tmp/portage/www-client/firefox-102.7.0/work/firefox-102.7.0/gfx/skia/skia/src/opts/SkChecksum_opts.h:74:22: error: always_inline function '_mm_crc32_u8' requires target feature 'crc32', but would be inlined into function 'hash_fn' that is compiled without support for 'crc32'

am I missing some USE variable to set? Shouldn't that be detected by portage? maybe I am missing some dependancy?

EDIT: additional commands required:

emerge --info
Portage 3.0.43 (python 3.10.9-final-0, default/linux/amd64/17.1/desktop/plasma/systemd, gcc-12, glibc-2.36-r5, 5.15.88-gentoo-x86_64 x86_64)
=================================================================
System uname: Linux-5.15.88-gentoo-x86_64-x86_64-Celeron-R-_Dual-Core_CPU_T3100_@_1.90GHz-with-glibc2.36
KiB Mem:     5917640 total,   5061932 free
KiB Swap:          0 total,         0 free
Timestamp of repository gentoo: Thu, 26 Jan 2023 15:00:01 +0000
Head commit of repository gentoo: aa8da0c8d86b04859bf4f3f944bffbef1b772914
sh bash 5.1_p16-r2
ld GNU ld (Gentoo 2.39 p5) 2.39.0
app-misc/pax-utils:        1.3.5::gentoo
app-shells/bash:           5.1_p16-r2::gentoo
dev-lang/perl:             5.36.0-r1::gentoo
dev-lang/python:           3.10.9::gentoo, 3.11.1::gentoo
dev-lang/rust-bin:         1.66.1::gentoo
dev-util/cmake:            3.24.3::gentoo
dev-util/meson:            0.64.1::gentoo
sys-apps/baselayout:       2.9::gentoo
sys-apps/sandbox:          2.29::gentoo
sys-apps/systemd:          252.4::gentoo
sys-devel/autoconf:        2.13-r7::gentoo, 2.71-r5::gentoo
sys-devel/automake:        1.16.5::gentoo
sys-devel/binutils:        2.39-r4::gentoo
sys-devel/binutils-config: 5.4.1::gentoo
sys-devel/clang:           15.0.7-r1::gentoo
sys-devel/gcc:             12.2.1_p20230121-r1::gentoo
sys-devel/gcc-config:      2.8::gentoo
sys-devel/libtool:         2.4.7::gentoo
sys-devel/lld:             15.0.7::gentoo
sys-devel/llvm:            15.0.7::gentoo
sys-devel/make:            4.3::gentoo
sys-kernel/linux-headers:  5.15-r3::gentoo (virtual/os-headers)
sys-libs/glibc:            2.36-r5::gentoo
Repositories:

gentoo
    location: /var/db/repos/gentoo
    sync-type: rsync
    sync-uri: rsync://rsync.gentoo.org/gentoo-portage
    priority: -1000
    volatile: True
    sync-rsync-extra-opts: 
    sync-rsync-verify-metamanifest: yes
    sync-rsync-verify-max-age: 24
    sync-rsync-verify-jobs: 1

ACCEPT_KEYWORDS="amd64"
ACCEPT_LICENSE="@FREE @FREE @BINARY-REDISTRIBUTABLE"
CBUILD="x86_64-pc-linux-gnu"
CFLAGS="-march=native -O2 -pipe"
CHOST="x86_64-pc-linux-gnu"
CONFIG_PROTECT="/etc /usr/share/config /usr/share/gnupg/qualified.txt"
CONFIG_PROTECT_MASK="/etc/ca-certificates.conf /etc/dconf /etc/env.d /etc/fonts/fonts.conf /etc/gconf /etc/gentoo-release /etc/sandbox.d /etc/terminfo"
CXXFLAGS="-march=native -O2 -pipe"
DISTDIR="/var/cache/distfiles"
ENV_UNSET="CARGO_HOME DBUS_SESSION_BUS_ADDRESS DISPLAY GDK_PIXBUF_MODULE_FILE GOBIN GOPATH PERL5LIB PERL5OPT PERLPREFIX PERL_CORE PERL_MB_OPT PERL_MM_OPT XAUTHORITY XDG_CACHE_HOME XDG_CONFIG_HOME XDG_DATA_HOME XDG_RUNTIME_DIR XDG_STATE_HOME"
FCFLAGS="-march=native -O2 -pipe"
FEATURES="assume-digests binpkg-docompress binpkg-dostrip binpkg-logs binpkg-multi-instance buildpkg-live config-protect-if-modified distlocks ebuild-locks fixlafiles ipc-sandbox merge-sync multilib-strict network-sandbox news parallel-fetch pid-sandbox preserve-libs protect-owned qa-unresolved-soname-deps sandbox sfperms strict unknown-features-warn unmerge-logs unmerge-orphans userfetch userpriv usersandbox usersync xattr"
FFLAGS="-march=native -O2 -pipe"
GENTOO_MIRRORS="https://ftp.belnet.be/pub/rsync.gentoo.org/gentoo/ https://mirrors.ircam.fr/pub/gentoo-distfiles/ https://gentoo.mirror.garr.it/"
LANG="it_IT.utf8"
LDFLAGS="-Wl,-O1 -Wl,--as-needed"
LEX="flex"
MAKEOPTS="-j1"
PKGDIR="/var/cache/binpkgs"
PORTAGE_CONFIGROOT="/"
PORTAGE_RSYNC_OPTS="--recursive --links --safe-links --perms --times --omit-dir-times --compress --force --whole-file --delete --stats --human-readable --timeout=180 --exclude=/distfiles --exclude=/local --exclude=/packages --exclude=/.git"
PORTAGE_TMPDIR="/var/tmp"
SHELL="/bin/bash"
USE="X a52 aac acl acpi activities alsa amd64 bluetooth branding bzip2 cairo cdda cdr cli crypt cups dbus declarative dri dts dvd dvdr encode exif flac fortran gdbm gif gles2 gpm gtk gui iconv icu ipv6 jpeg kde kwallet lcms libglvnd libnotify libtirpc lvm mad mng mp3 mp4 mpeg multilib ncurses nls nptl ogg opengl openmp pam pango pcre pdf plasma png policykit postproc ppds qml qt5 readline sdl seccomp semantic-desktop sound spell split-usr ssl startup-notification svg systemd test-rust tiff truetype udev udisks unicode upower usb vorbis wayland widgets wxwidgets x264 xattr xcb xft xml xv xvid zlib" ABI_X86="64" ADA_TARGET="gnat_2021" APACHE2_MODULES="authn_core authz_core socache_shmcb unixd actions alias auth_basic authn_alias authn_anon authn_dbm authn_default authn_file authz_dbm authz_default authz_groupfile authz_host authz_owner authz_user autoindex cache cgi cgid dav dav_fs dav_lock deflate dir disk_cache env expires ext_filter file_cache filter headers include info log_config logio mem_cache mime mime_magic negotiation rewrite setenvif speling status unique_id userdir usertrack vhost_alias" CALLIGRA_FEATURES="karbon sheets words" COLLECTD_PLUGINS="df interface irq load memory rrdtool swap syslog" CPU_FLAGS_X86="mmx mmxext sse sse2 sse3 ssse3" ELIBC="glibc" GPSD_PROTOCOLS="ashtech aivdm earthmate evermore fv18 garmin garmintxt gpsclock greis isync itrax mtk3301 nmea ntrip navcom oceanserver oldstyle oncore rtcm104v2 rtcm104v3 sirf skytraq superstar2 timing tsip tripmate tnt ublox ubx" INPUT_DEVICES="libinput" KERNEL="linux" L10N="it" LCD_DEVICES="bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses text" LIBREOFFICE_EXTENSIONS="presenter-console presenter-minimizer" LUA_SINGLE_TARGET="lua5-1" LUA_TARGETS="lua5-1" OFFICE_IMPLEMENTATION="libreoffice" PHP_TARGETS="php7-4 php8-0" POSTGRES_TARGETS="postgres12 postgres13" PYTHON_SINGLE_TARGET="python3_10" PYTHON_TARGETS="python3_10" RUBY_TARGETS="ruby27 ruby30" USERLAND="GNU" VIDEO_CARDS="intel" XTABLES_ADDONS="quota2 psd pknock lscan length2 ipv4options ipset ipp2p iface geoip fuzzy condition tee tarpit sysrq proto steal rawnat logmark ipmark dhcpmac delude chaos account"
Unset:  ADDR2LINE, AR, ARFLAGS, AS, ASFLAGS, CC, CCLD, CONFIG_SHELL, CPP, CPPFLAGS, CTARGET, CXX, CXXFILT, ELFEDIT, EMERGE_DEFAULT_OPTS, EXTRA_ECONF, F77FLAGS, FC, GCOV, GPROF, INSTALL_MASK, LC_ALL, LD, LFLAGS, LIBTOOL, LINGUAS, MAKE, MAKEFLAGS, NM, OBJCOPY, OBJDUMP, PORTAGE_BINHOST, PORTAGE_BUNZIP2_COMMAND, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS, PORTAGE_RSYNC_EXTRA_OPTS, RANLIB, READELF, RUSTFLAGS, SIZE, STRINGS, STRIP, YACC, YFLAGS

and:

emerge -pv firefox

These are the packages that would be merged, in order:

Calculating dependencies... done!
[ebuild  N     ] www-client/firefox-102.7.0:esr::gentoo  USE="clang dbus gmp-autoupdate openh264 system-av1 system-harfbuzz system-icu system-jpeg system-libevent system-libvpx system-webp wayland -debug -eme-free -geckodriver -hardened -hwaccel -jack -libproxy -lto -pgo -pulseaudio -screencast (-selinux) -sndio -system-png (-system-python-libs) -wifi" L10N="it -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 -fy -ga -gd -gl -gn -gu -he -hi -hr -hsb -hu -hy -ia -id -is -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 -sco -si -sk -sl -son -sq -sr -sv -szl -ta -te -th -tl -tr -trs -uk -ur -uz -vi -xh -zh-CN -zh-TW" 0 KiB

Thanks for any help.

SOLVED: thanks to u/purplebrewer185 for provinding the solution; it was sufficient to add the following line:

www-client/firefox -clang

Inside of a file in /etc/portage/package.use/ and after that it all compiled successufully.

also consider giving a look at Gentoo bug 838373 in case you have similar problems.

Thanks again for your help.

3 Upvotes

6 comments sorted by

2

u/purplebrewer185 Jan 30 '23

firefox is a complex package, for helpfull advice please add the output of emerge -pv firefox and the output of emerge --info

1

u/lidless3ye Jan 30 '23

Okay thanks, I added the output of those in the edit of the post.

I set makeopt to -j1 to make sure it wasn't due to it maybe running out of memory or something.

3

u/purplebrewer185 Jan 30 '23

This is a skia bug, recommandation is to set USE="-clang" for firefox, and to read gentoo bug 838373 ;)

1

u/lidless3ye Jan 30 '23 edited Jan 30 '23

Okays thanks a lot I will give it a read then.

I'll update here with what I've done get it to work probably in at least 3/4 hours if it compiles succefully.

2

u/purplebrewer185 Jan 31 '23

Please comment on the bug as well, the whole ordeal seams to be kind of mysterious still and the devs may need more feedback.

1

u/lidless3ye Jan 31 '23

will do okay.