dev-lang/rust-1.64.0 compiles with llvm:15 without additional patching. I was expecting to rebase the patch from bug 868330, but this was not needed and it just worked. Reproducible: Always # emerge --info Portage 3.0.37 (python 3.11.0-candidate-2, default/linux/amd64/17.1/desktop/gnome/systemd, gcc-12.2.0, glibc-2.36-r3, 6.0.0-rc6 x86_64) ================================================================= System uname: Linux-6.0.0-rc6-x86_64-AMD_Ryzen_Threadripper_2970WX_24-Core_Processor-with-glibc2.36 KiB Mem: 65837756 total, 56863544 free KiB Swap: 0 total, 0 free Head commit of repository qt: 8e3b0c6f5c86a5fda6f4f0a62ac7f0c9c791d1aa Head commit of repository gentoo: 79a0f3bf2fee3e377f75bb28a2e0110ef9aad2e1 sh bash 5.1_p16-r2 ld GNU ld (Gentoo 2.39 p4) 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::gentoo dev-lang/python: 3.10.7::gentoo, 3.11.0_rc2::gentoo dev-lang/rust: 1.64.0::fixes dev-util/cmake: 3.24.2::gentoo dev-util/meson: 0.63.2-r1::gentoo sys-apps/baselayout: 2.9::gentoo sys-apps/openrc: 0.45.2::gentoo sys-apps/sandbox: 2.29::gentoo sys-apps/systemd: 251.4::gentoo sys-devel/autoconf: 2.13-r3::gentoo, 2.71-r4::gentoo sys-devel/automake: 1.16.5::gentoo sys-devel/binutils: 2.39-r2::gentoo sys-devel/binutils-config: 5.4.1::gentoo sys-devel/clang: 15.0.1::gentoo sys-devel/gcc: 12.2.0::gentoo sys-devel/gcc-config: 2.6::gentoo sys-devel/libtool: 2.4.7::gentoo sys-devel/lld: 15.0.1::gentoo sys-devel/llvm: 15.0.1::gentoo sys-devel/make: 4.3::gentoo sys-kernel/linux-headers: 5.19::gentoo (virtual/os-headers) sys-libs/glibc: 2.36-r3::gentoo Repositories: newstuff location: /mnt/repos/newstuff masters: gentoo priority: -1030 eclass-overrides: fixes qt location: /mnt/repos/qt sync-type: git sync-uri: https://anongit.gentoo.org/git/proj/qt.git masters: gentoo priority: -1020 eclass-overrides: fixes gnomelive location: /mnt/repos/gnomelive masters: gentoo priority: -1010 eclass-overrides: fixes gentoo location: /mnt/repos/gentoo sync-type: git sync-uri: https://anongit.gentoo.org/git/repo/gentoo.git priority: -1000 eclass-overrides: fixes crossdev location: /mnt/repos/crossdev masters: gentoo eclass-overrides: fixes fixes location: /mnt/repos/fixes masters: gentoo priority: 10 eclass-overrides: fixes Installed sets: @clang, @gnome, @qt6, @system ACCEPT_KEYWORDS="* amd64 ~*" ACCEPT_LICENSE="@FREE" CBUILD="x86_64-pc-linux-gnu" CFLAGS="-march=nocona -mtune=native -O2 -pipe" CHOST="x86_64-pc-linux-gnu" CONFIG_PROTECT="/etc /usr/share/gnupg/qualified.txt /var/bind" 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="-march=nocona -mtune=native -O2 -pipe" DISTDIR="/mnt/distfiles" ENV_UNSET="CARGO_HOME DBUS_SESSION_BUS_ADDRESS DISPLAY 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" FCFLAGS="-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" FFLAGS="-O2 -pipe" GENTOO_MIRRORS="http://distfiles.gentoo.org" LANG="en_US.utf8" LDFLAGS="-Wl,-O1 -Wl,--as-needed" MAKEOPTS="-j48" PKGDIR="/var/tmp/packages" 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="/tmp" SHELL="/bin/bash" USE="X a52 aac acl alsa amd64 bluetooth bluray boost brotli bzip2 cairo caps cdr colord cpudetection css cups curl custom-cflags cxx dbus dnssec drm dts dvd eds egl encode exif expat fbcon ffmpeg flac flickr fontconfig fortran gdbm geolocation gif glamor gles2 glib gnome gnome-keyring gnutls gpm graphite gssapi gstreamer gtk gtk3 harfbuzz heif ibus icu idn imagemagick introspection ipv6 jpeg jpeg2k jpegxl kmod kms lcms libass libglvnd libinput libnotify lz4 lzma mp3 mpi nautilus ncurses networkmanager nls nptl numa ocamlopt ogg opencl opencv openexr opengl openmp openssl opus orc pam pango pcre pdf pipewire png policykit postproc postscript pulseaudio python qml readline samba speex spell split-usr ssl ssp svg systemd tcl telepathy theora threads tiff tk tools tracker truetype udev unicode upnp-av usb utils v4l vaapi vala vorbis vpx vulkan wayland webp x264 x265 xcb xkb xml xmp xv xvmc zlib zstd" ABI_X86="64" CPU_FLAGS_X86="mmx mmxext sse sse2 sse3" CURL_SSL="openssl" ELIBC="glibc" INPUT_DEVICES="libinput wacom" KERNEL="linux" L10N="en" LLVM_TARGETS="AMDGPU BPF X86" LUA_SINGLE_TARGET="lua5-4" PYTHON_SINGLE_TARGET="python3_11" PYTHON_TARGETS="python3_10 python3_11" RUBY_TARGETS="ruby31" USERLAND="GNU" VIDEO_CARDS="amdgpu intel nouveau radeon radeonsi" 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, LEX, 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
The problem is that it's then inconsistent with rust-bin and there's no way to get the deps right. The next Rust release will be based on LLVM 15.
Hi, sorry but we can't enable different llvm for rust-bin and rust. so we lock exactly to the same one. it also involves locking ALL THE mozilla ebuilds too. if you build mozilla products with lto-pgo, all the components have to match: llvm rust's llvm lld clang everything slotted in clang's deps if any component is mismatched - ff/tb breaks and we get dozens of bugreports with build or runtime failures. so we've decided to nicely lock everything down to single llvm version. you are free to copy ebuild to local overlay and bump single variable if you want. but do not report if mozilla products fail on such system, it is known, nothing we can do.
Should the solution instead be for Mozilla to depend on the same slot for each component rather than forcing one version?
(In reply to Georgy Yakovlev from comment #2) > ... so we've decided to nicely lock everything down to single llvm version. Ok, I understand. Things are a little easier for me because I do not have to deal with rust-bin. My local ebuilds for rust,spidermonkey,firefox are all locked to llvm:15 and things seem to be working without issue.
(In reply to Mike Lothian from comment #3) > Should the solution instead be for Mozilla to depend on the same slot for > each component rather than forcing one version? How will you know which llvm rust is built with to specify a dependency? You can’t in advance, hence you can’t specify a dependency.
(In reply to Georgy Yakovlev from comment #5) > How will you know which llvm rust is built with to specify a dependency? Not saying that this is the best solution, but it is possible: One could add a USE-flag with the llvm version to the rust and firefox (and perhaps more) ebuilds and then require matching flags in the dependencies, or add blockers.
(In reply to Martin Väth from comment #6) > (In reply to Georgy Yakovlev from comment #5) > > How will you know which llvm rust is built with to specify a dependency? > > Not saying that this is the best solution, but it is possible: > One could add a USE-flag with the llvm version to the rust and firefox (and > perhaps more) ebuilds and then require matching flags in the dependencies, > or add blockers. it's ugly, we ruled it out. packages would start adding llvm14 llvm15 llvm16 flags, with rust-bin providing only single flag, rust[-system-llvm] also providing single, and rust[system-llvm] providing 5 or so.
Honestly, if we were going to spend the time on it, we'd be better off figuring out how to slot lld (see bug 691900). Help very welcome on that.
*** Bug 873415 has been marked as a duplicate of this bug. ***