View previous topic :: View next topic |
Author |
Message |
telestraw n00b
Joined: 01 Mar 2024 Posts: 3
|
Posted: Sun Apr 28, 2024 4:27 pm Post subject: Problems compiling LLVM toolchain |
|
|
Greeting fellow Gentoo users,
I went through the first steps of the Gentoo installation, extracting the musl/llvm stage3 tarball, chrooting and syncing repos. The first step I went for was to bootstrap the latest version of the LLVM toolchain (17.0.6 -> 18.1.4). It went well at first (I compiled llvm,clang and lld) until I got an error compiling sys-libs/libcxxabi-18.1.4. However, I am able to re-compile the older and pre-packaged sys-libs/libcxxabi-17.0.6 successfully.
The error is the following:
Code: |
CMake Error at /usr/share/cmake/Modules/CMakeTestCCompiler.cmake:67 (message):
The C compiler
"/usr/lib/llvm/18/bin/x86_64-pc-linux-musl-clang"
is not able to compile a simple test program.
It fails with the following output:
Change Dir: '/var/tmp/portage/sys-libs/llvm-libunwind-18.1.4/work/runtimes_build-abi_x86_64.amd64/CMakeFiles/CMakeScratch/TryCompile-HdndgM'
Run Build Command(s): /usr/bin/ninja -v cmTC_d3268
[1/2] /usr/lib/llvm/18/bin/x86_64-pc-linux-musl-clang -DNDEBUG -march=native -O3 -pipe -MD -MT CMakeFiles/cmTC_d3268.dir/testCCompiler.c.o -MF CMakeFiles/cmTC_d3268.dir/testCCompiler.c.o.d -o CMakeFiles/cmTC_d3268.dir/testCCompiler.c.o -c /var/tmp/portage/sys-libs/llvm-libunwind-18.1.4/work/runtimes_build-abi_x86_64.amd64/CMakeFiles/CMakeScratch/TryCompile-HdndgM/testCCompiler.c
[2/2] : && /usr/lib/llvm/18/bin/x86_64-pc-linux-musl-clang -march=native -O3 -pipe CMakeFiles/cmTC_d3268.dir/testCCompiler.c.o -o cmTC_d3268 && :
FAILED: cmTC_d3268
: && /usr/lib/llvm/18/bin/x86_64-pc-linux-musl-clang -march=native -O3 -pipe CMakeFiles/cmTC_d3268.dir/testCCompiler.c.o -o cmTC_d3268 && :
ld.lld: error: cannot open crtbeginS.o: No such file or directory
ld.lld: error: cannot open /usr/lib/llvm/18/bin/../../../../lib/clang/18/lib/linux/libclang_rt.builtins-x86_64.a: No such file or directory
ld.lld: error: cannot open /usr/lib/llvm/18/bin/../../../../lib/clang/18/lib/linux/libclang_rt.builtins-x86_64.a: No such file or directory
ld.lld: error: cannot open crtendS.o: No such file or directory
x86_64-pc-linux-musl-clang: error: linker command failed with exit code 1 (use -v to see invocation)
ninja: build stopped: subcommand failed.
CMake will not be able to correctly generate this project.
Call Stack (most recent call first):
CMakeLists.txt:9 (project)
* Messages for package sys-libs/libcxxabi-18.1.4:
* ERROR: sys-libs/libcxxabi-18.1.4::gentoo failed (configure phase):
* cmake failed
*
* Call stack:
* ebuild.sh, line 136: Called src_configure
* environment, line 3817: Called cmake-multilib_src_configure
* environment, line 1250: Called multilib-minimal_src_configure
* environment, line 2752: Called multilib_foreach_abi 'multilib-minimal_abi_src_configure'
* environment, line 3002: Called multibuild_foreach_variant '_multilib_multibuild_wrapper' 'multilib-minimal_abi_src_configure'
* environment, line 2707: Called _multibuild_run '_multilib_multibuild_wrapper' 'multilib-minimal_abi_src_configure'
* environment, line 2705: Called _multilib_multibuild_wrapper 'multilib-minimal_abi_src_configure'
* environment, line 577: Called multilib-minimal_abi_src_configure
* environment, line 2746: Called multilib_src_configure
* environment, line 3239: Called cmake_src_configure
* environment, line 1520: Called die
* The specific snippet of code:
* "${CMAKE_BINARY}" "${cmakeargs[@]}" "${CMAKE_USE_DIR}" || die "cmake failed";
*
* If you need support, post the output of `emerge --info '=sys-libs/libcxxabi-18.1.4::gentoo'`,
* the complete build log and the output of `emerge -pqv '=sys-libs/libcxxabi-18.1.4::gentoo'`.
* The complete build log is located at '/var/tmp/portage/sys-libs/libcxxabi-18.1.4/temp/build.log'.
* The ebuild environment file is located at '/var/tmp/portage/sys-libs/libcxxabi-18.1.4/temp/environment'.
* Working directory: '/var/tmp/portage/sys-libs/libcxxabi-18.1.4/work/runtimes_build-abi_x86_64.amd64'
* S: '/var/tmp/portage/sys-libs/libcxxabi-18.1.4/work/runtimes'
* Messages for package sys-libs/libcxx-18.1.4:
* emerge --keep-going: sys-libs/libcxx-18.1.4 dropped because it requires
* ~sys-libs/libcxxabi-18.1.4[static-libs,abi_x86_64(-)]
|
Here are the USE flags of the related packages that were compiled successfully:
Code: |
sys-devel/llvm-18.1.4:18/18.1::gentoo USE="libedit libffi ncurses zstd -binutils-plugin -debug -debuginfod -doc -exegesis -test -verify-sig -xml -z3"
sys-devel/clang-18.1.4:18/18.1::gentoo USE="extra (pie) static-analyzer -debug -doc (-ieee-long-double) -test -verify-sig -xml"
sys-devel/lld-18.1.4:18/18.1::gentoo USE="zstd -debug -test -verify-sig"
sys-devel/llvm-toolchain-symlinks-18:18::gentoo USE="native-symlinks -multilib-symlinks"
sys-devel/clang-toolchain-symlinks-18:18::gentoo USE="native-symlinks -gcc-symlinks -multilib-symlinks"
sys-devel/lld-toolchain-symlinks-18:18::gentoo USE="native-symlinks -multilib-symlinks"
|
make.conf file: https://codeberg.org/doppl3r/configs/src/branch/main/make.conf
I have refered to the following sources:
https://wiki.gentoo.org/wiki/Clang
https://forums.gentoo.org/viewtopic-t-1084292-start-0.html
https://blogs.gentoo.org/mgorny/2022/10/07/clang-in-gentoo-now-sets-default-runtimes-via-config-file/
https://www.reddit.com/r/Gentoo/comments/snswg7/llvm_compilation_struggles/?rdt=59465 (similar error here https://www.reddit.com/r/Gentoo/comments/snswg7/comment/hw5jzm0/?utm_source=share&utm_medium=web3x&utm_name=web3xcss&utm_term=1&utm_content=share_button)
Apologies if I missed anything out. All help is greatly appreciated and I won't hesitate to submit extra details and logs.
Thanks in advace!
Note: This is my latest attempt of various others to install the musl/llvm profile successfully. I come from a 'default' gcc/glibc installation. |
|
Back to top |
|
|
myga Tux's lil' helper
Joined: 12 Jun 2023 Posts: 121
|
Posted: Thu May 02, 2024 4:04 am Post subject: |
|
|
Your 'make.conf' indicates that you are building that package(s) using 'clang' but the error 'ld.lld: error: cannot open crtbeginS.o: No such file or directory' tells me that the file 'crtbeginS.o' is provided by sys-devel/gcc. Did you install GCC? Also, did you setup 'GCC fallback environment' according to the wiki:
Quote: | "Create a configuration file with a set of environment variables using Portage's built in /etc/portage/env directory. This will override any defaults for any packages that fail to compile with clang." |
_________________ [Never break the law to save people. Nope, there aint no heroes here. Unless you are 'Satoshi Nakamoto', that's a true anonymous.] |
|
Back to top |
|
|
telestraw n00b
Joined: 01 Mar 2024 Posts: 3
|
Posted: Thu May 02, 2024 1:58 pm Post subject: |
|
|
Hey myga. Thanks for replying.
No, GCC is not provided by the musl/llvm stage3 tarball afaik. I am also sure that I haven't installed GCC yet since I started bootstrapping the LLVM toolchain first thing as stated. Anyway I am redoing the install and I'm not going to give up.
This time I'm experimenting with the '-stdlib' argument for CXXFLAGS. I am going compile GCC first and will use GNU's libstdc++ instead of LLVM's libc++/libcxx (-stdlib=libstdc++) along with the pre-packaged clang-17.0.6 compiler to compile the LLVM toolchain. It's weird to see a GCC component being used to compile sys-libs/libcxxabi-18.1.4...
I will publish my results ASAP. It's a nightmare doing this on a laptop |
|
Back to top |
|
|
RIA77 Guru
Joined: 24 Feb 2016 Posts: 391
|
Posted: Sat May 18, 2024 8:38 am Post subject: |
|
|
Did you try to start with some stable variant, not musl ? |
|
Back to top |
|
|
Pipeartist n00b
Joined: 12 Feb 2023 Posts: 12
|
Posted: Sun Jun 02, 2024 1:37 pm Post subject: |
|
|
I have in the past run into the exact same thing upgrading between major versions of llvm toolchain. I'm using custom musl/llvm/hardened/desktop profile. When the packages are gradually being upgraded, the system might be immediately switching to the new packages which is the problem since the upgraded toolchain isn't complete yet. I know libcxx isn't slotted either. I don't know if thats part of the problem or not. It definitely causes issues with Zig. I had to force USE="-clang" and on command line, try installing packages like so: Code: | CC="clang-17" CXX="clang++-17" emerge ..... | . This will force use of the existing toolchain to upgrade. Hope you see this before you give up on it. Doing this fixed the problem for me when i ran into it |
|
Back to top |
|
|
|
|
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum
|
|