Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 872578 - dev-lang/rust-1.64.0 compiles with llvm:15 without additional patching
Summary: dev-lang/rust-1.64.0 compiles with llvm:15 without additional patching
Status: RESOLVED WONTFIX
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: Current packages (show other bugs)
Hardware: All Linux
: Normal normal (vote)
Assignee: Georgy Yakovlev
URL:
Whiteboard:
Keywords:
: 873415 (view as bug list)
Depends on:
Blocks:
 
Reported: 2022-09-23 23:58 UTC by cyrillic
Modified: 2022-09-29 10:03 UTC (History)
4 users (show)

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


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description cyrillic 2022-09-23 23:58:11 UTC
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
Comment 1 Sam James archtester Gentoo Infrastructure gentoo-dev Security 2022-09-23 23:59:19 UTC
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.
Comment 2 Georgy Yakovlev archtester gentoo-dev 2022-09-24 04:48:05 UTC
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.
Comment 3 Mike Lothian 2022-09-24 14:38:29 UTC
Should the solution instead be for Mozilla to depend on the same slot for each component rather than forcing one version?
Comment 4 cyrillic 2022-09-24 15:04:06 UTC
(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.
Comment 5 Georgy Yakovlev archtester gentoo-dev 2022-09-24 17:09:25 UTC
(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.
Comment 6 Martin Väth 2022-09-24 21:40:09 UTC
(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.
Comment 7 Georgy Yakovlev archtester gentoo-dev 2022-09-24 22:43:11 UTC
(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.
Comment 8 Sam James archtester Gentoo Infrastructure gentoo-dev Security 2022-09-24 23:05:56 UTC
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.
Comment 9 Sam James archtester Gentoo Infrastructure gentoo-dev Security 2022-09-29 10:03:30 UTC
*** Bug 873415 has been marked as a duplicate of this bug. ***