llvm17

Details
Source
FROM scratch AS build
ARG VERSION
COPY --from=stagex/core-busybox . /
COPY --from=stagex/core-binutils . /
COPY --from=stagex/core-cmake . /
COPY --from=stagex/core-samurai . /
COPY --from=stagex/core-musl . /
COPY --from=stagex/core-gcc . /
COPY --from=stagex/core-python . /
COPY --from=stagex/core-py-setuptools . /
COPY --from=stagex/core-zlib . /
COPY --from=stagex/core-openssl . /
ADD fetch/llvm17-${VERSION}.tar.xz .
WORKDIR /llvm-project-${VERSION}.src
ADD *.patch .
RUN --network=none <<-EOF
	set -eux
	python -c "import setuptools; print(setuptools.__version__)"
	ARCH="$(uname -m)"
	cmake \
		-B build \
		-G Ninja \
		-Wno-dev -S llvm \
		-DCMAKE_BUILD_TYPE=Release \
		-DCMAKE_INSTALL_PREFIX=/usr/ \
		-DCMAKE_INSTALL_RPATH=/usr/ \
		-DLLVM_DEFAULT_TARGET_TRIPLE="${ARCH}-linux-musl" \
		-DLLVM_HOST_TRIPLE="${ARCH}-linux-musl" \
		-DLLVM_APPEND_VC_REV=OFF \
		-DLLVM_BINUTILS_INCDIR=/usr/include \
		-DLLVM_BUILD_DOCS=OFF \
		-DLLVM_BUILD_EXAMPLES=OFF \
		-DLLVM_BUILD_EXTERNAL_COMPILER_RT=ON \
		-DLLVM_BUILD_LLVM_DYLIB=ON \
		-DLLVM_BUILD_TESTS=ON \
		-DLLVM_ENABLE_ASSERTIONS=OFF \
		-DLLVM_ENABLE_DUMP=ON \
		-DLLVM_ENABLE_EH=ON \
		-DLLVM_ENABLE_FFI=OFF \
		-DLLVM_ENABLE_LIBCXX=OFF \
		-DLLVM_ENABLE_LIBEDIT=OFF \
		-DLLVM_ENABLE_PIC=ON \
		-DLLVM_ENABLE_RTTI=ON \
		-DLLVM_ENABLE_SPHINX=OFF \
		-DLLVM_ENABLE_TERMINFO=ON \
		-DLLVM_ENABLE_ZLIB=FORCE_ON \
		-DLLVM_ENABLE_ZSTD=OFF \
		-DLLVM_INCLUDE_BENCHMARKS=OFF \
		-DLLVM_INCLUDE_EXAMPLES=OFF \
		-DLLVM_INSTALL_UTILS=ON \
		-DLLVM_LINK_LLVM_DYLIB=ON \
		-DLLVM_USE_PERF=ON
	cmake --build build
	python3 llvm/utils/lit/setup.py build
	DESTDIR="/rootfs" cmake --install build
	python3 llvm/utils/lit/setup.py install --root="/rootfs"
	ln -s lit /rootfs/usr/bin/llvm-lit
EOF
FROM stagex/core-filesystem AS package
COPY --from=build /rootfs/ /