Summary: | >www-client/firefox-122.0.1 fail to compile with: "failed to run custom build command for `glslopt v0.1.9`" on Raspberry Pi4 | ||
---|---|---|---|
Product: | Gentoo Linux | Reporter: | lebkoungcity |
Component: | Current packages | Assignee: | Mozilla Gentoo Team <mozilla> |
Status: | UNCONFIRMED --- | ||
Severity: | normal | CC: | herrtimson, lebkoungcity, urjaman |
Priority: | Normal | ||
Version: | unspecified | ||
Hardware: | ARM | ||
OS: | Linux | ||
URL: | https://forums.gentoo.org/viewtopic-t-1167859.html | ||
Whiteboard: | |||
Package list: | Runtime testing required: | --- | |
Attachments: |
www-client/firefox-123.0.1 build.log
www-client/firefox-124.0 build.log firefox-124.0-rust-bin-1.76.0-build.log.xz firefox-124.0-rust-bin-1.76.0-32bit-kernel-build.log firefox-124.0_rust-bin-1.76.0_32bit-kernel_tt_1-settings_build.log firefox-124.0.1_rust-bin-1.76.0_32bit-kernel_no-neon_build.log |
Description
lebkoungcity
2024-03-21 13:40:36 UTC
Created attachment 888041 [details]
www-client/firefox-123.0.1 build.log
Created attachment 888042 [details]
www-client/firefox-124.0 build.log
# emerge --info www-client/firefox Portage 3.0.61 (python 3.11.8-final-0, default/linux/arm/17.0/armv7a/desktop/plasma, gcc-13, glibc-2.38-r10, 6.1.21-v8+ aarch64) ================================================================= System Settings ================================================================= System uname: Linux-6.1.21-v8+-aarch64-with-glibc2.38 KiB Mem: 7948712 total, 3844916 free KiB Swap: 5860348 total, 5834036 free Timestamp of repository gentoo: Thu, 21 Mar 2024 09:30:00 +0000 Head commit of repository gentoo: 6b1491d2907fa9d4a216cd461615e0c1cde75fce sh bash 5.1_p16-r6 ld GNU ld (Gentoo 2.41 p5) 2.41.0 distcc 3.4 armv7a-unknown-linux-gnueabihf [enabled] ccache version 4.9.1 [enabled] app-misc/pax-utils: 1.3.7::gentoo app-shells/bash: 5.1_p16-r6::gentoo dev-build/autoconf: 2.13-r8::gentoo, 2.71-r6::gentoo dev-build/automake: 1.16.5-r2::gentoo dev-build/cmake: 3.28.3::gentoo dev-build/libtool: 2.4.7-r2::gentoo dev-build/make: 4.4.1-r1::gentoo dev-build/meson: 1.3.1-r1::gentoo dev-java/java-config: 2.3.3-r1::gentoo dev-lang/perl: 5.38.2-r2::gentoo dev-lang/python: 3.11.8_p1::gentoo, 3.12.2_p1::gentoo dev-lang/rust-bin: 1.71.1::gentoo dev-util/ccache: 4.9.1::gentoo sys-apps/baselayout: 2.14-r2::gentoo sys-apps/openrc: 0.53::gentoo sys-apps/sandbox: 2.38::gentoo sys-devel/binutils: 2.41-r5::gentoo sys-devel/binutils-config: 5.5::gentoo sys-devel/clang: 16.0.6::gentoo sys-devel/gcc: 13.2.1_p20240210::gentoo sys-devel/gcc-config: 2.11::gentoo sys-devel/lld: 16.0.6::gentoo sys-devel/llvm: 16.0.6::gentoo, 17.0.6::gentoo sys-kernel/linux-headers: 6.6::gentoo (virtual/os-headers) sys-libs/glibc: 2.38-r10::gentoo Repositories: x-portage location: /usr/local/portage masters: gentoo priority: 0 volatile: True gentoo location: /var/db/repos/gentoo sync-type: rsync sync-uri: rsync://rsync.gentoo.org/gentoo-portage priority: 1 volatile: True sync-rsync-verify-metamanifest: yes sync-rsync-verify-jobs: 1 sync-rsync-extra-opts: sync-rsync-verify-max-age: 3 ACCEPT_KEYWORDS="arm" ACCEPT_LICENSE="@FREE" CBUILD="armv7a-unknown-linux-gnueabihf" CFLAGS="-O2 -pipe -march=armv7-a -mfpu=neon-vfpv4 -mfloat-abi=hard" CHOST="armv7a-unknown-linux-gnueabihf" CONFIG_PROTECT="/boot/cmdline.txt /boot/config.txt /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/revdep-rebuild /etc/sandbox.d /etc/terminfo" CXXFLAGS="-O2 -pipe -march=armv7-a -mfpu=neon-vfpv4 -mfloat-abi=hard" 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="-O2 -pipe -march=armv7-a -mfpu=neon-vfpv4 -mfloat-abi=hard" FEATURES="assume-digests binpkg-docompress binpkg-dostrip binpkg-logs buildpkg buildpkg-live ccache config-protect-if-modified distcc distlocks ebuild-locks fixlafiles ipc-sandbox merge-sync multilib-strict network-sandbox news parallel-fetch pid-sandbox pkgdir-index-trusted preserve-libs protect-owned qa-unresolved-soname-deps sandbox sfperms strict unknown-features-warn unmerge-logs unmerge-orphans userfetch userpriv usersandbox usersync xattr" FFLAGS="-O2 -pipe -march=armv7-a -mfpu=neon-vfpv4 -mfloat-abi=hard" GENTOO_MIRRORS="http://distfiles.gentoo.org" LANG="de_DE.utf8" LDFLAGS="-Wl,-O1 -Wl,--as-needed" LEX="flex" LINGUAS="de_1901 de_DE de en" MAKEOPTS="-j41 -l4" 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 acoustid activities alsa arm branding browser-integration bzip2 cairo chromaprint cli crc32 crypt dav1d dbus declarative dri dts edsp egl elogind encode exif fdk ffmpeg flac fortran gbm gdbm gif gles gles1 gles2 gpm gstreamer gtk gui hwaccel iconv icu id3tag ipv6 jpeg kde kms kwallet lcms libaom libdrm libkms libnotify libv4l mad mmal mng mp3 mp4 mpeg multimedia ncurses neon nls ogg opengl openh264 openmp opus pam pango pcre pdf pipewire plasma png policykit pulseaudio qml qrcode qt5 raspberry-pi raspi readline sddm sdl seccomp sound spell split-usr ssl startup-notification svg system-av1 system-cairo system-ffmpeg system-harfbuzz system-icu system-jpeg system-libevent system-libvpx system-openjpeg system-png system-sqlite system-webp taglib test-rust theora thumb thumb2 tiff truetype udev udisks unicode upower usb v4 v4l v4l2 v5 v6 v7 v8 vfp vfp-d32 vfpv3 vfpv4 vmaf vorbis vpx vulkan wayland webp widevine widgets wxwidgets x264 x265 xattr xcb xft xml xv xvid zlib zvbi" ADA_TARGET="gcc_12" APACHE2_MODULES="authn_core authz_core socache_shmcb unixd actions alias auth_basic authn_anon authn_dbm authn_file authz_dbm authz_groupfile authz_host authz_owner authz_user autoindex cache cgi cgid dav dav_fs dav_lock deflate dir env expires ext_filter file_cache filter headers include info log_config logio 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_ARM="edsp neon thumb thumb2 vfp vfpv3 vfpv4 vfp-d32 v4 v5 v6 v7" ELIBC="glibc" GPSD_PROTOCOLS="ashtech aivdm earthmate evermore fv18 garmin garmintxt gpsclock greis isync itrax mtk3301 ntrip navcom oceanserver oncore rtcm104v2 rtcm104v3 sirf skytraq superstar2 tsip tripmate tnt ublox" INPUT_DEVICES="libinput" KERNEL="linux" L10N="de-1901 de en" LCD_DEVICES="bayrad cfontz glk hd44780 lb216 lcdm001 mtxorb text" LUA_SINGLE_TARGET="lua5-1" LUA_TARGETS="lua5-1" OFFICE_IMPLEMENTATION="libreoffice" PHP_TARGETS="php8-1" POSTGRES_TARGETS="postgres15" PYTHON_SINGLE_TARGET="python3_11" PYTHON_TARGETS="python3_11" RUBY_TARGETS="ruby31" VIDEO_CARDS="vc4 v3d fbdev" XTABLES_ADDONS="quota2 psd pknock lscan length2 ipv4options ipp2p iface geoip fuzzy condition tarpit sysrq proto 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, MAKE, MAKEFLAGS, NM, OBJCOPY, OBJDUMP, PORTAGE_BINHOST, PORTAGE_BUNZIP2_COMMAND, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS, PORTAGE_RSYNC_EXTRA_OPTS, PYTHONPATH, RANLIB, READELF, RUSTFLAGS, SIZE, STRINGS, STRIP, YACC, YFLAGS ================================================================= Package Settings ================================================================= www-client/firefox-124.0::gentoo was built with the following: USE="X clang dbus gmp-autoupdate hwaccel jumbo-build openh264 pulseaudio system-av1 system-harfbuzz system-icu system-jpeg system-libevent system-libvpx system-png system-webp wayland -debug (-eme-free) -geckodriver -hardened -jack -libproxy -lto (-pgo) (-selinux) -sndio (-system-python-libs) -telemetry -valgrind -wifi" CPU_FLAGS_ARM="neon" L10N="de -ach -af -an -ar -ast -az -be -bg -bn -br -bs -ca -ca-valencia -cak -cs -cy -da -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" LLVM_SLOT="16 -17" CFLAGS="-pipe -march=armv7-a -mfpu=neon-vfpv4 -mfloat-abi=hard" CXXFLAGS="-pipe -march=armv7-a -mfpu=neon-vfpv4 -mfloat-abi=hard" LDFLAGS="-Wl,-O1 -Wl,--as-needed -Wl,--undefined-version -Wl,--compress-debug-sections=zlib -Wl,-rpath=/usr/lib/firefox,--enable-new-dtags" Wasn't rust-1.71.0 llvm-16 based? I mean, you might want to upgrade to a llvm-17 compatible version of rust and test if that fixes your issue? If that doesn't help please ping me, and I'll try to reproduce by copying your useflags - I just compiled firefox-124.0_rc1 with llvm-17 toolchain and rust-1.76.0, albeit on musl and not glibc, without any issues. Thanks for your reply! Now I have this in package.keywords: www-client/firefox ** <=dev-util/cbindgen-0.26.0 ~arm <=media-video/libva-utils-2.18.2 ** <=media-libs/libva-2.18.0-r1 ** <=dev-libs/nss-3.99 ~arm <=dev-lang/rust-bin-1.76.0 ~arm <=virtual/rust-1.76.0 ~arm <=sys-devel/lld-17.0.6 ~arm <=sys-devel/lld-toolchain-symlinks-17 ~arm <=sys-devel/clang-17.0.6 ~arm <=sys-devel/clang-common-17.0.6-r1 ~arm <=sys-devel/clang-runtime-17.0.6 ~arm <=sys-devel/clang-toolchain-symlinks-17 ~arm <=sys-libs/compiler-rt-17.0.6 ~arm <=sys-libs/compiler-rt-sanitizers-17.0.6 ~arm <=sys-libs/libomp-17.0.6 ~arm Then I did: # emerge -auvDNUk world --keep-going These are the packages that would be merged, in order: Calculating dependencies... done! Dependency resolution took 74.10 s (backtrack: 0/20). [binary U ~] sys-devel/clang-common-17.0.6-r1::gentoo [16.0.6-r2::gentoo] USE="-bootstrap-prefix -default-compiler-rt -default-libcxx -default-lld -hardened -llvm-libunwind -verify-sig" 0 KiB [binary NS ~] sys-libs/compiler-rt-17.0.6:17::gentoo [16.0.6:16::gentoo] USE="clang -debug -test -verify-sig" 0 KiB [binary NS ~] sys-libs/compiler-rt-sanitizers-17.0.6:17::gentoo [16.0.6:16::gentoo] USE="asan cfi clang gwp-asan libfuzzer lsan orc profile scudo ubsan xray -debug (-dfsan) (-hwasan) (-memprof) (-msan) (-safestack) (-shadowcallstack) -test (-tsan) -verify-sig" 0 KiB [binary U ~] sys-libs/libomp-17.0.6:0/17::gentoo [16.0.6:0/16::gentoo] USE="-debug -gdb-plugin -hwloc (-offload) -ompt -test -verify-sig" LLVM_TARGETS="(-AMDGPU) -NVPTX" PYTHON_SINGLE_TARGET="python3_11 -python3_10 -python3_12" 0 KiB [binary NS ~] sys-devel/clang-runtime-17.0.6:17::gentoo [16.0.6:16::gentoo] USE="compiler-rt openmp sanitize -libcxx" 0 KiB [ebuild U ~] dev-lang/rust-bin-1.76.0:stable::gentoo [1.71.1:stable::gentoo] USE="(-big-endian) -clippy (-doc) (-prefix) -profiler% -rust-analyzer -rust-src -rustfmt -verify-sig" 533.830 KiB [ebuild U ~] virtual/rust-1.76.0:0/llvm-17::gentoo [1.71.1-r1:0/llvm-16::gentoo] USE="-profiler% -rustfmt" 0 KiB [binary NS ~] sys-devel/clang-17.0.6:17::gentoo [16.0.6:16::gentoo] USE="extra (pie) static-analyzer xml -debug -doc (-ieee-long-double) -test -verify-sig" LLVM_TARGETS="(AArch64) (AMDGPU) (ARM) (AVR) (BPF) (Hexagon) (Lanai) (LoongArch) (MSP430) (Mips) (NVPTX) (PowerPC) (RISCV) (Sparc) (SystemZ) (VE) (WebAssembly) (X86) (XCore) -ARC -CSKY -DirectX -M68k -SPIRV -Xtensa" PYTHON_SINGLE_TARGET="python3_11 -python3_10 -python3_12" 0 KiB [binary NS ~] sys-devel/clang-toolchain-symlinks-17:17::gentoo [16-r2:16::gentoo] USE="native-symlinks -gcc-symlinks -multilib-symlinks" 0 KiB [binary NS ~] sys-devel/lld-17.0.6:17::gentoo [16.0.6:16::gentoo] USE="-debug -test -verify-sig -zstd" 0 KiB [binary NS ~] sys-devel/lld-toolchain-symlinks-17:17::gentoo [16-r2:16::gentoo] USE="native-symlinks -multilib-symlinks" 0 KiB [ebuild R *] www-client/firefox-124.0:rapid::gentoo USE="X clang dbus gmp-autoupdate hwaccel jumbo-build openh264 pulseaudio system-av1 system-harfbuzz system-icu system-jpeg system-libevent system-libvpx system-png system-webp wayland -debug (-eme-free) -geckodriver -hardened -jack -libproxy -lto (-pgo) (-selinux) -sndio (-system-python-libs) -telemetry -valgrind -wifi" CPU_FLAGS_ARM="neon" L10N="de -ach -af -an -ar -ast -az -be -bg -bn -br -bs -ca -ca-valencia -cak -cs -cy -da -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" LLVM_SLOT="17* -16*" 0 KiB Total: 12 packages (4 upgrades, 7 in new slots, 1 reinstall, 9 binaries), Size of downloads: 533.830 KiB But it failed again, see: firefox-124.0-rust-bin-1.76.0-build.log.xz To check what was used: # qlist -Iv rust app-eselect/eselect-rust-20210703 dev-lang/rust-bin-1.76.0 virtual/rust-1.76.0 # qlist -Iv llvm sys-devel/llvm-17.0.6 sys-devel/llvm-16.0.6 sys-devel/llvm-common-16.0.6 sys-devel/llvm-toolchain-symlinks-17 sys-devel/llvm-toolchain-symlinks-16-r1 sys-devel/llvmgold-17 # qlist -Iv lld sys-devel/lld-17.0.6 sys-devel/lld-16.0.6 sys-devel/lld-toolchain-symlinks-17 sys-devel/lld-toolchain-symlinks-16-r2 # qlist -Iv clang sys-devel/clang-17.0.6 sys-devel/clang-16.0.6 sys-devel/clang-common-17.0.6-r1 sys-devel/clang-runtime-17.0.6 sys-devel/clang-runtime-16.0.6 sys-devel/clang-toolchain-symlinks-17 sys-devel/clang-toolchain-symlinks-16-r2 # qlist -Iv compiler-rt sys-libs/compiler-rt-17.0.6 sys-libs/compiler-rt-16.0.6 sys-libs/compiler-rt-sanitizers-17.0.6 sys-libs/compiler-rt-sanitizers-16.0.6 # qlist -Iv libomp sys-libs/libomp-17.0.6 Created attachment 888053 [details]
firefox-124.0-rust-bin-1.76.0-build.log.xz
What kind of setup are you using? emerge --info states a 64bit kernel, but you want to emerge this for armv7a. Do you boot into a 64bit userland, and chroot into a 32bit prefix? Or do you want to cross compile with crossdev-wrappers? In any case, there is a special rust-std for using neon on armv7a, it's called thumbv7neon-unknown-linux-gnueabihf it has never been enabled for the ebuilds in tree, but this is the official way to get a firefox armv7a binary with neon and thumb cflags maybe try to remove any agressive cflags to establish a working base, then increase the cflags? I bought this RPi4 to use primarily with Kodi for watching Netflix. Therefore Widevine is required and that is only available for ARM 32bit systems. NeddySeagoon once gave me the tip that I can still use a 64bit kernel. Anyway, I set up the system just to make it work. I wasn't planning on setting any aggressive CFLAGS. Emerging Firefox with 64bit kernel has always worked since it first worked with www-client/firefox-109.0.1. In previous attempts for versions larger than www-client/firefox-122.0.1, it never mattered whether I booted the 32bit or 64bit kernel. The error was always: failed to run custom build command for `glslopt v0.1.9` But to clarify things, I have now booted the 32bit kernel and am trying again. I'll let you know here when there's a result. # uname --all Linux thalia 6.1.21-v7l+ #1642 SMP Mon Apr 3 17:22:30 BST 2023 armv7l ARMv7 Processor rev 3 (v7l) BCM2711 GNU/Linux Again, it's (and see also attachment 'firefox-124.0-rust-bin-1.76.0-32bit-kernel-build.log'): error: failed to run custom build command for `glslopt v0.1.9` 52:21.53 note: To improve backtraces for build dependencies, set the CARGO_PROFILE_RELEASE_BUILD_OVERRIDE_DEBUG=true environment variable to enable debug information generation. 52:21.53 Caused by: 52:21.59 process didn't exit successfully: `CARGO=/opt/rust-bin-1.76.0/bin/cargo-bin-1.76.0 CARGO_CFG_PANIC=unwind CARGO_CFG_TARGET_ARCH=arm CARGO_CFG_TARGET_ENDIAN=little CARGO_CFG_TARGET_ENV=gnu CARGO_CFG_TARGET_FAMILY=unix CARGO_CFG_TARGET_HAS_ATOMIC=16,32,64,8,ptr CARGO_CFG_TARGET_OS=linux CARGO_CFG_TARGET_POINTER_WIDTH=32 CARGO_CFG_TARGET_VENDOR=unknown CARGO_CFG_UNIX='' CARGO_ENCODED_RUSTFLAGS='' CARGO_MANIFEST_DIR=/var/tmp/portage/www-client/firefox-124.0/work/firefox-124.0/third_party/rust/glslopt CARGO_PKG_AUTHORS='Jamie Nicol <jnicol@mozilla.com>' CARGO_PKG_DESCRIPTION='Optimizes GLSL shader code' CARGO_PKG_HOMEPAGE='' CARGO_PKG_LICENSE=MIT CARGO_PKG_LICENSE_FILE='' CARGO_PKG_NAME=glslopt CARGO_PKG_README=README.md CARGO_PKG_REPOSITORY='https://github.com/jamienicol/glslopt-rs' CARGO_PKG_RUST_VERSION='' CARGO_PKG_VERSION=0.1.9 CARGO_PKG_VERSION_MAJOR=0 CARGO_PKG_VERSION_MINOR=1 CARGO_PKG_VERSION_PATCH=9 CARGO_PKG_VERSION_PRE='' DEBUG=false HOST=armv7-unknown-linux-gnueabihf LD_LIBRARY_PATH='/var/tmp/portage/www-client/firefox-124.0/work/firefox_build/release/deps:/var/tmp/portage/www-client/firefox-124.0/work/firefox_build/release:/opt/rust-bin-1.76.0/lib/rustlib/armv7-unknown-linux-gnueabihf/lib' NUM_JOBS=41 OPT_LEVEL=1 OUT_DIR=/var/tmp/portage/www-client/firefox-124.0/work/firefox_build/release/build/glslopt-4d0ac5a450973b7b/out PROFILE=release RUSTC=/usr/bin/rustc RUSTC_LINKER=/var/tmp/portage/www-client/firefox-124.0/work/firefox-124.0/build/cargo-linker RUSTDOC=/usr/bin/rustdoc TARGET=armv7-unknown-linux-gnueabihf /var/tmp/portage/www-client/firefox-124.0/work/firefox_build/release/build/glslopt-01980aa6b31c0db3/build-script-build` (exit status: 1) Created attachment 888117 [details]
firefox-124.0-rust-bin-1.76.0-32bit-kernel-build.log
here is mine, with llvm slot 17 and rust-1.76.0: www-client/firefox-124.0_rc1::gentoo was built with the following: USE="X clang jumbo-build system-harfbuzz system-icu system-jpeg (system-libevent) system-png system-webp -dbus -debug (-eme-free) -geckodriver -gmp-autoupdate (-hardened) -hwaccel -jack -libproxy -lto -openh264 (-pgo) -pulseaudio (-selinux) -sndio -system-av1 -system-libvpx (-system-python-libs) -telemetry -valgrind -wayland -wifi" CPU_FLAGS_ARM="-neon" L10N="de -ach -af -an -ar -ast -az -be -bg -bn -br -bs -ca -ca-valencia -cak -cs -cy -da -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" CFLAGS="-pipe -march=armv7-a -mfpu=vfpv3-d16 -mfloat-abi=hard" CXXFLAGS="-pipe -march=armv7-a -mfpu=vfpv3-d16 -mfloat-abi=hard -fomit-frame-pointer" LDFLAGS="-Wl,-O1 -Wl,--as-needed -Wl,--compress-debug-sections=zlib -Wl,-rpath=/usr/lib/firefox,--enable-new-dtags" I tried to mimic your settings as best I could but failed again with the same error. (see below and attached firefox-124.0_rust-bin-1.76.0_32bit-kernel_tt_1-settings_build.log) btw: By the way: By the way: What exactly is this glslopt? The error mentions, among other things, a URL that I looked at, but unfortunately I don't know whether and if so how this information can help... CARGO_PKG_AUTHORS='Jamie Nicol <jnicol@mozilla.com>' CARGO_PKG_DESCRIPTION='Optimizes GLSL shader code' (...) CARGO_PKG_NAME=glslopt (...) CARGO_PKG_REPOSITORY='https://github.com /jamienicol/glslopt-rs' 180:14.61 error: failed to run custom build command for `glslopt v0.1.9` 180:14.64 note: To improve backtraces for build dependencies, set the CARGO_PROFILE_RELEASE_BUILD_OVERRIDE_DEBUG=true environment variable to enable debug information generation. 180:14.64 Caused by: 180:14.72 process didn't exit successfully: `CARGO=/opt/rust-bin-1.76.0/bin/cargo-bin-1.76.0 CARGO_CFG_PANIC=unwind CARGO_CFG_TARGET_ARCH=arm CARGO_CFG_TARGET_ENDIAN=little CARGO_CFG_TARGET_ENV=gnu CARGO_CFG_TARGET_FAMILY=unix CARGO_CFG_TARGET_HAS_ATOMIC=16,32,64,8,ptr CARGO_CFG_TARGET_OS=linux CARGO_CFG_TARGET_POINTER_WIDTH=32 CARGO_CFG_TARGET_VENDOR=unknown CARGO_CFG_UNIX='' CARGO_ENCODED_RUSTFLAGS='' CARGO_MANIFEST_DIR=/var/tmp/portage/www-client/firefox-124.0/work/firefox-124.0/third_party/rust/glslopt CARGO_PKG_AUTHORS='Jamie Nicol <jnicol@mozilla.com>' CARGO_PKG_DESCRIPTION='Optimizes GLSL shader code' CARGO_PKG_HOMEPAGE='' CARGO_PKG_LICENSE=MIT CARGO_PKG_LICENSE_FILE='' CARGO_PKG_NAME=glslopt CARGO_PKG_README=README.md CARGO_PKG_REPOSITORY='https://github.com/jamienicol/glslopt-rs' CARGO_PKG_RUST_VERSION='' CARGO_PKG_VERSION=0.1.9 CARGO_PKG_VERSION_MAJOR=0 CARGO_PKG_VERSION_MINOR=1 CARGO_PKG_VERSION_PATCH=9 CARGO_PKG_VERSION_PRE='' DEBUG=false HOST=armv7-unknown-linux-gnueabihf LD_LIBRARY_PATH='/var/tmp/portage/www-client/firefox-124.0/work/firefox_build/release/deps:/var/tmp/portage/www-client/firefox-124.0/work/firefox_build/release:/opt/rust-bin-1.76.0/lib/rustlib/armv7-unknown-linux-gnueabihf/lib' NUM_JOBS=41 OPT_LEVEL=1 OUT_DIR=/var/tmp/portage/www-client/firefox-124.0/work/firefox_build/release/build/glslopt-4d0ac5a450973b7b/out PROFILE=release RUSTC=/usr/bin/rustc RUSTC_LINKER=/var/tmp/portage/www-client/firefox-124.0/work/firefox-124.0/build/cargo-linker RUSTDOC=/usr/bin/rustdoc TARGET=armv7-unknown-linux-gnueabihf /var/tmp/portage/www-client/firefox-124.0/work/firefox_build/release/build/glslopt-01980aa6b31c0db3/build-script-build` (exit status: 1) # emerge --info Portage 3.0.61 (python 3.11.8-final-0, default/linux/arm/17.0/armv7a/desktop/plasma, gcc-13, glibc-2.38-r10, 6.1.21-v7l+ armv7l) ================================================================= System uname: Linux-6.1.21-v7l+-armv7l-ARMv7_Processor_rev_3_-v7l-with-glibc2.38 KiB Mem: 8035152 total, 7343276 free KiB Swap: 5860348 total, 5860348 free Timestamp of repository gentoo: Fri, 22 Mar 2024 06:00:00 +0000 Head commit of repository gentoo: 4e418cbcd3b629df20fe58c3cb192c47dd662ebb sh bash 5.1_p16-r6 ld GNU ld (Gentoo 2.41 p5) 2.41.0 distcc 3.4 armv7a-unknown-linux-gnueabihf [enabled] ccache version 4.9.1 [enabled] app-misc/pax-utils: 1.3.7::gentoo app-shells/bash: 5.1_p16-r6::gentoo dev-build/autoconf: 2.13-r8::gentoo, 2.71-r6::gentoo dev-build/automake: 1.16.5-r2::gentoo dev-build/cmake: 3.28.3::gentoo dev-build/libtool: 2.4.7-r2::gentoo dev-build/make: 4.4.1-r1::gentoo dev-build/meson: 1.3.1-r1::gentoo dev-java/java-config: 2.3.3-r1::gentoo dev-lang/perl: 5.38.2-r2::gentoo dev-lang/python: 3.11.8_p1::gentoo, 3.12.2_p1::gentoo dev-lang/rust-bin: 1.76.0::gentoo dev-util/ccache: 4.9.1::gentoo sys-apps/baselayout: 2.14-r2::gentoo sys-apps/openrc: 0.53::gentoo sys-apps/sandbox: 2.38::gentoo sys-devel/binutils: 2.41-r5::gentoo sys-devel/binutils-config: 5.5::gentoo sys-devel/clang: 16.0.6::gentoo, 17.0.6::gentoo sys-devel/gcc: 13.2.1_p20240210::gentoo sys-devel/gcc-config: 2.11::gentoo sys-devel/lld: 16.0.6::gentoo, 17.0.6::gentoo sys-devel/llvm: 16.0.6::gentoo, 17.0.6::gentoo sys-kernel/linux-headers: 6.6::gentoo (virtual/os-headers) sys-libs/glibc: 2.38-r10::gentoo Repositories: x-portage location: /usr/local/portage masters: gentoo priority: 0 volatile: True gentoo location: /var/db/repos/gentoo sync-type: rsync sync-uri: rsync://rsync.gentoo.org/gentoo-portage priority: 1 volatile: True sync-rsync-verify-metamanifest: yes sync-rsync-verify-jobs: 1 sync-rsync-verify-max-age: 3 sync-rsync-extra-opts: ACCEPT_KEYWORDS="arm" ACCEPT_LICENSE="@FREE" CBUILD="armv7a-unknown-linux-gnueabihf" CFLAGS="-pipe -march=armv7-a -mfpu=vfpv3-d16 -mfloat-abi=hard -fomit-frame-pointer" CHOST="armv7a-unknown-linux-gnueabihf" CONFIG_PROTECT="/boot/cmdline.txt /boot/config.txt /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/revdep-rebuild /etc/sandbox.d /etc/terminfo" CXXFLAGS="-pipe -march=armv7-a -mfpu=vfpv3-d16 -mfloat-abi=hard -fomit-frame-pointer" 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="-pipe -march=armv7-a -mfpu=vfpv3-d16 -mfloat-abi=hard -fomit-frame-pointer" FEATURES="assume-digests binpkg-docompress binpkg-dostrip binpkg-logs buildpkg buildpkg-live ccache config-protect-if-modified distcc distlocks ebuild-locks fixlafiles ipc-sandbox merge-sync multilib-strict network-sandbox news parallel-fetch pid-sandbox pkgdir-index-trusted preserve-libs protect-owned qa-unresolved-soname-deps sandbox sfperms strict unknown-features-warn unmerge-logs unmerge-orphans userfetch userpriv usersandbox usersync xattr" FFLAGS="-pipe -march=armv7-a -mfpu=vfpv3-d16 -mfloat-abi=hard -fomit-frame-pointer" GENTOO_MIRRORS="http://distfiles.gentoo.org" LANG="de_DE.utf8" LDFLAGS="-Wl,-O1 -Wl,--as-needed -Wl,--compress-debug-sections=zlib -Wl,-rpath=/usr/lib/firefox,--enable-new-dtags" LEX="flex" LINGUAS="de_1901 de_DE de en" MAKEOPTS="-j41 -l4" 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 activities alsa arm bluetooth branding bzip2 cairo cdda cdr clang cli crypt cups declarative dri dts dvd dvdr elogind encode exif flac fortran gdbm gif gpm gtk gui iconv icu ipv6 jpeg jumbo-build kde kwallet lcms libnotify mad mng mp3 mp4 mpeg ncurses networkmanager nls ogg opengl openmp pam pango pcre pdf pipewire plasma png policykit ppds qml qt5 readline screencast sdl seccomp semantic-desktop sound spell split-usr ssl startup-notification svg system-harfbuzz system-icu system-jpeg system-libevent system-png system-webp test-rust tiff truetype udev udisks unicode upower usb vorbis vulkan widgets wxwidgets x264 xattr xcb xft xml xv xvid zlib" ADA_TARGET="gcc_12" APACHE2_MODULES="authn_core authz_core socache_shmcb unixd actions alias auth_basic authn_anon authn_dbm authn_file authz_dbm authz_groupfile authz_host authz_owner authz_user autoindex cache cgi cgid dav dav_fs dav_lock deflate dir env expires ext_filter file_cache filter headers include info log_config logio 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_ARM="edsp thumb thumb2 v4 v5 v6 v7 vfp" ELIBC="glibc" GPSD_PROTOCOLS="ashtech aivdm earthmate evermore fv18 garmin garmintxt gpsclock greis isync itrax mtk3301 ntrip navcom oceanserver oncore rtcm104v2 rtcm104v3 sirf skytraq superstar2 tsip tripmate tnt ublox" INPUT_DEVICES="libinput" KERNEL="linux" L10N="de" LCD_DEVICES="bayrad cfontz glk hd44780 lb216 lcdm001 mtxorb text" LLVM_SLOT="17" LUA_SINGLE_TARGET="lua5-1" LUA_TARGETS="lua5-1" OFFICE_IMPLEMENTATION="libreoffice" PHP_TARGETS="php8-1" POSTGRES_TARGETS="postgres15" PYTHON_SINGLE_TARGET="python3_11" PYTHON_TARGETS="python3_11" RUBY_TARGETS="ruby31" VIDEO_CARDS="vc4 v3d fbdev" XTABLES_ADDONS="quota2 psd pknock lscan length2 ipv4options ipp2p iface geoip fuzzy condition tarpit sysrq proto 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, MAKE, MAKEFLAGS, NM, OBJCOPY, OBJDUMP, PORTAGE_BINHOST, PORTAGE_BUNZIP2_COMMAND, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS, PORTAGE_RSYNC_EXTRA_OPTS, PYTHONPATH, RANLIB, READELF, RUSTFLAGS, SIZE, STRINGS, STRIP, YACC, YFLAGS # emerge -pv www-client/firefox These are the packages that would be merged, in order: Calculating dependencies... done! Dependency resolution took 23.81 s (backtrack: 0/20). [ebuild R *] www-client/firefox-124.0:rapid::gentoo USE="X clang jumbo-build system-harfbuzz system-icu system-jpeg system-libevent system-png system-webp -dbus* -debug (-eme-free) -geckodriver -gmp-autoupdate* -hardened -hwaccel* -jack -libproxy -lto -openh264* (-pgo) -pulseaudio* (-selinux) -sndio -system-av1* -system-libvpx* (-system-python-libs) -telemetry -valgrind -wayland* -wifi" CPU_FLAGS_ARM="-neon*" L10N="de -ach -af -an -ar -ast -az -be -bg -bn -br -bs -ca -ca-valencia -cak -cs -cy -da -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" LLVM_SLOT="17* -16*" 0 KiB Total: 1 package (1 reinstall), Size of downloads: 0 KiB Created attachment 888228 [details]
firefox-124.0_rust-bin-1.76.0_32bit-kernel_tt_1-settings_build.log
glslopt is a vendored rust crate my money is on the neon cflags, but I just don't have the cpu time available to copy your setup on my machine just to prove it Hmmm... glslopt is an oxidized box that was sold? ;D Sorry for my ignorance but all I understand is rust is a language that is used for firefox. And that rust is able to fetch libraries on its own. And glslopt is one of those libraries/modules and it does its magic in the context of accelerated graphics. Or something like that. Therefore the connection to neon you propose. But why does it fail? Could I update it (at least for testing purposes), i.e. tell rust to use a different version? Anyway, I thought I had switched off neon cflags by using in my make.conf what you provided in comment 11? These lines: CFLAGS="-pipe -march=armv7-a -mfpu=vfpv3-d16 -mfloat-abi=hard" CXXFLAGS="-pipe -march=armv7-a -mfpu=vfpv3-d16 -mfloat-abi=hard -fomit-frame-pointer" LDFLAGS="-Wl,-O1 -Wl,--as-needed -Wl,--compress-debug-sections=zlib -Wl,-rpath=/usr/lib/firefox,--enable-new-dtags" At least I didn't see neon cflags mentioned as activated in all the output of last night at all. (see comment 12 & comment 13) Did I overlook it? It was late last night... no, you don't understand how the firefox build system works I already told you that your idea of using neon is wrong, because you will need a second rust-std called thumbv7neon-unknown-linux-gnueabihf. To have this on your system you will need to switch over to dev-lang/rust AND consult the I_KNOW_WHAT_I_AM_DOING section in the ebuild. Your attempt to put the neon flags via the CFLAGS won't work, it causes confusion because different subsystems of the firefox build either demand neon cflags, or will break with neon cflags, and therefore you should leave that decision to upstream. Also you need to understand how the firefox source tree works: there is a dir called third_party/rust, which is where upstream vendors their rust crates into. The crates are not libraries or binaries, but the actuall rust source code, compressed into a single zip file - upstream fetches them, unpacks them into said third_party/rust folder, and locks them in place with checksums. This is called vendoring, where the end users doesn't need to fetch the files from the rust servers themselves, but they are included into the source tree and end up in the indiviual released firefox source tarball. Those crates can be searched through crates.io, which is where you can learn more about them if you want to. Before we continue to discuss all these things, please turn off all your distcc, ccache and what have you not. I never use them and prefere the crunch, as they are very frail and prone to difficult to debug errors. Your log is full of these errors, where are they coming from? I believed you when you said you had it disabled, and felt no need to double check on you. (In reply to tt_1 from comment #16) This comment may read as a bit abrasive. You aren't required to comment on FF bugs - it's nice to have help of course, but if you are going to, please be polite. Sam James, we'll keep that in mind, thanks! I didn't read comment #16 as being too abrasive. tt_1, thanks for explaining these point, I appreciate it. I changed make.conf accordingly to your statements. In the last runs DISTCC and CCACHE were not de-activated because I had sorted them as cause of the build-fail out by try-and-error. The resulting build.logs from these runs are long time gone and were overwritten by subsequent runs. Sorry that I didn't had in mind that they would make reading build.log difficult, too. Now they are both turned off. I kept CFLAGS to the same as they were set for the last run. And I have had an eye on having every mention of neon disabled. Below I have attached the current make.conf. (For the record, my previous settings for CFLAGS were from here: https://wiki.gentoo.org/wiki/Safe_CFLAGS#ARMv7-A.2FCortex-A9_MPCore ) Then I tried emerging firefox again and it failed again with (see: firefox-124.0.1_rust-bin-1.76.0_32bit-kernel_no-neon_build.log ) 36:20.36 error: failed to run custom build command for `glslopt v0.1.9` 36:20.37 note: To improve backtraces for build dependencies, set the CARGO_PROFILE_RELEASE_BUILD_OVERRIDE_DEBUG=true environment variable to enable debug information generation. 36:20.37 Caused by: 36:20.40 process didn't exit successfully: `CARGO=/opt/rust-bin-1.76.0/bin/cargo-bin-1.76.0 CARGO_CFG_PANIC=unwind CARGO_CFG_TARGET_ARCH=arm CARGO_CFG_TARGET_ENDIAN=little CARGO_CFG_TARGET_ENV=gnu CARGO_CFG_TARGET_FAMILY=unix CARGO_CFG_TARGET_HAS_ATOMIC=16,32,64,8,ptr CARGO_CFG_TARGET_OS=linux CARGO_CFG_TARGET_POINTER_WIDTH=32 CARGO_CFG_TARGET_VENDOR=unknown CARGO_CFG_UNIX='' CARGO_ENCODED_RUSTFLAGS='' CARGO_MANIFEST_DIR=/var/tmp/portage/www-client/firefox-124.0.1/work/firefox-124.0.1/third_party/rust/glslopt CARGO_PKG_AUTHORS='Jamie Nicol <jnicol@mozilla.com>' CARGO_PKG_DESCRIPTION='Optimizes GLSL shader code' CARGO_PKG_HOMEPAGE='' CARGO_PKG_LICENSE=MIT CARGO_PKG_LICENSE_FILE='' CARGO_PKG_NAME=glslopt CARGO_PKG_README=README.md CARGO_PKG_REPOSITORY='https://github.com/jamienicol/glslopt-rs' CARGO_PKG_RUST_VERSION='' CARGO_PKG_VERSION=0.1.9 CARGO_PKG_VERSION_MAJOR=0 CARGO_PKG_VERSION_MINOR=1 CARGO_PKG_VERSION_PATCH=9 CARGO_PKG_VERSION_PRE='' DEBUG=false HOST=armv7-unknown-linux-gnueabihf LD_LIBRARY_PATH='/var/tmp/portage/www-client/firefox-124.0.1/work/firefox_build/release/deps:/var/tmp/portage/www-client/firefox-124.0.1/work/firefox_build/release:/opt/rust-bin-1.76.0/lib/rustlib/armv7-unknown-linux-gnueabihf/lib' NUM_JOBS=4 OPT_LEVEL=1 OUT_DIR=/var/tmp/portage/www-client/firefox-124.0.1/work/firefox_build/release/build/glslopt-4d0ac5a450973b7b/out PROFILE=release RUSTC=/usr/bin/rustc RUSTC_LINKER=/var/tmp/portage/www-client/firefox-124.0.1/work/firefox-124.0.1/build/cargo-linker RUSTDOC=/usr/bin/rustdoc TARGET=armv7-unknown-linux-gnueabihf /var/tmp/portage/www-client/firefox-124.0.1/work/firefox_build/release/build/glslopt-01980aa6b31c0db3/build-script-build` (exit status: 1) Created attachment 888465 [details]
firefox-124.0.1_rust-bin-1.76.0_32bit-kernel_no-neon_build.log
make.conf: CHOST="armv7a-unknown-linux-gnueabihf" COMMON_FLAGS="-O2 -pipe -march=armv7-a -mfpu=vfpv3-d16 -mfloat-abi=hard" CFLAGS="${COMMON_FLAGS}" CXXFLAGS="${COMMON_FLAGS}" FCFLAGS="${COMMON_FLAGS}" FFLAGS="${COMMON_FLAGS}" MAKEOPTS="-j4" FEATURES="${FEATURES} buildpkg" USE=" aac acoustid -bluetooth browser-integration -calendar -cdda -cdr -cec chromaprint -cups dav1d -doc -dvd -dvdr egl elogind -emboss fdk ffmpeg flac gbm -geolocation gles gles1 gles2 gstreamer -hangouts hwaccel id3tag -kaccounts kms libaom libdrm libkms libv4l -man mmal -modemmanager mp3 multimedia -networkmanager ogg opengl opencl openh264 -optical opus pipewire -ppds -ppp -printsupport pulseaudio qrcode raspberry-pi raspi -screencast sddm -semantic-desktop -systemd system-av1 system-cairo system-ffmpeg system-harfbuzz system-icu system-jpeg system-libevent system-libvpx system-openjpeg system-png system-sqlite system-webp taglib -telemetry theora v4l v4l2 vaapi vdpau vmaf vorbis vpx vulkan -webengine webp widevine -wifi -wireless xvid x264 x265 zvbi" VIDEO_CARDS="vc4 v3d fbdev" LINGUAS="de_1901 de_DE de en" L10N="de-1901 de en" PORTDIR="/var/db/repos/gentoo" DISTDIR="/var/cache/distfiles" PKGDIR="/var/cache/binpkgs" PORTDIR_OVERLAY="/usr/local/portage ${PORTDIR} ${PORTDIR_OVERLAY}" PORTAGE_ELOG_CLASSES="info warn error log" PORTAGE_ELOG_SYSTEM="save" LC_MESSAGES=C two things you could still check out: do you have enough ram available? I need a bit more than 3gb with -j1 as a reference switch to dev-lang/rust, there might be a bug deep in the upstream toolchain Thanks for your new answer! In the past I already tried it with -j1 despite having no OOM related problems when firefox is emerged with 'llvm_slot_16 -llvm_slot_17' and it also failed. One aspect that may speak against OOM is that the build always fails at the very exact point but that's just a weak indict. It took several hours to emerge dev-lang/rust to switch to it. After the switch (and removing dev-lang/rust-bin) I tried the emerge with turned off ccache, turned off distcc and -j1. Just to be really really sure no problem related to such could interfere. And the built failed at the very same point again. I went through the build.log and it was all the same as before. Unfortunately the next day I hadn't saved this build.log and it was whipped from the HDD when I updated the system with regular settings and didn't mind to let it to try emerging firefox again... Now I'm about to give up. For the moment there is a working firefox on my RPi4 and I hope there will be in the future, somehow. Okay, this is a "fun" one. Firstly, it seems that clang++ is failing to find the C++ STL headers (if you read carefully you'll find the actual error is a "No such file" for "new" (that's the C++ header <new>). This is the first C++ file in glslopt (and i bet it's the first C++ file that is being compiled as a part of a rust crate, with the help of the rust "cc" crate), so nothing special about glslopt, I'm not using gentoo but i hit this very same error trying to build firefox for 32-bit ARM (my hand-rolled linux, based on LFS and ArchLinux ARM, that's not ready yet.) - i built LLVM/clang 17.0.6, rustc 1.77.2 and tried to build firefox 125.0.1 Ok ok, long story short, the problem is the --target passed to clang++ by rust cc crate. Compare: # clang++ --version clang version 17.0.6 Target: armv7l-unknown-linux-gnueabihf .. # rustc --version --verbose rustc 1.77.2 (25ef9e3d8 2024-04-09) (ARMLFS rust 1:1.77.2-1) .. host: armv7-unknown-linux-gnueabihf .. Notice the extra "l" in clang vs rustc -- for you it's an extra "a" in armv7a, what matters is that they don't match. And when rust passes what it considers the native CHOST to clang++, clang++ thinks this is cross-compilation (because it doesnt exactly match what it considers the native CHOST), and thus doesnt add the native C++ STL header search paths. I'm not sure what the proper solution is, but what i think is obvious that this will be a problem for every time rust tries to use clang++ to compile C++. To test my theory (and get on with the compilation), i made a little wrapper around clang++ that translates this form of wrong target to the native target. I'm not sure if firefox will build all the way like this (because it's still going), but it did get past glslopt just fine. Said wrapper setup (i changed armv7l to armv7a for gentoo): mv /usr/bin/clang++ /usr/bin/clang++.real cat > /usr/bin/clang++ << "EOF" #!/bin/bash arr=() for arg; do if [ "$arg" == "--target=armv7-unknown-linux-gnueabihf" ]; then arg="--target=armv7a-unknown-linux-gnueabihf" fi arr+=("$arg") done /usr/bin/clang++.real "${arr[@]}" EOF chmod +x /usr/bin/clang++ interesting theory. on my armv7a-musl box, the clang++ target and rustc target are identical, so I might never hit it there in the first place. using non matching gcc and rustc targers seems to be no issue. Okay, found out one problem with the wrapper - clang++ in linking mode doesnt realize to add -lstdc++ if it is not called something that ends clang++, so use eg. real.clang++ instead of clang++.real: mv /usr/bin/clang++ /usr/bin/real.clang++ cat > /usr/bin/clang++ << "EOF" #!/bin/bash arr=() for arg; do if [ "$arg" == "--target=armv7-unknown-linux-gnueabihf" ]; then arg="--target=armv7a-unknown-linux-gnueabihf" fi arr+=("$arg") done /usr/bin/real.clang++ "${arr[@]}" EOF chmod +x /usr/bin/clang++ My build ended up running into some other trouble - something about the symbols for the AOM AV1 codec not existing (but, i tried to disable it... i do have it built tho, so i'll try not disabling it next, rebuild time...) |