toolchain.eclass: bootstrap D with matching C, C++ compilers

When building gcc 14 with trunk, I see:

  opts-common.cc:(.text+0x193): undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_create_plus(unsigned long, unsigned long)'

and in libstdc++.so.6.0.36, I have:

  00000000002590e0 W std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_create_plus(unsigned long, unsigned long)@@GLIBCXX_3.4.36

create_plus is from r17-603-gacfdad706d8acc. Using gdc-14 to bootstrap D but
opts-common.o is built by g++ from trunk, which means it uses libstdc++ trunk headers,
then gdc-14 tries to use libstdc++.so from 14.

We nede to use matching C, C++ compilers too, so do that, for bootstrapping
D.

Signed-off-by: Sam James <sam@gentoo.org>
This commit is contained in:
Sam James
2026-05-26 08:42:59 +01:00
parent 2d61e839f4
commit 7b3bd00806

View File

@@ -1154,6 +1154,8 @@ toolchain_setup_d() {
die "Did not find any appropriate GDC compiler installed"
fi
export CC=${bootstrap_gcc_bin_dir}/${CHOST}-gcc
export CXX=${bootstrap_gcc_bin_dir}/${CHOST}-g++
export GDC=${bootstrap_gcc_bin_dir}/${CHOST}-gdc
}