llvm / llvm-project

The LLVM Project is a collection of modular and reusable compiler and toolchain technologies.
http://llvm.org
Other
28.69k stars 11.86k forks source link

/usr/local/bin/ld.lld executed in the void #62255

Open LeololDB opened 1 year ago

LeololDB commented 1 year ago

I'm very new to CMake and only know failure. By running that

git clone https://github.com/llvm/llvm-project.git
cd llvm-project
git checkout llvmorg-16.0.2
mkdir build
cd build
echo Note at this point, you have to remove "-fuse-ld=\${LLVM_USE_LINKER}" in llvm-project/llvm/cmake/modules/HandleLLVMOptions.cmake
echo Use Ctrl-F to find it and remove the entire if statement
pause
CC='clang' CXX='clang++' cmake -G Ninja -DCMAKE_C_FLAGS="-flto -Oz" \
-DCMAKE_CXX_FLAGS="-flto -Oz" \
-DCMAKE_ASM_FLAGS="-flto -no-integrated-as" \
-DLLVM_ENABLE_LLD=ON -DCMAKE_CXX_LINK_EXECUTABLE=/usr/local/bin/ld.lld \
-DCMAKE_LINKER=/usr/local/bin/ld.lld \
-DCMAKE_C_LINK_EXECUTABLE=/usr/local/bin/ld.lld \
-DCMAKE_CXX_LINK_EXECUTABLE=/usr/local/bin/ld.lld \
-DCMAKE_EXE_LINKER_FLAGS="-Wl,--no-undefined -Wl,-melf_x86_64 -flto" \
-DCMAKE_BUILD_TYPE=Release \
-DLLVM_ENABLE_LTO=Full \
-DLLVM_DEFAULT_TARGET_TRIPLE=thumbv6m-none-eabi \
-DLLVM_TARGET_ARCH=ARM \
-DLLVM_TARGETS_TO_BUILD=ARM \
-DLLVM_ENABLE_PROJECTS="clang;lld" \
-DLLVM_EXTERNAL_PROJECTS="clang;lld" \
-DLLVM_LIT_ARGS=-v \
-DLLVM_ENABLE_PIC=False ../llvm
ninja

At the end I get:

[241/3656] Linking CXX executable bin/llvm-tblgen
FAILED: bin/llvm-tblgen 
: && /usr/local/bin/ld.lld && :
ld.lld: error: no input files
[243/3656] Building CXX object lib/Option/CMakeFiles/LLVMOption.dir/Arg.cpp.o
ninja: build stopped: subcommand failed.

Also, what I want is:

LeololDB commented 1 year ago

Also, for some reasons, I can't click on "Labels". I want to add cmake, build-issue and platform:linux to the labels.

LeololDB commented 1 year ago

And also, is it possible to compile Clang so it runs on the Raspberry Pi Pico?

LeololDB commented 1 year ago

The same behaviour could be reproduced by:

CC='clang' CXX='clang++' cmake -G Ninja -DCMAKE_C_FLAGS="-flto -Oz" \
-DCMAKE_CXX_FLAGS="-flto -Oz" \
-DCMAKE_ASM_FLAGS="-flto -no-integrated-as" \
-DLLVM_ENABLE_LLD=ON -DCMAKE_CXX_LINK_EXECUTABLE=/usr/local/bin/ld.lld \
-DCMAKE_LINKER=/usr/local/bin/ld.lld \
-DCMAKE_C_LINK_EXECUTABLE=/usr/local/bin/ld.lld \
-DCMAKE_CXX_LINK_EXECUTABLE=/usr/local/bin/ld.lld \
-DCMAKE_EXE_LINKER_FLAGS="-Wl,--no-undefined -Wl,-melf_x86_64 -flto" \
-DCMAKE_BUILD_TYPE=Release \
-DLLVM_ENABLE_LTO=Full \
-DLLVM_ENABLE_PROJECTS="clang;lld" \
-DLLVM_EXTERNAL_PROJECTS="clang;lld" \
-DLLVM_ENABLE_PIC=False ../llvm