export PROJ_ROOT=$(pwd)
mkdir -p llvm && cd llvm
# Using Ubuntu 18.04 Prebuild Toolchain from https://releases.llvm.org/download.html
wget https://github.com/llvm/llvm-project/releases/download/llvmorg-10.0.0/clang+llvm-10.0.0-x86_64-linux-gnu-ubuntu-18.04.tar.xz \
https://github.com/llvm/llvm-project/releases/download/llvmorg-10.0.0/clang+llvm-10.0.0-x86_64-linux-gnu-ubuntu-18.04.tar.xz.sig \
https://releases.llvm.org/10.0.0/hans-gpg-key.asc
gpg --import hans-gpg-key.asc
gpg --verify clang+llvm-10.0.0-x86_64-linux-gnu-ubuntu-18.04.tar.xz.sig clang+llvm-10.0.0-x86_64-linux-gnu-ubuntu-18.04.tar.xz
tar xf clang+llvm-10.0.0-x86_64-linux-gnu-ubuntu-18.04.tar.xz
Note that this doesn't seem to include everything needed to build out-of-source passes or plugins:
export Clang_DIR="$PROJ_ROOT/llvm/clang+llvm-10.0.0-x86_64-linux-gnu-ubuntu-18.04"
export LLVM_DIR="$PROJ_ROOT/llvm/clang+llvm-10.0.0-x86_64-linux-gnu-ubuntu-18.04"
cd $PROJ_ROOT && mkdir -p build && cd build
cmake .. -G "Ninja" \
-DCMAKE_BUILD_TYPE=Debug \
-DCMAKE_EXPORT_COMPILE_COMMANDS=On \
-DIRN_Clang_INSTALL_DIR=$LLVM_DIR \
-DIRN_LLVM_INSTALL_DIR=$LLVM_DIR \
-DIRN_BUILD_LIBS=On \
-DIRN_BUILD_TESTS=Off
cmake --build .
-- Using LLVMConfig.cmake in: /home/matthew/git/bingseclab/IRN/downloads/clang+llvm-10.0.0-x86_64-linux-gnu-ubuntu-18.04
LLVM STATUS:
Definitions -D_GNU_SOURCE -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS
Includes /usr/lib/llvm-14/include
Libraries /usr/lib/llvm-14/lib
Targets AArch64;AMDGPU;ARM;AVR;BPF;Hexagon;Lanai;Mips;MSP430;NVPTX;PowerPC;RISCV;Sparc;SystemZ;VE;WebAssembly;X86;XCore;M68k
CMake Error at CMakeLists.txt:145 (find_package):
Found package configuration file:
/home/matthew/git/bingseclab/IRN/downloads/clang+llvm-10.0.0-x86_64-linux-gnu-ubuntu-18.04/lib/cmake/clang/ClangConfig.cmake
but it set Clang_FOUND to FALSE so package "Clang" is considered to be NOT
FOUND. Reason given by package:
The following imported targets are referenced, but are missing:
LLVMRISCVUtils LLVMX86Utils