Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 930953 - sys-devel/gcc: rust dependencies incomplete?
Summary: sys-devel/gcc: rust dependencies incomplete?
Status: RESOLVED FIXED
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: Current packages (show other bugs)
Hardware: All Linux
: Normal normal
Assignee: Gentoo Toolchain Maintainers
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2024-04-30 05:52 UTC by Patrick Lauer
Modified: 2024-04-30 05:59 UTC (History)
1 user (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 Patrick Lauer gentoo-dev 2024-04-30 05:52:59 UTC
checking for the correct version of the mpc libraries... yes
configure: error: cargo is required to build rust
 * ERROR: sys-devel/gcc-14.0.9999::gentoo failed (configure phase):
 *   Failed to run command: /bin/sh /var/tmp/portage/sys-devel/gcc-14.0.9999/work/gcc-14.0.9999/configure --host=x86_64-pc-linux-gnu --build=x86_64-pc-linux-gnu --prefix=/usr --bindir=/usr/x86_64-pc-linux-gnu/gcc-bin/14 --includedir=/usr/lib/gcc/x86_64-pc-linux-gnu/14/include --datadir=/usr/share/gcc-data/x86_64-pc-linux-gnu/14 --mandir=/usr/share/gcc-data/x86_64-pc-linux-gnu/14/man --infodir=/usr/share/gcc-data/x86_64-pc-linux-gnu/14/info --with-gxx-include-dir=/usr/lib/gcc/x86_64-pc-linux-gnu/14/include/g++-v14 --disable-silent-rules --disable-dependency-tracking --with-python-dir=/share/gcc-data/x86_64-pc-linux-gnu/14/python --enable-languages=c,c++,fortran,rust --enable-obsolete --enable-secureplt --disable-werror --with-system-zlib --enable-nls --without-included-gettext --disable-libunwind-exceptions --enable-checking=yes,extra --with-bugurl=https://bugs.gentoo.org/ --with-pkgversion=Gentoo 14.0.9999 p, commit a447cd6dee206facb66720bdacf0c765a8b09f33 --with-gcc-major-version-only --enable-libstdcxx-time --enable-lto --disable-libstdcxx-pch --enable-shared --enable-threads=posix --enable-__cxa_atexit --enable-clocale=gnu --enable-multilib --with-multilib-list=m32,m64 --disable-fixed-point --enable-targets=all --enable-libgomp --disable-libssp --disable-libada --disable-cet --disable-systemtap --disable-valgrind-annotations --disable-vtable-verify --disable-libvtv --without-zstd --with-isl --disable-isl-version-check --enable-default-pie --enable-host-pie --disable-host-bind-now --enable-default-ssp --disable-fixincludes
 * 
 * Call stack:
 *     ebuild.sh, line  136:  Called src_configure

emerge -pv gcc says
[ebuild  NS   *] sys-devel/gcc-15.0.9999:15::gentoo [13.2.1_p20231014:13::gentoo, 14.0.9999:14::gentoo] USE="(cxx) fortran graphite (multilib) nls openmp (pie) rust sanitize ssp -ada -cet (-custom-cflags) -d -debug -default-stack-clash-protection -default-znow -doc (-fixed-point) -go -hardened (-ieee-long-double) -jit (-libssp) -lto -modula2 -objc -objc++ -objc-gc (-pch) -pgo -systemtap -test -valgrind -vanilla -vtv -zstd" 0 KiB

nothing else pulled in, rust is /not/ installed:
emerge -pv virtual/rust
[...]
[ebuild  N     ] virtual/rust-1.77.1:0/llvm-17::gentoo  USE="-profiler -rustfmt" ABI_X86="(64) -32 (-x32)" 0 KiB


So somehow USE="rust" is active, but no rust toolchain pulled in. toolchain.elass says:

if tc_has_feature rust && tc_version_is_at_least 14.0.0_pre20230421 ; then
        # This was added upstream in r14-9968-g3e1e73fc995844 as a temporary measure.
        # See https://inbox.sourceware.org/gcc/34fec7ea-8762-4cac-a1c8-ff54e20e31ed@embecosm.com/
        BDEPEND+=" rust? ( virtual/rust )"
fi

which should definitely trigger for gcc:14 and gcc:15, so I have no good idea how portage manages to not pull in virtual/rust.
Comment 1 Sam James archtester Gentoo Infrastructure gentoo-dev Security 2024-04-30 05:55:05 UTC
$ grep BDEPEND /var/db/repos/gentoo/metadata/md5-cache/sys-devel/gcc-15.0.9999
BDEPEND=amd64? ( >=sys-devel/binutils-2.30[cet(-)?] ) sys-devel/gnuconfig >=app-portage/elt-patches-20240116 >=dev-vcs/git-1.8.2.1[curl] app-alternatives/yacc >=sys-devel/flex-2.5.4 nls? ( sys-devel/gettext ) test? ( || ( dev-lang/python:3.11 dev-lang/python:3.10 ) >=dev-util/dejagnu-1.4.4 >=sys-devel/autogen-5.5.4 ) valgrind? ( dev-debug/valgrind ) d? ( || ( sys-devel/gcc[d(-)] <sys-devel/gcc-12[d(-)] ) )

so it's definitely something wrong in the eclass, looking...
Comment 2 Larry the Git Cow gentoo-dev 2024-04-30 05:58:45 UTC
The bug has been closed via the following commit(s):

https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=8cae9d4db1c14e18dafb28853f722aac6784b34a

commit 8cae9d4db1c14e18dafb28853f722aac6784b34a
Author:     Sam James <sam@gentoo.org>
AuthorDate: 2024-04-30 05:56:25 +0000
Commit:     Sam James <sam@gentoo.org>
CommitDate: 2024-04-30 05:56:25 +0000

    toolchain.eclass: wire up TC_FEATURES for rust
    
    Otherwise we don't actually end up adding a BDEPEND for USE=rust.
    
    Closes: https://bugs.gentoo.org/930953
    Signed-off-by: Sam James <sam@gentoo.org>

 eclass/toolchain.eclass | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
Comment 3 Sam James archtester Gentoo Infrastructure gentoo-dev Security 2024-04-30 05:59:23 UTC
Thanks! I think that area is one of the bits which needs some more love next. I've managed to clean up a lot of the eclass but I've not touched that yet.