Skip to content

Instantly share code, notes, and snippets.

@durin42
Last active July 17, 2020 20:50
Show Gist options
  • Save durin42/31338b84f97f21b371e2150bedd144e6 to your computer and use it in GitHub Desktop.
Save durin42/31338b84f97f21b371e2150bedd144e6 to your computer and use it in GitHub Desktop.
[llvm]
static-libstdcpp = true
cflags = "-D_GLIBCXX_USE_CXX11_ABI=0 -stdlib=libc++ --rtlib=compiler-rt -unwindlib=libunwind -static-libstdc++ -static-libgcc -DUCHAR_TYPE=uint16_t -g0"
cxxflags = "-D_GLIBCXX_USE_CXX11_ABI=0 -std=c++11"
ldflags = "-Bstatic -static-libstdc++ -static-libgcc -g0 -L/toolchain/lib/"
use-libcxx = true
[build]
[install]
[rust]
default-linker = "/toolchain/bin/clang"
llvm-libunwind = true
[target.x86_64-unknown-linux-gnu]
cc = "/toolchain/bin/clang"
cxx = "/toolchain/bin/clang++"
ar = "/toolchain/bin/llvm-ar"
linker = "/toolchain/bin/clang"
crt-static = true
[dist]
FROM debian:buster
RUN groupadd -g 1000 build && \
useradd -u 1000 -g 1000 -s /bin/bash -d /build -m build && \
mkdir /toolchain && chown build /toolchain
RUN apt-get update && apt-get install -y \
build-essential \
clang \
cmake \
curl \
git \
less \
ninja-build \
python3 \
python3-distutils \
python-setuptools \
sudo
USER build
RUN mkdir /build/llvm && mkdir /build/libc++ \
&& git clone https://github.com/llvm/llvm-project /build/llvm-project
RUN git clone https://github.com/rust-lang/rust /build/rust \
&& (cd /build/rust && git submodule update)
# ld from debian buster has a bug
# (https://sourceware.org/bugzilla/show_bug.cgi?id=24458, via
# https://bugs.llvm.org/show_bug.cgi?id=42994) that means we need to
# use ldd instead. Use debian's clang to stage a new clang and lld, so
# we can then build clang/libc++/compiler-rt/etc.
RUN cd /build/llvm \
&& cmake -G Ninja \
-DCMAKE_C_COMPILER=clang \
-DCMAKE_CXX_COMPILER=clang++ \
-DCMAKE_INSTALL_PREFIX=/toolchain \
-DLLVM_ENABLE_PROJECTS="clang;lld" \
/build/llvm-project/llvm/ \
&& ninja \
&& ninja install \
&& cd / && rm -r /build/llvm
RUN mkdir /build/llvm && cd /build/llvm \
&& export PATH=/toolchain/bin:$PATH \
&& cmake -G Ninja \
-DCMAKE_C_COMPILER=clang \
-DCMAKE_CXX_COMPILER=clang++ \
-DLLVM_USE_LINKER=lld \
-DCMAKE_INSTALL_PREFIX=/toolchain \
-DLLVM_ENABLE_PROJECTS="clang;libcxx;lld;libcxxabi;compiler-rt;libunwind" \
/build/llvm-project/llvm/ \
&& ninja \
&& ninja install \
&& cd / && rm -r /build/llvm
COPY config.toml /build/rust/config.toml

So, I'm trying to build rustc with the C++ stdlib statically linked. For reasons I won't go into here, it also has to be libc++, not libstdc++. After using this setup:

error: linking with `/toolchain/bin/clang` failed: exit code: 1
  |
  = note: "/toolchain/bin/clang" "-Wl,--as-needed" "-Wl,-z,noexecstack" "-m64" "-Wl,--eh-frame-hdr" "-L" "/build/rust/build/x86_64-unknown-linux-gnu/stage0-sysroot/lib/rustlib/x86_64-unknown-linux-gnu/lib" "/build/rust/build/x86_64-unknown-linux-gnu/stage0-rustc/x86_64-unknown-linux-gnu/release/deps/rustc_binary-9936473125741169.rustc_binary.bsklrer1-cgu.0.rcgu.o" "/build/rust/build/x86_64-unknown-linux-gnu/stage0-rustc/x86_64-unknown-linux-gnu/release/deps/rustc_binary-9936473125741169.rustc_binary.bsklrer1-cgu.1.rcgu.o" "-o" "/build/rust/build/x86_64-unknown-linux-gnu/stage0-rustc/x86_64-unknown-linux-gnu/release/deps/rustc_binary-9936473125741169" "-Wl,--gc-sections" "-pie" "-Wl,-zrelro" "-Wl,-znow" "-Wl,-O1" "-nodefaultlibs" "-L" "/build/rust/build/x86_64-unknown-linux-gnu/stage0-rustc/x86_64-unknown-linux-gnu/release/deps" "-L" "/build/rust/build/x86_64-unknown-linux-gnu/stage0-rustc/release/deps" "-L" "/build/rust/build/x86_64-unknown-linux-gnu/stage0-rustc/x86_64-unknown-linux-gnu/release/build/psm-d73e4728be7ae901/out" "-L" "/build/rust/build/x86_64-unknown-linux-gnu/stage0-rustc/x86_64-unknown-linux-gnu/release/build/rustc_llvm-cb57cf982b9d6031/out" "-L" "/build/rust/build/x86_64-unknown-linux-gnu/llvm/build/lib" "-L" "/toolchain/lib/" "-L" "/usr/lib/gcc/x86_64-linux-gnu/8" "-L" "/build/rust/build/x86_64-unknown-linux-gnu/stage0-sysroot/lib/rustlib/x86_64-unknown-linux-gnu/lib" "-L" "/build/rust/build/x86_64-unknown-linux-gnu/stage0-rustc/x86_64-unknown-linux-gnu/release/deps" "-lrustc_driver-1a376e92b33893ff" "-Wl,--start-group" "-L" "/build/rust/build/x86_64-unknown-linux-gnu/stage0-sysroot/lib/rustlib/x86_64-unknown-linux-gnu/lib" "-lstd-6624f291f56a673a" "-Wl,--end-group" "-Wl,-Bstatic" "/build/rust/build/x86_64-unknown-linux-gnu/stage0-sysroot/lib/rustlib/x86_64-unknown-linux-gnu/lib/libcompiler_builtins-abce8664c8e04265.rlib" "-Wl,-Bdynamic" "-lrt" "-ldl" "-lpthread" "-lm" "-lutil" "-ldl" "-lutil" "-ldl" "-lrt" "-lpthread" "-lc" "-lm" "-lrt" "-lpthread" "-lutil" "-ldl" "-lutil" "-Wl,-rpath,$ORIGIN/../lib"
  = note: /usr/bin/ld: /build/rust/build/x86_64-unknown-linux-gnu/stage0-rustc/x86_64-unknown-linux-gnu/release/deps/librustc_driver-1a376e92b33893ff.so: undefined reference to `llvm::TargetRegistry::lookupTarget(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&)'
          /usr/bin/ld: /build/rust/build/x86_64-unknown-linux-gnu/stage0-rustc/x86_64-unknown-linux-gnu/release/deps/librustc_driver-1a376e92b33893ff.so: undefined reference to `llvm::Triple::normalize[abi:cxx11](llvm::StringRef)'
          /usr/bin/ld: /build/rust/build/x86_64-unknown-linux-gnu/stage0-rustc/x86_64-unknown-linux-gnu/release/deps/librustc_driver-1a376e92b33893ff.so: undefined reference to `std::bad_cast::~bad_cast()'
          /usr/bin/ld: /build/rust/build/x86_64-unknown-linux-gnu/stage0-rustc/x86_64-unknown-linux-gnu/release/deps/librustc_driver-1a376e92b33893ff.so: undefined reference to `vtable for std::basic_streambuf<char, std::char_traits<char> >'
          /usr/bin/ld: /build/rust/build/x86_64-unknown-linux-gnu/stage0-rustc/x86_64-unknown-linux-gnu/release/deps/librustc_driver-1a376e92b33893ff.so: undefined reference to `std::logic_error::~logic_error()'
          /usr/bin/ld: /build/rust/build/x86_64-unknown-linux-gnu/stage0-rustc/x86_64-unknown-linux-gnu/release/deps/librustc_driver-1a376e92b33893ff.so: undefined reference to `__cxa_uncaught_exceptions'
          /usr/bin/ld: /build/rust/build/x86_64-unknown-linux-gnu/stage0-rustc/x86_64-unknown-linux-gnu/release/deps/librustc_driver-1a376e92b33893ff.so: undefined reference to `std::__detail::_Prime_rehash_policy::_M_next_bkt(unsigned long) const'
          /usr/bin/ld: /build/rust/build/x86_64-unknown-linux-gnu/stage0-rustc/x86_64-unknown-linux-gnu/release/deps/librustc_driver-1a376e92b33893ff.so: undefined reference to `__once_proxy'
          /usr/bin/ld: /build/rust/build/x86_64-unknown-linux-gnu/stage0-rustc/x86_64-unknown-linux-gnu/release/deps/librustc_driver-1a376e92b33893ff.so: undefined reference to `std::logic_error::logic_error(std::string const&)'
          /usr/bin/ld: /build/rust/build/x86_64-unknown-linux-gnu/stage0-rustc/x86_64-unknown-linux-gnu/release/deps/librustc_driver-1a376e92b33893ff.so: undefined reference to `std::string::insert(unsigned long, char const*, unsigned long)'
          /usr/bin/ld: /build/rust/build/x86_64-unknown-linux-gnu/stage0-rustc/x86_64-unknown-linux-gnu/release/deps/librustc_driver-1a376e92b33893ff.so: undefined reference to `std::thread::hardware_concurrency()'
          /usr/bin/ld: /build/rust/build/x86_64-unknown-linux-gnu/stage0-rustc/x86_64-unknown-linux-gnu/release/deps/librustc_driver-1a376e92b33893ff.so: undefined reference to `__cxa_pure_virtual'
          /usr/bin/ld: /build/rust/build/x86_64-unknown-linux-gnu/stage0-rustc/x86_64-unknown-linux-gnu/release/deps/librustc_driver-1a376e92b33893ff.so: undefined reference to `std::string::swap(std::string&)'
          /usr/bin/ld: /build/rust/build/x86_64-unknown-linux-gnu/stage0-rustc/x86_64-unknown-linux-gnu/release/deps/librustc_driver-1a376e92b33893ff.so: undefined reference to `std::future_error::~future_error()'
          /usr/bin/ld: /build/rust/build/x86_64-unknown-linux-gnu/stage0-rustc/x86_64-unknown-linux-gnu/release/deps/librustc_driver-1a376e92b33893ff.so: undefined reference to `std::basic_string<wchar_t, std::char_traits<wchar_t>, std::allocator<wchar_t> >::_Rep::_M_destroy(std::allocator<wchar_t> const&)'
          /usr/bin/ld: /build/rust/build/x86_64-unknown-linux-gnu/stage0-rustc/x86_64-unknown-linux-gnu/release/deps/librustc_driver-1a376e92b33893ff.so: undefined reference to `std::string::assign(std::string const&)'
          /usr/bin/ld: /build/rust/build/x86_64-unknown-linux-gnu/stage0-rustc/x86_64-unknown-linux-gnu/release/deps/librustc_driver-1a376e92b33893ff.so: undefined reference to `_Unwind_Resume'
          /usr/bin/ld: /build/rust/build/x86_64-unknown-linux-gnu/stage0-rustc/x86_64-unknown-linux-gnu/release/deps/librustc_driver-1a376e92b33893ff.so: undefined reference to `std::locale::~locale()'
          /usr/bin/ld: /build/rust/build/x86_64-unknown-linux-gnu/stage0-rustc/x86_64-unknown-linux-gnu/release/deps/librustc_driver-1a376e92b33893ff.so: undefined reference to `std::out_of_range::~out_of_range()'
          /usr/bin/ld: /build/rust/build/x86_64-unknown-linux-gnu/stage0-rustc/x86_64-unknown-linux-gnu/release/deps/librustc_driver-1a376e92b33893ff.so: undefined reference to `std::__future_base::_Result_base::_Result_base()'
          /usr/bin/ld: /build/rust/build/x86_64-unknown-linux-gnu/stage0-rustc/x86_64-unknown-linux-gnu/release/deps/librustc_driver-1a376e92b33893ff.so: undefined reference to `vtable for std::exception'
          /usr/bin/ld: /build/rust/build/x86_64-unknown-linux-gnu/stage0-rustc/x86_64-unknown-linux-gnu/release/deps/librustc_driver-1a376e92b33893ff.so: undefined reference to `typeinfo for std::logic_error'
          /usr/bin/ld: /build/rust/build/x86_64-unknown-linux-gnu/stage0-rustc/x86_64-unknown-linux-gnu/release/deps/librustc_driver-1a376e92b33893ff.so: undefined reference to `vtable for std::basic_stringstream<char, std::char_traits<char>, std::allocator<char> >'
          /usr/bin/ld: /build/rust/build/x86_64-unknown-linux-gnu/stage0-rustc/x86_64-unknown-linux-gnu/release/deps/librustc_driver-1a376e92b33893ff.so: undefined reference to `std::basic_ostream<char, std::char_traits<char> >& std::operator<< <std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&, char const*)'
          /usr/bin/ld: /build/rust/build/x86_64-unknown-linux-gnu/stage0-rustc/x86_64-unknown-linux-gnu/release/deps/librustc_driver-1a376e92b33893ff.so: undefined reference to `std::__throw_bad_cast()'
          /usr/bin/ld: /build/rust/build/x86_64-unknown-linux-gnu/stage0-rustc/x86_64-unknown-linux-gnu/release/deps/librustc_driver-1a376e92b33893ff.so: undefined reference to `vtable for std::basic_ostringstream<char, std::char_traits<char>, std::allocator<char> >'
          /usr/bin/ld: /build/rust/build/x86_64-unknown-linux-gnu/stage0-rustc/x86_64-unknown-linux-gnu/release/deps/librustc_driver-1a376e92b33893ff.so: undefined reference to `std::__throw_bad_function_call()'
          /usr/bin/ld: /build/rust/build/x86_64-unknown-linux-gnu/stage0-rustc/x86_64-unknown-linux-gnu/release/deps/librustc_driver-1a376e92b33893ff.so: undefined reference to `typeinfo for std::out_of_range'
          /usr/bin/ld: /build/rust/build/x86_64-unknown-linux-gnu/stage0-rustc/x86_64-unknown-linux-gnu/release/deps/librustc_driver-1a376e92b33893ff.so: undefined reference to `llvm::DiagnosticLocation::getAbsolutePath[abi:cxx11]() const'
          /usr/bin/ld: /build/rust/build/x86_64-unknown-linux-gnu/stage0-rustc/x86_64-unknown-linux-gnu/release/deps/librustc_driver-1a376e92b33893ff.so: undefined reference to `__cxa_rethrow'
          /usr/bin/ld: /build/rust/build/x86_64-unknown-linux-gnu/stage0-rustc/x86_64-unknown-linux-gnu/release/deps/librustc_driver-1a376e92b33893ff.so: undefined reference to `__gxx_personality_v0'
          /usr/bin/ld: /build/rust/build/x86_64-unknown-linux-gnu/stage0-rustc/x86_64-unknown-linux-gnu/release/deps/librustc_driver-1a376e92b33893ff.so: undefined reference to `std::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string(unsigned long, char, std::allocator<char> const&)'
          /usr/bin/ld: /build/rust/build/x86_64-unknown-linux-gnu/stage0-rustc/x86_64-unknown-linux-gnu/release/deps/librustc_driver-1a376e92b33893ff.so: undefined reference to `std::__atomic_futex_unsigned_base::_M_futex_wait_until(unsigned int*, unsigned int, bool, std::chrono::duration<long, std::ratio<1l, 1l> >, std::chrono::duration<long, std::ratio<1l, 1000000000l> >)'
          /usr/bin/ld: /build/rust/build/x86_64-unknown-linux-gnu/stage0-rustc/x86_64-unknown-linux-gnu/release/deps/librustc_driver-1a376e92b33893ff.so: undefined reference to `std::string::compare(char const*) const'
          /usr/bin/ld: /build/rust/build/x86_64-unknown-linux-gnu/stage0-rustc/x86_64-unknown-linux-gnu/release/deps/librustc_driver-1a376e92b33893ff.so: undefined reference to `std::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string(char const*, unsigned long, std::allocator<char> const&)'
          /usr/bin/ld: /build/rust/build/x86_64-unknown-linux-gnu/stage0-rustc/x86_64-unknown-linux-gnu/release/deps/librustc_driver-1a376e92b33893ff.so: undefined reference to `std::cerr'
          /usr/bin/ld: /build/rust/build/x86_64-unknown-linux-gnu/stage0-rustc/x86_64-unknown-linux-gnu/release/deps/librustc_driver-1a376e92b33893ff.so: undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_create(unsigned long&, unsigned long)'
          /usr/bin/ld: /build/rust/build/x86_64-unknown-linux-gnu/stage0-rustc/x86_64-unknown-linux-gnu/release/deps/librustc_driver-1a376e92b33893ff.so: undefined reference to `llvm::install_fatal_error_handler(void (*)(void*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, bool), void*)'
          /usr/bin/ld: /build/rust/build/x86_64-unknown-linux-gnu/stage0-rustc/x86_64-unknown-linux-gnu/release/deps/librustc_driver-1a376e92b33893ff.so: undefined reference to `std::invalid_argument::~invalid_argument()'
          /usr/bin/ld: /build/rust/build/x86_64-unknown-linux-gnu/stage0-rustc/x86_64-unknown-linux-gnu/release/deps/librustc_driver-1a376e92b33893ff.so: undefined reference to `llvm::PassBuilder::addPGOInstrPassesForO0(llvm::PassManager<llvm::Module, llvm::AnalysisManager<llvm::Module>>&, bool, bool, bool, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >)'
          /usr/bin/ld: /build/rust/build/x86_64-unknown-linux-gnu/stage0-rustc/x86_64-unknown-linux-gnu/release/deps/librustc_driver-1a376e92b33893ff.so: undefined reference to `std::overflow_error::~overflow_error()'
          /usr/bin/ld: /build/rust/build/x86_64-unknown-linux-gnu/stage0-rustc/x86_64-unknown-linux-gnu/release/deps/librustc_driver-1a376e92b33893ff.so: undefined reference to `std::ios_base::Init::Init()'
          /usr/bin/ld: /build/rust/build/x86_64-unknown-linux-gnu/stage0-rustc/x86_64-unknown-linux-gnu/release/deps/librustc_driver-1a376e92b33893ff.so: undefined reference to `std::basic_string<wchar_t, std::char_traits<wchar_t>, std::allocator<wchar_t> >::_M_leak_hard()'
          /usr/bin/ld: /build/rust/build/x86_64-unknown-linux-gnu/stage0-rustc/x86_64-unknown-linux-gnu/release/deps/librustc_driver-1a376e92b33893ff.so: undefined reference to `std::_V2::error_category::default_error_condition(int) const'
          /usr/bin/ld: /build/rust/build/x86_64-unknown-linux-gnu/stage0-rustc/x86_64-unknown-linux-gnu/release/deps/librustc_driver-1a376e92b33893ff.so: undefined reference to `std::__once_callable'
          /usr/bin/ld: /build/rust/build/x86_64-unknown-linux-gnu/stage0-rustc/x86_64-unknown-linux-gnu/release/deps/librustc_driver-1a376e92b33893ff.so: undefined reference to `std::string::assign(char const*, unsigned long)'
          /usr/bin/ld: /build/rust/build/x86_64-unknown-linux-gnu/stage0-rustc/x86_64-unknown-linux-gnu/release/deps/librustc_driver-1a376e92b33893ff.so: undefined reference to `std::_V2::error_category::equivalent(std::error_code const&, int) const'
          /usr/bin/ld: /build/rust/build/x86_64-unknown-linux-gnu/stage0-rustc/x86_64-unknown-linux-gnu/release/deps/librustc_driver-1a376e92b33893ff.so: undefined reference to `std::_Rb_tree_increment(std::_Rb_tree_node_base*)'
          /usr/bin/ld: /build/rust/build/x86_64-unknown-linux-gnu/stage0-rustc/x86_64-unknown-linux-gnu/release/deps/librustc_driver-1a376e92b33893ff.so: undefined reference to `std::_V2::error_category::_M_message(int) const'
          /usr/bin/ld: /build/rust/build/x86_64-unknown-linux-gnu/stage0-rustc/x86_64-unknown-linux-gnu/release/deps/librustc_driver-1a376e92b33893ff.so: undefined reference to `std::string::find(char const*, unsigned long, unsigned long) const'
          /usr/bin/ld: /build/rust/build/x86_64-unknown-linux-gnu/stage0-rustc/x86_64-unknown-linux-gnu/release/deps/librustc_driver-1a376e92b33893ff.so: undefined reference to `std::basic_ostream<char, std::char_traits<char> >& std::__ostream_insert<char, std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&, char const*, long)'
          /usr/bin/ld: /build/rust/build/x86_64-unknown-linux-gnu/stage0-rustc/x86_64-unknown-linux-gnu/release/deps/librustc_driver-1a376e92b33893ff.so: undefined reference to `std::__throw_out_of_range(char const*)'
          /usr/bin/ld: /build/rust/build/x86_64-unknown-linux-gnu/stage0-rustc/x86_64-unknown-linux-gnu/release/deps/librustc_driver-1a376e92b33893ff.so: undefined reference to `std::__throw_system_error(int)'
          /usr/bin/ld: /build/rust/build/x86_64-unknown-linux-gnu/stage0-rustc/x86_64-unknown-linux-gnu/release/deps/librustc_driver-1a376e92b33893ff.so: undefined reference to `std::_V2::generic_category()'
          /usr/bin/ld: /build/rust/build/x86_64-unknown-linux-gnu/stage0-rustc/x86_64-unknown-linux-gnu/release/deps/librustc_driver-1a376e92b33893ff.so: undefined reference to `std::thread::join()'
          /usr/bin/ld: /build/rust/build/x86_64-unknown-linux-gnu/stage0-rustc/x86_64-unknown-linux-gnu/release/deps/librustc_driver-1a376e92b33893ff.so: undefined reference to `std::bad_alloc::bad_alloc()'
          /usr/bin/ld: /build/rust/build/x86_64-unknown-linux-gnu/stage0-rustc/x86_64-unknown-linux-gnu/release/deps/librustc_driver-1a376e92b33893ff.so: undefined reference to `std::__detail::_List_node_base::_M_transfer(std::__detail::_List_node_base*, std::__detail::_List_node_base*)'
          /usr/bin/ld: /build/rust/build/x86_64-unknown-linux-gnu/stage0-rustc/x86_64-unknown-linux-gnu/release/deps/librustc_driver-1a376e92b33893ff.so: undefined reference to `__cxa_throw'
          /usr/bin/ld: /build/rust/build/x86_64-unknown-linux-gnu/stage0-rustc/x86_64-unknown-linux-gnu/release/deps/librustc_driver-1a376e92b33893ff.so: undefined reference to `std::__detail::_List_node_base::_M_hook(std::__detail::_List_node_base*)'
          /usr/bin/ld: /build/rust/build/x86_64-unknown-linux-gnu/stage0-rustc/x86_64-unknown-linux-gnu/release/deps/librustc_driver-1a376e92b33893ff.so: undefined reference to `std::basic_ios<char, std::char_traits<char> >::init(std::basic_streambuf<char, std::char_traits<char> >*)'
          /usr/bin/ld: /build/rust/build/x86_64-unknown-linux-gnu/stage0-rustc/x86_64-unknown-linux-gnu/release/deps/librustc_driver-1a376e92b33893ff.so: undefined reference to `std::string::append(char const*)'
          /usr/bin/ld: /build/rust/build/x86_64-unknown-linux-gnu/stage0-rustc/x86_64-unknown-linux-gnu/release/deps/librustc_driver-1a376e92b33893ff.so: undefined reference to `std::condition_variable::condition_variable()'
          /usr/bin/ld: /build/rust/build/x86_64-unknown-linux-gnu/stage0-rustc/x86_64-unknown-linux-gnu/release/deps/librustc_driver-1a376e92b33893ff.so: undefined reference to `vtable for std::length_error'
          /usr/bin/ld: /build/rust/build/x86_64-unknown-linux-gnu/stage0-rustc/x86_64-unknown-linux-gnu/release/deps/librustc_driver-1a376e92b33893ff.so: undefined reference to `std::__future_base::_Result_base::~_Result_base()'
          /usr/bin/ld: /build/rust/build/x86_64-unknown-linux-gnu/stage0-rustc/x86_64-unknown-linux-gnu/release/deps/librustc_driver-1a376e92b33893ff.so: undefined reference to `std::runtime_error::~runtime_error()'
          /usr/bin/ld: /build/rust/build/x86_64-unknown-linux-gnu/stage0-rustc/x86_64-unknown-linux-gnu/release/deps/librustc_driver-1a376e92b33893ff.so: undefined reference to `__cxa_current_primary_exception'
          /usr/bin/ld: /build/rust/build/x86_64-unknown-linux-gnu/stage0-rustc/x86_64-unknown-linux-gnu/release/deps/librustc_driver-1a376e92b33893ff.so: undefined reference to `std::string::_Rep::_M_destroy(std::allocator<char> const&)'
          /usr/bin/ld: /build/rust/build/x86_64-unknown-linux-gnu/stage0-rustc/x86_64-unknown-linux-gnu/release/deps/librustc_driver-1a376e92b33893ff.so: undefined reference to `std::basic_string<char, std::char_traits<char>, std::allocator<char> >::~basic_string()'
          /usr/bin/ld: /build/rust/build/x86_64-unknown-linux-gnu/stage0-rustc/x86_64-unknown-linux-gnu/release/deps/librustc_driver-1a376e92b33893ff.so: undefined reference to `llvm::sys::getProcessTriple[abi:cxx11]()'
          /usr/bin/ld: /build/rust/build/x86_64-unknown-linux-gnu/stage0-rustc/x86_64-unknown-linux-gnu/release/deps/librustc_driver-1a376e92b33893ff.so: undefined reference to `std::string::find_first_not_of(char, unsigned long) const'
          /usr/bin/ld: /build/rust/build/x86_64-unknown-linux-gnu/stage0-rustc/x86_64-unknown-linux-gnu/release/deps/librustc_driver-1a376e92b33893ff.so: undefined reference to `std::string::erase(__gnu_cxx::__normal_iterator<char*, std::string>, __gnu_cxx::__normal_iterator<char*, std::string>)'
          /usr/bin/ld: /build/rust/build/x86_64-unknown-linux-gnu/stage0-rustc/x86_64-unknown-linux-gnu/release/deps/librustc_driver-1a376e92b33893ff.so: undefined reference to `std::_Rb_tree_decrement(std::_Rb_tree_node_base const*)'
          /usr/bin/ld: /build/rust/build/x86_64-unknown-linux-gnu/stage0-rustc/x86_64-unknown-linux-gnu/release/deps/librustc_driver-1a376e92b33893ff.so: undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_replace(unsigned long, unsigned long, char const*, unsigned long)'
          /usr/bin/ld: /build/rust/build/x86_64-unknown-linux-gnu/stage0-rustc/x86_64-unknown-linux-gnu/release/deps/librustc_driver-1a376e92b33893ff.so: undefined reference to `std::__throw_out_of_range_fmt(char const*, ...)'
          /usr/bin/ld: /build/rust/build/x86_64-unknown-linux-gnu/stage0-rustc/x86_64-unknown-linux-gnu/release/deps/librustc_driver-1a376e92b33893ff.so: undefined reference to `std::terminate()'
          /usr/bin/ld: /build/rust/build/x86_64-unknown-linux-gnu/stage0-rustc/x86_64-unknown-linux-gnu/release/deps/librustc_driver-1a376e92b33893ff.so: undefined reference to `vtable for std::overflow_error'
          /usr/bin/ld: /build/rust/build/x86_64-unknown-linux-gnu/stage0-rustc/x86_64-unknown-linux-gnu/release/deps/librustc_driver-1a376e92b33893ff.so: undefined reference to `std::logic_error::what() const'
          /usr/bin/ld: /build/rust/build/x86_64-unknown-linux-gnu/stage0-rustc/x86_64-unknown-linux-gnu/release/deps/librustc_driver-1a376e92b33893ff.so: undefined reference to `__cxa_free_exception'
          /usr/bin/ld: /build/rust/build/x86_64-unknown-linux-gnu/stage0-rustc/x86_64-unknown-linux-gnu/release/deps/librustc_driver-1a376e92b33893ff.so: undefined reference to `std::string::append(std::string const&)'
          /usr/bin/ld: /build/rust/build/x86_64-unknown-linux-gnu/stage0-rustc/x86_64-unknown-linux-gnu/release/deps/librustc_driver-1a376e92b33893ff.so: undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::reserve(unsigned long)'
          /usr/bin/ld: /build/rust/build/x86_64-unknown-linux-gnu/stage0-rustc/x86_64-unknown-linux-gnu/release/deps/librustc_driver-1a376e92b33893ff.so: undefined reference to `std::runtime_error::~runtime_error()'
          /usr/bin/ld: /build/rust/build/x86_64-unknown-linux-gnu/stage0-rustc/x86_64-unknown-linux-gnu/release/deps/librustc_driver-1a376e92b33893ff.so: undefined reference to `std::string::_M_replace_aux(unsigned long, unsigned long, unsigned long, char)'
          /usr/bin/ld: /build/rust/build/x86_64-unknown-linux-gnu/stage0-rustc/x86_64-unknown-linux-gnu/release/deps/librustc_driver-1a376e92b33893ff.so: undefined reference to `std::__exception_ptr::exception_ptr::swap(std::__exception_ptr::exception_ptr&)'
          /usr/bin/ld: /build/rust/build/x86_64-unknown-linux-gnu/stage0-rustc/x86_64-unknown-linux-gnu/release/deps/librustc_driver-1a376e92b33893ff.so: undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_assign(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)'
          /usr/bin/ld: /build/rust/build/x86_64-unknown-linux-gnu/stage0-rustc/x86_64-unknown-linux-gnu/release/deps/librustc_driver-1a376e92b33893ff.so: undefined reference to `std::_Rb_tree_rebalance_for_erase(std::_Rb_tree_node_base*, std::_Rb_tree_node_base&)'
          /usr/bin/ld: /build/rust/build/x86_64-unknown-linux-gnu/stage0-rustc/x86_64-unknown-linux-gnu/release/deps/librustc_driver-1a376e92b33893ff.so: undefined reference to `std::string::find_last_not_of(char, unsigned long) const'
          /usr/bin/ld: /build/rust/build/x86_64-unknown-linux-gnu/stage0-rustc/x86_64-unknown-linux-gnu/release/deps/librustc_driver-1a376e92b33893ff.so: undefined reference to `std::__atomic_futex_unsigned_base::_M_futex_notify_all(unsigned int*)'
          /usr/bin/ld: /build/rust/build/x86_64-unknown-linux-gnu/stage0-rustc/x86_64-unknown-linux-gnu/release/deps/librustc_driver-1a376e92b33893ff.so: undefined reference to `__cxa_increment_exception_refcount'
          /usr/bin/ld: /build/rust/build/x86_64-unknown-linux-gnu/stage0-rustc/x86_64-unknown-linux-gnu/release/deps/librustc_driver-1a376e92b33893ff.so: undefined reference to `vtable for std::invalid_argument'
          /usr/bin/ld: /build/rust/build/x86_64-unknown-linux-gnu/stage0-rustc/x86_64-unknown-linux-gnu/release/deps/librustc_driver-1a376e92b33893ff.so: undefined reference to `std::future_category()'
          /usr/bin/ld: /build/rust/build/x86_64-unknown-linux-gnu/stage0-rustc/x86_64-unknown-linux-gnu/release/deps/librustc_driver-1a376e92b33893ff.so: undefined reference to `std::string::operator+=(std::string const&)'
          /usr/bin/ld: /build/rust/build/x86_64-unknown-linux-gnu/stage0-rustc/x86_64-unknown-linux-gnu/release/deps/librustc_driver-1a376e92b33893ff.so: undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::compare(char const*) const'
          /usr/bin/ld: /build/rust/build/x86_64-unknown-linux-gnu/stage0-rustc/x86_64-unknown-linux-gnu/release/deps/librustc_driver-1a376e92b33893ff.so: undefined reference to `std::bad_cast::bad_cast()'
          /usr/bin/ld: /build/rust/build/x86_64-unknown-linux-gnu/stage0-rustc/x86_64-unknown-linux-gnu/release/deps/librustc_driver-1a376e92b33893ff.so: undefined reference to `std::chrono::_V2::system_clock::now()'
          /usr/bin/ld: /build/rust/build/x86_64-unknown-linux-gnu/stage0-rustc/x86_64-unknown-linux-gnu/release/deps/librustc_driver-1a376e92b33893ff.so: undefined reference to `__cxa_guard_abort'
          /usr/bin/ld: /build/rust/build/x86_64-unknown-linux-gnu/stage0-rustc/x86_64-unknown-linux-gnu/release/deps/librustc_driver-1a376e92b33893ff.so: undefined reference to `std::basic_ostream<char, std::char_traits<char> >& std::endl<char, std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&)'
          /usr/bin/ld: /build/rust/build/x86_64-unknown-linux-gnu/stage0-rustc/x86_64-unknown-linux-gnu/release/deps/librustc_driver-1a376e92b33893ff.so: undefined reference to `std::get_new_handler()'
          /usr/bin/ld: /build/rust/build/x86_64-unknown-linux-gnu/stage0-rustc/x86_64-unknown-linux-gnu/release/deps/librustc_driver-1a376e92b33893ff.so: undefined reference to `std::ostream::write(char const*, long)'
          /usr/bin/ld: /build/rust/build/x86_64-unknown-linux-gnu/stage0-rustc/x86_64-unknown-linux-gnu/release/deps/librustc_driver-1a376e92b33893ff.so: undefined reference to `std::basic_string<wchar_t, std::char_traits<wchar_t>, std::allocator<wchar_t> >::_Rep::_S_empty_rep_storage'
          /usr/bin/ld: /build/rust/build/x86_64-unknown-linux-gnu/stage0-rustc/x86_64-unknown-linux-gnu/release/deps/librustc_driver-1a376e92b33893ff.so: undefined reference to `std::ostream& std::ostream::_M_insert<double>(double)'
          /usr/bin/ld: /build/rust/build/x86_64-unknown-linux-gnu/stage0-rustc/x86_64-unknown-linux-gnu/release/deps/librustc_driver-1a376e92b33893ff.so: undefined reference to `std::ios_base::ios_base()'
          /usr/bin/ld: /build/rust/build/x86_64-unknown-linux-gnu/stage0-rustc/x86_64-unknown-linux-gnu/release/deps/librustc_driver-1a376e92b33893ff.so: undefined reference to `__cxa_decrement_exception_refcount'
          /usr/bin/ld: /build/rust/build/x86_64-unknown-linux-gnu/stage0-rustc/x86_64-unknown-linux-gnu/release/deps/librustc_driver-1a376e92b33893ff.so: undefined reference to `vtable for __cxxabiv1::__class_type_info'
          /usr/bin/ld: /build/rust/build/x86_64-unknown-linux-gnu/stage0-rustc/x86_64-unknown-linux-gnu/release/deps/librustc_driver-1a376e92b33893ff.so: undefined reference to `typeinfo for std::bad_alloc'
          /usr/bin/ld: /build/rust/build/x86_64-unknown-linux-gnu/stage0-rustc/x86_64-unknown-linux-gnu/release/deps/librustc_driver-1a376e92b33893ff.so: undefined reference to `std::string::_M_leak_hard()'
          /usr/bin/ld: /build/rust/build/x86_64-unknown-linux-gnu/stage0-rustc/x86_64-unknown-linux-gnu/release/deps/librustc_driver-1a376e92b33893ff.so: undefined reference to `__cxa_guard_acquire'
          /usr/bin/ld: /build/rust/build/x86_64-unknown-linux-gnu/stage0-rustc/x86_64-unknown-linux-gnu/release/deps/librustc_driver-1a376e92b33893ff.so: undefined reference to `std::string::replace(unsigned long, unsigned long, char const*, unsigned long)'
          /usr/bin/ld: /build/rust/build/x86_64-unknown-linux-gnu/stage0-rustc/x86_64-unknown-linux-gnu/release/deps/librustc_driver-1a376e92b33893ff.so: undefined reference to `std::ios_base::Init::~Init()'
          /usr/bin/ld: /build/rust/build/x86_64-unknown-linux-gnu/stage0-rustc/x86_64-unknown-linux-gnu/release/deps/librustc_driver-1a376e92b33893ff.so: undefined reference to `std::ostream& std::ostream::_M_insert<long>(long)'
          /usr/bin/ld: /build/rust/build/x86_64-unknown-linux-gnu/stage0-rustc/x86_64-unknown-linux-gnu/release/deps/librustc_driver-1a376e92b33893ff.so: undefined reference to `typeinfo for std::exception'
          /usr/bin/ld: /build/rust/build/x86_64-unknown-linux-gnu/stage0-rustc/x86_64-unknown-linux-gnu/release/deps/librustc_driver-1a376e92b33893ff.so: undefined reference to `std::__exception_ptr::exception_ptr::exception_ptr()'
          /usr/bin/ld: /build/rust/build/x86_64-unknown-linux-gnu/stage0-rustc/x86_64-unknown-linux-gnu/release/deps/librustc_driver-1a376e92b33893ff.so: undefined reference to `std::__detail::_List_node_base::_M_unhook()'
          /usr/bin/ld: /build/rust/build/x86_64-unknown-linux-gnu/stage0-rustc/x86_64-unknown-linux-gnu/release/deps/librustc_driver-1a376e92b33893ff.so: undefined reference to `std::thread::_M_start_thread(std::unique_ptr<std::thread::_State, std::default_delete<std::thread::_State> >, void (*)())'
          /usr/bin/ld: /build/rust/build/x86_64-unknown-linux-gnu/stage0-rustc/x86_64-unknown-linux-gnu/release/deps/librustc_driver-1a376e92b33893ff.so: undefined reference to `std::string::compare(unsigned long, unsigned long, char const*) const'
          /usr/bin/ld: /build/rust/build/x86_64-unknown-linux-gnu/stage0-rustc/x86_64-unknown-linux-gnu/release/deps/librustc_driver-1a376e92b33893ff.so: undefined reference to `typeinfo for std::overflow_error'
          /usr/bin/ld: /build/rust/build/x86_64-unknown-linux-gnu/stage0-rustc/x86_64-unknown-linux-gnu/release/deps/librustc_driver-1a376e92b33893ff.so: undefined reference to `std::__throw_invalid_argument(char const*)'
          /usr/bin/ld: /build/rust/build/x86_64-unknown-linux-gnu/stage0-rustc/x86_64-unknown-linux-gnu/release/deps/librustc_driver-1a376e92b33893ff.so: undefined reference to `std::string::append(unsigned long, char)'
          /usr/bin/ld: /build/rust/build/x86_64-unknown-linux-gnu/stage0-rustc/x86_64-unknown-linux-gnu/release/deps/librustc_driver-1a376e92b33893ff.so: undefined reference to `std::length_error::~length_error()'
          /usr/bin/ld: /build/rust/build/x86_64-unknown-linux-gnu/stage0-rustc/x86_64-unknown-linux-gnu/release/deps/librustc_driver-1a376e92b33893ff.so: undefined reference to `__cxa_begin_catch'
          /usr/bin/ld: /build/rust/build/x86_64-unknown-linux-gnu/stage0-rustc/x86_64-unknown-linux-gnu/release/deps/librustc_driver-1a376e92b33893ff.so: undefined reference to `std::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string(std::allocator<char> const&)'
          /usr/bin/ld: /build/rust/build/x86_64-unknown-linux-gnu/stage0-rustc/x86_64-unknown-linux-gnu/release/deps/librustc_driver-1a376e92b33893ff.so: undefined reference to `std::string::resize(unsigned long, char)'
          /usr/bin/ld: /build/rust/build/x86_64-unknown-linux-gnu/stage0-rustc/x86_64-unknown-linux-gnu/release/deps/librustc_driver-1a376e92b33893ff.so: undefined reference to `std::_V2::error_category::equivalent(int, std::error_condition const&) const'
          /usr/bin/ld: /build/rust/build/x86_64-unknown-linux-gnu/stage0-rustc/x86_64-unknown-linux-gnu/release/deps/librustc_driver-1a376e92b33893ff.so: undefined reference to `vtable for __cxxabiv1::__si_class_type_info'
          /usr/bin/ld: /build/rust/build/x86_64-unknown-linux-gnu/stage0-rustc/x86_64-unknown-linux-gnu/release/deps/librustc_driver-1a376e92b33893ff.so: undefined reference to `llvm::DiagnosticInfoOptimizationBase::getMsg[abi:cxx11]() const'
          /usr/bin/ld: /build/rust/build/x86_64-unknown-linux-gnu/stage0-rustc/x86_64-unknown-linux-gnu/release/deps/librustc_driver-1a376e92b33893ff.so: undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_mutate(unsigned long, unsigned long, char const*, unsigned long)'
          /usr/bin/ld: /build/rust/build/x86_64-unknown-linux-gnu/stage0-rustc/x86_64-unknown-linux-gnu/release/deps/librustc_driver-1a376e92b33893ff.so: undefined reference to `std::string::append(char const*, unsigned long)'
          /usr/bin/ld: /build/rust/build/x86_64-unknown-linux-gnu/stage0-rustc/x86_64-unknown-linux-gnu/release/deps/librustc_driver-1a376e92b33893ff.so: undefined reference to `__cxa_rethrow_primary_exception'
          /usr/bin/ld: /build/rust/build/x86_64-unknown-linux-gnu/stage0-rustc/x86_64-unknown-linux-gnu/release/deps/librustc_driver-1a376e92b33893ff.so: undefined reference to `vtable for std::basic_ios<char, std::char_traits<char> >'
          /usr/bin/ld: /build/rust/build/x86_64-unknown-linux-gnu/stage0-rustc/x86_64-unknown-linux-gnu/release/deps/librustc_driver-1a376e92b33893ff.so: undefined reference to `std::_Rb_tree_insert_and_rebalance(bool, std::_Rb_tree_node_base*, std::_Rb_tree_node_base*, std::_Rb_tree_node_base&)'
          /usr/bin/ld: /build/rust/build/x86_64-unknown-linux-gnu/stage0-rustc/x86_64-unknown-linux-gnu/release/deps/librustc_driver-1a376e92b33893ff.so: undefined reference to `std::condition_variable::wait(std::unique_lock<std::mutex>&)'
          /usr/bin/ld: /build/rust/build/x86_64-unknown-linux-gnu/stage0-rustc/x86_64-unknown-linux-gnu/release/deps/librustc_driver-1a376e92b33893ff.so: undefined reference to `std::string::_M_mutate(unsigned long, unsigned long, unsigned long)'
          /usr/bin/ld: /build/rust/build/x86_64-unknown-linux-gnu/stage0-rustc/x86_64-unknown-linux-gnu/release/deps/librustc_driver-1a376e92b33893ff.so: undefined reference to `VTT for std::basic_stringstream<char, std::char_traits<char>, std::allocator<char> >'
          /usr/bin/ld: /build/rust/build/x86_64-unknown-linux-gnu/stage0-rustc/x86_64-unknown-linux-gnu/release/deps/librustc_driver-1a376e92b33893ff.so: undefined reference to `std::bad_cast::~bad_cast()'
          /usr/bin/ld: /build/rust/build/x86_64-unknown-linux-gnu/stage0-rustc/x86_64-unknown-linux-gnu/release/deps/librustc_driver-1a376e92b33893ff.so: undefined reference to `__cxa_end_catch'
          /usr/bin/ld: /build/rust/build/x86_64-unknown-linux-gnu/stage0-rustc/x86_64-unknown-linux-gnu/release/deps/librustc_driver-1a376e92b33893ff.so: undefined reference to `std::string::rfind(char, unsigned long) const'
          /usr/bin/ld: /build/rust/build/x86_64-unknown-linux-gnu/stage0-rustc/x86_64-unknown-linux-gnu/release/deps/librustc_driver-1a376e92b33893ff.so: undefined reference to `__cxa_guard_release'
          /usr/bin/ld: /build/rust/build/x86_64-unknown-linux-gnu/stage0-rustc/x86_64-unknown-linux-gnu/release/deps/librustc_driver-1a376e92b33893ff.so: undefined reference to `std::ctype<char>::_M_widen_init() const'
          /usr/bin/ld: /build/rust/build/x86_64-unknown-linux-gnu/stage0-rustc/x86_64-unknown-linux-gnu/release/deps/librustc_driver-1a376e92b33893ff.so: undefined reference to `std::string::reserve(unsigned long)'
          /usr/bin/ld: /build/rust/build/x86_64-unknown-linux-gnu/stage0-rustc/x86_64-unknown-linux-gnu/release/deps/librustc_driver-1a376e92b33893ff.so: undefined reference to `vtable for std::future_error'
          /usr/bin/ld: /build/rust/build/x86_64-unknown-linux-gnu/stage0-rustc/x86_64-unknown-linux-gnu/release/deps/librustc_driver-1a376e92b33893ff.so: undefined reference to `__cxa_allocate_exception'
          /usr/bin/ld: /build/rust/build/x86_64-unknown-linux-gnu/stage0-rustc/x86_64-unknown-linux-gnu/release/deps/librustc_driver-1a376e92b33893ff.so: undefined reference to `std::ios_base::~ios_base()'
          /usr/bin/ld: /build/rust/build/x86_64-unknown-linux-gnu/stage0-rustc/x86_64-unknown-linux-gnu/release/deps/librustc_driver-1a376e92b33893ff.so: undefined reference to `typeinfo for std::length_error'
          /usr/bin/ld: /build/rust/build/x86_64-unknown-linux-gnu/stage0-rustc/x86_64-unknown-linux-gnu/release/deps/librustc_driver-1a376e92b33893ff.so: undefined reference to `std::_Rb_tree_decrement(std::_Rb_tree_node_base*)'
          /usr/bin/ld: /build/rust/build/x86_64-unknown-linux-gnu/stage0-rustc/x86_64-unknown-linux-gnu/release/deps/librustc_driver-1a376e92b33893ff.so: undefined reference to `std::string::_Rep::_S_create(unsigned long, unsigned long, std::allocator<char> const&)'
          /usr/bin/ld: /build/rust/build/x86_64-unknown-linux-gnu/stage0-rustc/x86_64-unknown-linux-gnu/release/deps/librustc_driver-1a376e92b33893ff.so: undefined reference to `typeinfo for std::runtime_error'
          /usr/bin/ld: /build/rust/build/x86_64-unknown-linux-gnu/stage0-rustc/x86_64-unknown-linux-gnu/release/deps/librustc_driver-1a376e92b33893ff.so: undefined reference to `std::ostream::operator<<(int)'
          /usr/bin/ld: /build/rust/build/x86_64-unknown-linux-gnu/stage0-rustc/x86_64-unknown-linux-gnu/release/deps/librustc_driver-1a376e92b33893ff.so: undefined reference to `std::_V2::system_category()'
          /usr/bin/ld: /build/rust/build/x86_64-unknown-linux-gnu/stage0-rustc/x86_64-unknown-linux-gnu/release/deps/librustc_driver-1a376e92b33893ff.so: undefined reference to `std::_Rb_tree_increment(std::_Rb_tree_node_base const*)'
          /usr/bin/ld: /build/rust/build/x86_64-unknown-linux-gnu/stage0-rustc/x86_64-unknown-linux-gnu/release/deps/librustc_driver-1a376e92b33893ff.so: undefined reference to `vtable for __cxxabiv1::__vmi_class_type_info'
          /usr/bin/ld: /build/rust/build/x86_64-unknown-linux-gnu/stage0-rustc/x86_64-unknown-linux-gnu/release/deps/librustc_driver-1a376e92b33893ff.so: undefined reference to `typeinfo for std::invalid_argument'
          /usr/bin/ld: /build/rust/build/x86_64-unknown-linux-gnu/stage0-rustc/x86_64-unknown-linux-gnu/release/deps/librustc_driver-1a376e92b33893ff.so: undefined reference to `std::string::find_first_of(char const*, unsigned long, unsigned long) const'
          /usr/bin/ld: /build/rust/build/x86_64-unknown-linux-gnu/stage0-rustc/x86_64-unknown-linux-gnu/release/deps/librustc_driver-1a376e92b33893ff.so: undefined reference to `std::condition_variable::notify_all()'
          /usr/bin/ld: /build/rust/build/x86_64-unknown-linux-gnu/stage0-rustc/x86_64-unknown-linux-gnu/release/deps/librustc_driver-1a376e92b33893ff.so: undefined reference to `std::__throw_length_error(char const*)'
          /usr/bin/ld: /build/rust/build/x86_64-unknown-linux-gnu/stage0-rustc/x86_64-unknown-linux-gnu/release/deps/librustc_driver-1a376e92b33893ff.so: undefined reference to `std::thread::detach()'
          /usr/bin/ld: /build/rust/build/x86_64-unknown-linux-gnu/stage0-rustc/x86_64-unknown-linux-gnu/release/deps/librustc_driver-1a376e92b33893ff.so: undefined reference to `vtable for std::logic_error'
          /usr/bin/ld: /build/rust/build/x86_64-unknown-linux-gnu/stage0-rustc/x86_64-unknown-linux-gnu/release/deps/librustc_driver-1a376e92b33893ff.so: undefined reference to `std::__detail::_List_node_base::swap(std::__detail::_List_node_base&, std::__detail::_List_node_base&)'
          /usr/bin/ld: /build/rust/build/x86_64-unknown-linux-gnu/stage0-rustc/x86_64-unknown-linux-gnu/release/deps/librustc_driver-1a376e92b33893ff.so: undefined reference to `VTT for std::basic_ostringstream<char, std::char_traits<char>, std::allocator<char> >'
          /usr/bin/ld: /build/rust/build/x86_64-unknown-linux-gnu/stage0-rustc/x86_64-unknown-linux-gnu/release/deps/librustc_driver-1a376e92b33893ff.so: undefined reference to `std::string::find(char, unsigned long) const'
          /usr/bin/ld: /build/rust/build/x86_64-unknown-linux-gnu/stage0-rustc/x86_64-unknown-linux-gnu/release/deps/librustc_driver-1a376e92b33893ff.so: undefined reference to `std::basic_ostream<char, std::char_traits<char> >& std::operator<< <char, std::char_traits<char>, std::allocator<char> >(std::basic_ostream<char, std::char_traits<char> >&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)'
          /usr/bin/ld: /build/rust/build/x86_64-unknown-linux-gnu/stage0-rustc/x86_64-unknown-linux-gnu/release/deps/librustc_driver-1a376e92b33893ff.so: undefined reference to `std::__throw_future_error(int)'
          /usr/bin/ld: /build/rust/build/x86_64-unknown-linux-gnu/stage0-rustc/x86_64-unknown-linux-gnu/release/deps/librustc_driver-1a376e92b33893ff.so: undefined reference to `std::__once_call'
          /usr/bin/ld: /build/rust/build/x86_64-unknown-linux-gnu/stage0-rustc/x86_64-unknown-linux-gnu/release/deps/librustc_driver-1a376e92b33893ff.so: undefined reference to `std::runtime_error::what() const'
          /usr/bin/ld: /build/rust/build/x86_64-unknown-linux-gnu/stage0-rustc/x86_64-unknown-linux-gnu/release/deps/librustc_driver-1a376e92b33893ff.so: undefined reference to `std::ostream::tellp()'
          /usr/bin/ld: /build/rust/build/x86_64-unknown-linux-gnu/stage0-rustc/x86_64-unknown-linux-gnu/release/deps/librustc_driver-1a376e92b33893ff.so: undefined reference to `std::basic_ios<char, std::char_traits<char> >::clear(std::_Ios_Iostate)'
          /usr/bin/ld: /build/rust/build/x86_64-unknown-linux-gnu/stage0-rustc/x86_64-unknown-linux-gnu/release/deps/librustc_driver-1a376e92b33893ff.so: undefined reference to `std::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string(char const*, std::allocator<char> const&)'
          /usr/bin/ld: /build/rust/build/x86_64-unknown-linux-gnu/stage0-rustc/x86_64-unknown-linux-gnu/release/deps/librustc_driver-1a376e92b33893ff.so: undefined reference to `std::__future_base::_State_baseV2::_Make_ready::_M_set()'
          /usr/bin/ld: /build/rust/build/x86_64-unknown-linux-gnu/stage0-rustc/x86_64-unknown-linux-gnu/release/deps/librustc_driver-1a376e92b33893ff.so: undefined reference to `std::_V2::error_category::~error_category()'
          /usr/bin/ld: /build/rust/build/x86_64-unknown-linux-gnu/stage0-rustc/x86_64-unknown-linux-gnu/release/deps/librustc_driver-1a376e92b33893ff.so: undefined reference to `std::__exception_ptr::exception_ptr::~exception_ptr()'
          /usr/bin/ld: /build/rust/build/x86_64-unknown-linux-gnu/stage0-rustc/x86_64-unknown-linux-gnu/release/deps/librustc_driver-1a376e92b33893ff.so: undefined reference to `vtable for std::runtime_error'
          /usr/bin/ld: /build/rust/build/x86_64-unknown-linux-gnu/stage0-rustc/x86_64-unknown-linux-gnu/release/deps/librustc_driver-1a376e92b33893ff.so: undefined reference to `std::__throw_logic_error(char const*)'
          /usr/bin/ld: /build/rust/build/x86_64-unknown-linux-gnu/stage0-rustc/x86_64-unknown-linux-gnu/release/deps/librustc_driver-1a376e92b33893ff.so: undefined reference to `std::condition_variable::~condition_variable()'
          /usr/bin/ld: /build/rust/build/x86_64-unknown-linux-gnu/stage0-rustc/x86_64-unknown-linux-gnu/release/deps/librustc_driver-1a376e92b33893ff.so: undefined reference to `std::chrono::_V2::steady_clock::now()'
          /usr/bin/ld: /build/rust/build/x86_64-unknown-linux-gnu/stage0-rustc/x86_64-unknown-linux-gnu/release/deps/librustc_driver-1a376e92b33893ff.so: undefined reference to `std::set_new_handler(void (*)())'
          /usr/bin/ld: /build/rust/build/x86_64-unknown-linux-gnu/stage0-rustc/x86_64-unknown-linux-gnu/release/deps/librustc_driver-1a376e92b33893ff.so: undefined reference to `std::ostream::operator<<(long)'
          /usr/bin/ld: /build/rust/build/x86_64-unknown-linux-gnu/stage0-rustc/x86_64-unknown-linux-gnu/release/deps/librustc_driver-1a376e92b33893ff.so: undefined reference to `std::exception::~exception()'
          /usr/bin/ld: /build/rust/build/x86_64-unknown-linux-gnu/stage0-rustc/x86_64-unknown-linux-gnu/release/deps/librustc_driver-1a376e92b33893ff.so: undefined reference to `std::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string(std::string const&)'
          /usr/bin/ld: /build/rust/build/x86_64-unknown-linux-gnu/stage0-rustc/x86_64-unknown-linux-gnu/release/deps/librustc_driver-1a376e92b33893ff.so: undefined reference to `std::basic_string<wchar_t, std::char_traits<wchar_t>, std::allocator<wchar_t> >::resize(unsigned long, wchar_t)'
          /usr/bin/ld: /build/rust/build/x86_64-unknown-linux-gnu/stage0-rustc/x86_64-unknown-linux-gnu/release/deps/librustc_driver-1a376e92b33893ff.so: undefined reference to `std::__detail::_Prime_rehash_policy::_M_need_rehash(unsigned long, unsigned long, unsigned long) const'
          /usr/bin/ld: /build/rust/build/x86_64-unknown-linux-gnu/stage0-rustc/x86_64-unknown-linux-gnu/release/deps/librustc_driver-1a376e92b33893ff.so: undefined reference to `std::ostream& std::ostream::_M_insert<unsigned long>(unsigned long)'
          /usr/bin/ld: /build/rust/build/x86_64-unknown-linux-gnu/stage0-rustc/x86_64-unknown-linux-gnu/release/deps/librustc_driver-1a376e92b33893ff.so: undefined reference to `std::condition_variable::notify_one()'
          /usr/bin/ld: /build/rust/build/x86_64-unknown-linux-gnu/stage0-rustc/x86_64-unknown-linux-gnu/release/deps/librustc_driver-1a376e92b33893ff.so: undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_append(char const*, unsigned long)'
          /usr/bin/ld: /build/rust/build/x86_64-unknown-linux-gnu/stage0-rustc/x86_64-unknown-linux-gnu/release/deps/librustc_driver-1a376e92b33893ff.so: undefined reference to `std::locale::locale()'
          /usr/bin/ld: /build/rust/build/x86_64-unknown-linux-gnu/stage0-rustc/x86_64-unknown-linux-gnu/release/deps/librustc_driver-1a376e92b33893ff.so: undefined reference to `std::thread::_State::~_State()'
          /usr/bin/ld: /build/rust/build/x86_64-unknown-linux-gnu/stage0-rustc/x86_64-unknown-linux-gnu/release/deps/librustc_driver-1a376e92b33893ff.so: undefined reference to `std::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string(std::string const&, unsigned long, unsigned long)'
          /usr/bin/ld: /build/rust/build/x86_64-unknown-linux-gnu/stage0-rustc/x86_64-unknown-linux-gnu/release/deps/librustc_driver-1a376e92b33893ff.so: undefined reference to `std::_Hash_bytes(void const*, unsigned long, unsigned long)'
          /usr/bin/ld: /build/rust/build/x86_64-unknown-linux-gnu/stage0-rustc/x86_64-unknown-linux-gnu/release/deps/librustc_driver-1a376e92b33893ff.so: undefined reference to `vtable for std::basic_stringbuf<char, std::char_traits<char>, std::allocator<char> >'
          /usr/bin/ld: /build/rust/build/x86_64-unknown-linux-gnu/stage0-rustc/x86_64-unknown-linux-gnu/release/deps/librustc_driver-1a376e92b33893ff.so: undefined reference to `vtable for std::out_of_range'
          /usr/bin/ld: /build/rust/build/x86_64-unknown-linux-gnu/stage0-rustc/x86_64-unknown-linux-gnu/release/deps/librustc_driver-1a376e92b33893ff.so: undefined reference to `typeinfo for std::bad_cast'
          /usr/bin/ld: /build/rust/build/x86_64-unknown-linux-gnu/stage0-rustc/x86_64-unknown-linux-gnu/release/deps/librustc_driver-1a376e92b33893ff.so: undefined reference to `std::bad_alloc::~bad_alloc()'
          /usr/bin/ld: /build/rust/build/x86_64-unknown-linux-gnu/stage0-rustc/x86_64-unknown-linux-gnu/release/deps/librustc_driver-1a376e92b33893ff.so: undefined reference to `std::string::_Rep::_S_empty_rep_storage'
          clang-12: error: linker command failed with exit code 1 (use -v to see invocation)
    ```

It looks like we're missing -Lc++?
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment