*** compiled in 8gb with 8gb swap *** tce-load -i compiletc cmake libxml2-dev ninja zstd-dev python3.11 wget https://github.com/llvm/llvm-project/releases/download/llvmorg-15.0.7/llvm-15.0.7.src.tar.xz wget https://anduin.linuxfromscratch.org/BLFS/llvm/llvm-cmake-15.0.7.src.tar.xz wget https://github.com/llvm/llvm-project/releases/download/llvmorg-15.0.7/clang-15.0.7.src.tar.xz wget https://www.linuxfromscratch.org/patches/blfs/svn/clang-15.0.7-enable_default_ssp-1.patch wget https://github.com/llvm/llvm-project/releases/download/llvmorg-15.0.7/compiler-rt-15.0.7.src.tar.xz SRCDIR="../../../sources" tar xf $SRCDIR/llvm-15.0.7.src.tar.xz cd llvm-15.0.7.src tar -xf ../$SRCDIR/llvm-cmake-15.0.7.src.tar.xz sed '/LLVM_COMMON_CMAKE_UTILS/s@../cmake@cmake-15.0.7.src@' -i CMakeLists.txt tar -xf ../$SRCDIR/clang-15.0.7.src.tar.xz -C tools mv tools/clang-15.0.7.src tools/clang tar -xf ../$SRCDIR/compiler-rt-15.0.7.src.tar.xz -C projects mv projects/compiler-rt-15.0.7.src projects/compiler-rt grep -rl '#!.*python' | xargs sed -i '1s/python$/python3/' patch -Np2 -d tools/clang <../$SRCDIR/clang-15.0.7-enable_default_ssp-1.patch mkdir build cd build case $(uname -m) in armv*) CMPFLAGS="-Os -pipe -march=armv6zk -mtune=arm1176jzf-s -mfpu=vfp" EXTRAFLAGS="-DLLVM_HOST_TRIPLE=armv7-unknown-linux-gnueabihf -DLLVM_DEFAULT_TARGET_TRIPLE=arm-linux-gnueabihf" ;; aarch64) CMPFLAGS="-Os -pipe -march=armv8-a+crc -mtune=cortex-a72" EXTRAFLAGS="" ;; esac cmake -LAH $EXTRAFLAGS -DCMAKE_C_FLAGS_RELEASE="$CMPFLAGS" \ CC="gcc" CXX="g++" -DCMAKE_CXX_FLAGS_RELEASE="$CMPFLAGS" \ -DCMAKE_INSTALL_PREFIX=/usr/local -DLLVM_ENABLE_FFI=ON -DCMAKE_BUILD_TYPE=Release \ -DLLVM_BUILD_LLVM_DYLIB=ON -DLLVM_LINK_LLVM_DYLIB=ON -DLLVM_ENABLE_RTTI=ON \ -DLLVM_TARGETS_TO_BUILD="host;WebAssembly" \ -DLLVM_BINUTILS_INCDIR=/usr/local/include -DLLVM_INCLUDE_BENCHMARKS=OFF -DCLANG_DEFAULT_PIE_ON_LINUX=ON \ -DCMAKE_VERBOSE_MAKEFILE=TRUE -DCMAKE_INSTALL_LIBDIR=lib -DCMAKE_INSTALL_LIBEXECDIR=lib/clang -Wno-dev \ -G Ninja ../ [static libs huge with -flto] find . -name flags.make -type f -exec sed -i 's/ -O3 -g//g' {} \; find . -name flags.make -type f -exec sed -i 's/ -O3//g' {} \; find . -name link.txt -type f -exec sed -i 's/-Wl,-O3/-Wl -Os/g' {} \; find . -name AddLLVM.cmake -type f -exec sed -i 's/-Wl,-O3/-Wl,-Os/g' {} \; find . -name compile_commands.json -type f -exec sed -i 's/ -O3 -g//g' {} \; find . -name build.make -type f -exec sed -i 's/ -O3 -g//g' {} \; ninja [7h 14m 41s] sudo ninja install sudo cp bin/FileCheck /usr/local/bin sudo mkdir /usr/local/lib/bfd-plugins cd /usr/local/lib/bfd-plugins sudo ln -s ../LLVMgold.so ./ [links against ncursesw without ncursesw-dev]