Compiled on RPI4B-8G with 6.6.47-piCore-v8 on portable SSD Compile Flags: ## test build ## CFLAGS='-march=armv8-a+crc -mtune=cortex-a72 -Os -pipe' CXXFLAGS='-march=armv8-a+crc -mtune=cortex-a72 -Os -pipe' EXTRA_C=' -L/usr/local/lib -flto -fuse-ld=gold -fuse-linker-plugin -fno-exceptions' EXTRA_CXX=' -L/usr/local/lib -flto -fuse-ld=gold -fuse-linker-plugin -fno-exceptions -fno-rtti' CFLAGS="${CFLAGS}${EXTRA_C}" CXXFLAGS="${CXXFLAGS}${EXTRA_CXX}" LDFLAGS='-Wl,-L/usr/local/lib -Wl,-O1' export CFLAGS CXXFLAGS LDFLAGS ## actual package ## CC="clang --gcc-install-dir=$(echo /usr/local/lib/gcc/*/*)" CXX="clang++ --gcc-install-dir=$(echo /usr/local/lib/gcc/*/*)" CFLAGS='-march=armv8-a+crc -mtune=cortex-a72 -Os -pipe' CXXFLAGS='-march=armv8-a+crc -mtune=cortex-a72 -Os -pipe' EXTRA_C=' -L/usr/local/lib -flto=full -fno-exceptions' EXTRA_CXX=' -L/usr/local/lib -flto=full -fno-exceptions -fno-rtti' CFLAGS="${CFLAGS}${EXTRA_C}" CXXFLAGS="${CXXFLAGS}${EXTRA_CXX}" LDFLAGS='-fuse-ld=lld -L/usr/local/lib -Wl,-O1 -Wl,-rpath=/usr/local/lib' export CC CXX CFLAGS CXXFLAGS LDFLAGS Dependencies: compiletc llvm19-dev cmake python3.12 ninja clang Commands: sudo busybox cp $(realpath /usr/local/bin/llvm-config) /usr/local/bin/llvm-config cd /mnt/mmcblk0p5/compile VER=19.1.0 wget https://github.com/llvm/llvm-project/releases/download/llvmorg-${VER}/lld-${VER}.src.tar.xz wget https://github.com/llvm/llvm-project/releases/download/llvmorg-${VER}/libunwind-${VER}.src.tar.xz wget https://github.com/llvm/llvm-project/releases/download/llvmorg-${VER}/cmake-${VER}.src.tar.xz tar -xf lld-${VER}.src.tar.xz tar -xf libunwind-${VER}.src.tar.xz tar -xf cmake-${VER}.src.tar.xz mv libunwind-${VER}.src/include/mach-o/ lld-${VER}.src/MachO/ mv cmake-${VER}.src/ cmake/ ## test builds ## # export test flags ### GCC + GOLD ### cd lld-${VER}.src/ && mkdir gold && cd gold time cmake -DCMAKE_C_FLAGS_MINSIZEREL="$CFLAGS" -DCMAKE_CXX_FLAGS_MINSIZEREL="$CXXFLAGS" \ -DCMAKE_BUILD_TYPE=MINSIZEREL -DLLVM_ENABLE_PROJECTS=lld -DCMAKE_INSTALL_PREFIX=/usr/local -G Ninja .. real 0m 6.81s user 0m 4.88s sys 0m 1.93s time ninja -j4 real 36m 31.56s user 2h 1m 46s sys 1m 44.80s sudo ninja install ### CLANG + LLD ### cd .. && mkdir build && cd build time cmake -DCMAKE_C_FLAGS_MINSIZEREL="$CFLAGS" -DCMAKE_CXX_FLAGS_MINSIZEREL="$CXXFLAGS" \ -DCMAKE_BUILD_TYPE=MINSIZEREL -DLLVM_ENABLE_PROJECTS=lld -DCMAKE_INSTALL_PREFIX=/usr/local -G Ninja .. real 0m 8.17s user 0m 5.70s sys 0m 2.47s time ninja -j4 real 36m 29.81s user 2h 1m 37s sys 1m 44.90s DESTDIR=/tmp/packing-lld ninja install cd /tmp/packing-lld/usr/local/bin/ L=$(busybox ls -1 | grep -v '^lld$') rm -f $L for LINK in $L; do ln -s lld $LINK; done cd /tmp/ && sudo chown -R root:root packing-lld mksquashfs packing-lld/ /mnt/mmcblk0p3/tce/optional/lld.tcz -quiet