mlir-devel-static

Source

FROM scratch AS build
COPY --from=stagex/bootstrap-stage3 . /

ARG VERSION
ARG CPORTS_VERSION
ARG TARGETARCH
COPY <<-'EOF' /etc/profile
	set -eux
	[[ "$TARGETARCH" == "amd64" ]] \
		&& ARCH="x86_64" \
		&& LLVM_TARGET_ARCH="X86"
	[[ "$TARGETARCH" == "arm64" ]] \
		&& ARCH="aarch64" \
		&& LLVM_TARGET_ARCH="AArch64"
	export ARCH
	export MAKEFLAGS="-j$(nproc)"
	export BUILD=${ARCH}-unknown-linux-musl
	export TARGET=${ARCH}-unknown-linux-musl
EOF
SHELL ["/bin/sh","-l","-c"]

ADD fetch/llvm-${VERSION}.tar.xz .
ADD fetch/cports-${CPORTS_VERSION}.tar.gz .
WORKDIR /llvm-project-${VERSION}.src
ADD patches/*.patch .
RUN --network=none <<-EOF
	cp /cports-${CPORTS_VERSION}/main/llvm/patches/*.patch .
	patch -p1 < 0001-llvm-always-set-a-larger-stack-size-explicitly.patch
	patch -p1 < 0002-llvm-musl-workarounds.patch
	patch -p1 < 0003-llvm-fix-some-MF_EXEC-related-test-failures-on-aarch.patch
	patch -p1 < 0004-llvm-disable-dependency-on-libexecinfo-everywhere.patch
	patch -p1 < 0005-compiler-rt-ppc-sanitizer-fixes.patch
	patch -p1 < 0006-compiler-rt-default-to-libc-for-sanitizers.patch
	patch -p1 < 0007-compiler-rt-build-crt-in-runtimes-build.patch
	patch -p1 < 0008-compiler-rt-lsan-basic-musl-fixes-on-various-archs.patch
	patch -p1 < 0009-compiler-rt-HACK-hwasan-build-on-x86_64.patch
	patch -p1 < 0010-compiler-rt-libcxx-abi-libunwind-HACK-force-fno-lto.patch
	patch -p1 < 0011-compiler-rt-HACK-always-compile-in-gcc_personality_v.patch
	patch -p1 < 0012-libc-libc-abi-libunwind-disable-multiarch-locations.patch
	patch -p1 < 0013-llvm-fix-isOSGlibc-thinking-musl-is-glibc.patch
	patch -p1 < 0014-clang-disable-multiarch-layout-on-musl.patch
	patch -p1 < 0015-clang-drop-incorrect-warning-about-vector-equality-r.patch
	patch -p1 < 0016-clang-add-fortify-include-paths-for-musl-triplets-en.patch
	patch -p1 < 0017-clang-use-as-needed-by-default.patch
	patch -p1 < 0018-clang-switch-on-default-now-relro.patch
	patch -p1 < 0019-clang-default-to-fno-semantic-interposition.patch
	patch -p1 < 0021-clang-use-strong-stack-protector-by-default.patch
	patch -p1 < 0022-clang-fix-unwind-chain-inclusion.patch
	patch -p1 < 0023-clang-error-when-using-ifunc-attribute-on-unsupporte.patch
	patch -p1 < 0024-clang-link-libcxxabi-on-linux-when-using-libc.patch
	patch -p1 < 0025-Get-rid-of-spurious-trailing-space-in-__clang_versio.patch
	patch -p1 < 0026-clang-implicitly-include-stdc-predef.h.patch
	patch -p1 < 0027-32-bit-musl-sanitizer-fixes.patch
	patch -p1 < 0028-fix-scan-build.patch
	patch -p1 < 0029-libcxx-default-to-type-2.patch
	patch -p1 < 0030-various-musl-hacks.patch
	patch -p1 < 0031-compiler-rt-cxx-header-build-order.patch
	patch -p1 < 8f66fb784291c897a965a9ee4c280e314dc8cee4.patch
	# Massive hack to force inject settings that are for some reason ignored as configure flags
	find compiler-rt -iname CMakeLists.txt -exec sed -i '1s/^/set(COMPILER_RT_BUILD_SANITIZERS OFF)\n/' {} \;
	find compiler-rt -iname CMakeLists.txt -exec sed -i '1s/^/set(COMPILER_RT_BUILD_GWP_ASAN OFF)\n/' {} \;
	find compiler-rt -iname CMakeLists.txt -exec sed -i '1s/^/set(COMPILER_RT_HAS_GWP_ASAN FALSE)\n/' {} \;
	find compiler-rt -iname *.cmake -exec sed -i '1s/^/set(COMPILER_RT_BUILD_SANITIZERS OFF)\n/' {} \;
	find compiler-rt -iname *.cmake -exec sed -i '1s/^/set(COMPILER_RT_BUILD_GWP_ASAN OFF)\n/' {} \;
	find compiler-rt -iname *.cmake -exec sed -i '1s/^/set(COMPILER_RT_HAS_GWP_ASAN FALSE)\n/' {} \;
	cmake \
		-B build \
		-S llvm \
		-Wno-dev \
		-DCMAKE_BUILD_TYPE=Release \
		-DCMAKE_INSTALL_PREFIX=/usr/ \
		-DCMAKE_INSTALL_RPATH=/usr/lib \
		-DLLVM_TARGET_ARCH="$LLVM_TARGET_ARCH" \
		-DLLVM_TARGETS_TO_BUILD="$LLVM_TARGET_ARCH" \
		-DLLVM_HOST_TRIPLE="${ARCH}-linux-musl" \
		-DLLVM_RUNTIME_TARGETS="${ARCH}-linux-musl" \
		-DLLVM_BUILTIN_TARGETS="${ARCH}-linux-musl" \
		-DLLVM_ENABLE_PROJECTS="clang;lld" \
		-DLLVM_ENABLE_RUNTIMES="compiler-rt;libunwind;libcxx;libcxxabi" \
		-DLLVM_ENABLE_PER_TARGET_RUNTIME_DIR=ON \
		-DLLVM_ENABLE_LIBXML2=OFF \
		-DLLVM_ENABLE_LIBEDIT=OFF \
		-DLLVM_ENABLE_LIBPFM=OFF \
		-DLLVM_ENABLE_LIBCXX=ON \
		-DLLVM_BUILD_LLVM_DYLIB=ON \
		-DLLVM_LINK_LLVM_DYLIB=ON \
		-DLLVM_ENABLE_RTTI=ON \
		-DLLVM_INSTALL_UTILS=ON \
		-DLLVM_INSTALL_BINUTILS_SYMLINKS=ON \
    -DCLANG_CONFIG_FILE_SYSTEM_DIR=/etc/clang \
		-DCLANG_ENABLE_BOOTSTRAP=ON \
		-DCLANG_DEFAULT_RTLIB=compiler-rt \
		-DCLANG_DEFAULT_UNWINDLIB=libunwind \
		-DCLANG_DEFAULT_CXX_STDLIB=libc++ \
		-DLIBCXX_HAS_MUSL_LIBC=ON \
		-DLIBCXX_CXX_ABI=libcxxabi \
		-DLIBCXX_USE_COMPILER_RT=ON \
		-DLIBCXX_ENABLE_STATIC_ABI_LIBRARY=OFF \
		-DLIBCXX_HAS_MUSL_LIBC=ON \
		-DLIBCXX_HARDENING_MODE=fast \
		-DLIBCXX_ENABLE_LOCALIZATION=OFF \
		-DLIBCXX_ENABLE_FILESYSTEM=OFF \
		-DLIBCXXABI_ENABLE_STATIC_UNWINDER=OFF \
		-DLIBCXXABI_USE_LLVM_UNWINDER=ON \
    -DLIBCXXABI_USE_COMPILER_RT=ON \
		-DLIBUNWIND_USE_COMPILER_RT=ON \
		-DCOMPILER_RT_DEFAULT_TARGET_TRIPLE="${ARCH}-linux-musl" \
		-DCOMPILER_RT_DEFAULT_TARGET_ONLY=ON \
		-DCOMPILER_RT_USE_BUILTINS_LIBRARY=ON \
		-DCOMPILER_RT_BUILD_GWP_ASAN=OFF \
		-DCOMPILER_RT_HAS_GWP_ASAN=FALSE \
		-DCOMPILER_RT_BUILD_SANITIZERS=OFF \
		-DCOMPILER_RT_BUILD_XRAY=OFF \
		-DCOMPILER_RT_BUILD_LIBFUZZER=OFF \
		-DCOMPILER_RT_BUILD_PROFILE=OFF \
		-DCOMPILER_RT_BUILD_MEMPROF=OFF \
		-DCOMPILER_RT_BUILD_CTX_PROFILE=OFF \
		-DCOMPILER_RT_TEST_COMPILER=OFF \
		-DCOMPILER_RT_TEST_CXX_COMPILER=OFF
	cmake --build build -v --parallel $(nproc)
	cmake --install build
	export LDFLAGS="-fuse-ld=/usr/bin/ld.lld"
	export CFLAGS="-fPIC"
	export CXXFLAGS="$CFLAGS"
	#HACK: The only reason we are not using "all" here is because AMDGPU does not build deterministically
	# Zig hard requires "all" so this also forces a messy patch there as well to remove AMDGPU support as well
	export LLVM_TARGETS_TO_BUILD="AArch64;ARM;AVR;BPF;Hexagon;Lanai;LoongArch;Mips;MSP430;NVPTX;PowerPC;RISCV;Sparc;SPIRV;SystemZ;VE;WebAssembly;X86;XCore"
	export LIBCC="/usr/lib/clang/20/lib/${TARGET}/libclang_rt.builtins.a"
	rm -rf build
	cmake \
		-B build \
		-S llvm \
		-Wno-dev \
		-DCMAKE_BUILD_TYPE=Release \
		-DCMAKE_INSTALL_PREFIX=/usr/ \
		-DCMAKE_INSTALL_RPATH=/usr/lib \
		-DCMAKE_C_COMPILER=/usr/bin/clang \
		-DCMAKE_CXX_COMPILER=/usr/bin/clang++ \
		-DCMAKE_AR=/usr/bin/llvm-ar \
		-DCMAKE_AS=/usr/bin/llvm-as \
		-DCMAKE_NM=/usr/bin/llvm-nm \
		-DCMAKE_RANLIB=/usr/bin/llvm-ranlib \
		-DCLANG_TABLEGEN=/usr/bin/clang-tblgen \
		-DCLANG_PSEUDO_GEN=/usr/bin/clang-pseudo-gen \
		-DLLVM_HEADERS_TABLEGEN=/usr/bin/llvm-tblgen \
		-DCLANG_TIDY_CONFUSABLE_CHARS_GEN=/usr/bin/clang-tidy-confusable-chars-gen \
		-DMLIR_TABLEGEN=/usr/bin/mlir-tblgen \
		-DMLIR_PDLL_TABLEGEN=/usr/bin/mlir-pdll \
		-DMLIR_LINALG_ODS_YAML_GEN=/usr/bin/mlir-linalg-ods-yaml-gen \
		-DLLVM_NATIVE_TOOL_DIR=/usr/bin/ \
		-DLLVM_CONFIG_PATH=/usr/bin/llvm-config \
		-DLLVM_TARGET_ARCH="$LLVM_TARGET_ARCH" \
		-DLLVM_TARGETS_TO_BUILD="$LLVM_TARGETS_TO_BUILD" \
		-DLLVM_HOST_TRIPLE="${ARCH}-linux-musl" \
		-DLLVM_RUNTIME_TARGETS="${ARCH}-linux-musl" \
		-DLLVM_BUILTIN_TARGETS="${ARCH}-linux-musl" \
		-DLLVM_ENABLE_PROJECTS="clang;lld" \
		-DLLVM_ENABLE_RUNTIMES="compiler-rt;libunwind;libcxx;libcxxabi" \
		-DLLVM_ENABLE_PER_TARGET_RUNTIME_DIR=ON \
		-DLLVM_ENABLE_LLD=YES \
		-DLLVM_ENABLE_LIBXML2=OFF \
		-DLLVM_ENABLE_LIBEDIT=OFF \
		-DLLVM_ENABLE_LIBPFM=OFF \
		-DLLVM_ENABLE_LIBCXX=ON \
		-DLLVM_BUILD_LLVM_DYLIB=ON \
		-DLLVM_LINK_LLVM_DYLIB=ON \
		-DLLVM_ENABLE_RTTI=ON \
		-DLLVM_INSTALL_UTILS=ON \
		-DLLVM_INSTALL_BINUTILS_SYMLINKS=ON \
    -DCLANG_CONFIG_FILE_SYSTEM_DIR=/etc/clang \
		-DCLANG_ENABLE_BOOTSTRAP=ON \
		-DCLANG_DEFAULT_RTLIB=compiler-rt \
		-DCLANG_DEFAULT_UNWINDLIB=libunwind \
		-DCLANG_DEFAULT_CXX_STDLIB=libc++ \
		-DLIBCXX_HAS_MUSL_LIBC=ON \
		-DLIBCXX_CXX_ABI=libcxxabi \
		-DLIBCXX_USE_COMPILER_RT=ON \
		-DLIBCXX_ENABLE_STATIC_ABI_LIBRARY=OFF \
		-DLIBCXX_HAS_MUSL_LIBC=ON \
		-DLIBCXX_HARDENING_MODE=fast \
		-DLIBCXX_ENABLE_LOCALIZATION=OFF \
		-DLIBCXX_ENABLE_FILESYSTEM=OFF \
		-DLIBCXXABI_ENABLE_STATIC_UNWINDER=OFF \
		-DLIBCXXABI_USE_LLVM_UNWINDER=ON \
    -DLIBCXXABI_USE_COMPILER_RT=ON \
		-DLIBUNWIND_USE_COMPILER_RT=ON \
		-DCOMPILER_RT_DEFAULT_TARGET_TRIPLE="${ARCH}-linux-musl" \
		-DCOMPILER_RT_DEFAULT_TARGET_ONLY=ON \
		-DCOMPILER_RT_USE_BUILTINS_LIBRARY=ON \
		-DCOMPILER_RT_BUILD_GWP_ASAN=OFF \
		-DCOMPILER_RT_HAS_GWP_ASAN=FALSE \
		-DCOMPILER_RT_BUILD_SANITIZERS=OFF \
		-DCOMPILER_RT_BUILD_XRAY=OFF \
		-DCOMPILER_RT_BUILD_LIBFUZZER=OFF \
		-DCOMPILER_RT_BUILD_PROFILE=OFF \
		-DCOMPILER_RT_BUILD_MEMPROF=OFF \
		-DCOMPILER_RT_BUILD_CTX_PROFILE=OFF \
		-DCOMPILER_RT_TEST_COMPILER=OFF \
		-DCOMPILER_RT_TEST_CXX_COMPILER=OFF
	cmake --build build -v
	DESTDIR="/rootfs" cmake --install build
EOF
RUN --network=none <<-EOF
	ln -sf /usr/bin/clang++ /rootfs/usr/bin/c++
	ln -sf /usr/bin/clang /rootfs/usr/bin/cc
	ln -sf /usr/bin/ld.lld /rootfs/usr/bin/ld
	ln -sf /usr/lib/clang/20/lib/${TARGET}/libclang_rt.builtins.a /rootfs/usr/lib/libclang_rt.builtins.a
	strip /rootfs/usr/lib/libLLVM.so.20.1
EOF

FROM build AS build-llvm-libgcc
RUN --network=none <<-EOF
	rm -rf /rootfs
	mkdir -p /rootfs/usr/lib
	cmake \
		-B build \
		-S llvm \
		-Wno-dev \
		-DCMAKE_ASM_COMPILER_TARGET="${TARGET}" \
    -DCMAKE_C_COMPILER_TARGET="${TARGET}" \
    -DCMAKE_CXX_COMPILER_TARGET="${TARGET}" \
		-DCMAKE_TRY_COMPILE_TARGET_TYPE=STATIC_LIBRARY \
		-DCMAKE_BUILD_TYPE=Release \
		-DLLVM_ENABLE_PER_TARGET_RUNTIME_DIR=ON \
		-DCOMPILER_RT_BUILTINS_HIDE_SYMBOLS=OFF \
		-DCOMPILER_RT_DEFAULT_TARGET_ONLY=ON \
		-DCOMPILER_RT_BUILD_BUILTINS=ON \
		-DCOMPILER_RT_BUILD_CRT=OFF \
		-DCOMPILER_RT_BUILD_LIBFUZZER=OFF \
		-DCOMPILER_RT_BUILD_MEMPROF=OFF \
		-DCOMPILER_RT_BUILD_PROFILE=OFF \
		-DCOMPILER_RT_BUILD_SANITIZERS=OFF \
		-DCOMPILER_RT_BUILD_XRAY=OFF \
		-DCOMPILER_RT_BUILD_ORC=OFF \
		-DCOMPILER_RT_BUILD_CTX_PROFILE=OFF \
		-DCOMPILER_RT_DEFAULT_TARGET_ONLY=YES
	/usr/bin/clang++ \
		-nodefaultlibs \
		-shared \
		-Wl,-soname,libgcc_s.so.1 \
		-Wl,--no-undefined \
		-Wl,--whole-archive \
		build/lib/clang/20/lib/${TARGET}/libclang_rt.builtins.a \
		-Wl,--no-as-needed \
		-lc \
		-lunwind \
		-o build/libgcc_s.so.1
	cp build/libgcc_s.so.1 /rootfs/usr/lib/
EOF

FROM stagex/core-filesystem AS package-llvm
COPY --from=build /rootfs/ /

FROM stagex/core-filesystem AS package-llvm-libgcc
COPY --from=build-llvm-libgcc /rootfs/ /

#FROM stagex/core-filesystem AS package-clang-tools-extra
#COPY --from=build /rootfs/usr/include/clang-tidy /usr/include/
#COPY --from=build /rootfs/usr/share/clang/*tidy* /usr/share/clang/
#COPY --from=build /rootfs/usr/bin/clang-apply-replacements /usr/bin/
#COPY --from=build /rootfs/usr/bin/clang-query /usr/bin/
#COPY --from=build /rootfs/usr/bin/clang-tidy /usr/bin/
#COPY --from=build /rootfs/usr/bin/clang-tidy-confusable-chars-gen /usr/bin
#COPY --from=build /rootfs/usr/bin/diagtool /usr/bin
#COPY --from=build /rootfs/usr/bin/find-all-symbols /usr/bin
#COPY --from=build /rootfs/usr/bin/hmaptool /usr/bin
#COPY --from=build /rootfs/usr/bin/modularize /usr/bin
#COPY --from=build /rootfs/usr/bin/pp-trace /usr/bin
#COPY --from=build /rootfs/usr/bin/run-clang-tidy /usr/bin
#COPY --from=build /rootfs/usr/bin/sancov /usr/bin

#FROM stagex/core-filesystem AS package-clang-tools-extra-static
#COPY --from=build /rootfs/usr/lib/libclangApplyReplacements* /usr/lib/
#COPY --from=build /rootfs/usr/lib/libclangQuery* /usr/lib/
#COPY --from=build /rootfs/usr/lib/libclangTidy* /usr/lib/

FROM stagex/core-filesystem AS package-llvm-binutils
COPY --from=build /rootfs/usr/bin/addr2line /usr/bin/
COPY --from=build /rootfs/usr/bin/ar /usr/bin/
COPY --from=build /rootfs/usr/bin/c++filt /usr/bin/
COPY --from=build /rootfs/usr/bin/dlltool /usr/bin/
COPY --from=build /rootfs/usr/bin/dwp /usr/bin/
COPY --from=build /rootfs/usr/bin/llvm-addr2line /usr/bin/
COPY --from=build /rootfs/usr/bin/llvm-ar /usr/bin/
COPY --from=build /rootfs/usr/bin/llvm-bitcode-strip /usr/bin/
COPY --from=build /rootfs/usr/bin/llvm-cxxfilt /usr/bin/
COPY --from=build /rootfs/usr/bin/llvm-dlltool /usr/bin/
COPY --from=build /rootfs/usr/bin/llvm-dwp /usr/bin/
COPY --from=build /rootfs/usr/bin/llvm-install-name-tool /usr/bin/
COPY --from=build /rootfs/usr/bin/llvm-lib /usr/bin/
COPY --from=build /rootfs/usr/bin/llvm-nm /usr/bin/
COPY --from=build /rootfs/usr/bin/llvm-objcopy /usr/bin/
COPY --from=build /rootfs/usr/bin/llvm-objdump /usr/bin/
COPY --from=build /rootfs/usr/bin/llvm-ranlib /usr/bin/
COPY --from=build /rootfs/usr/bin/llvm-rc /usr/bin/
COPY --from=build /rootfs/usr/bin/llvm-readelf /usr/bin/
COPY --from=build /rootfs/usr/bin/llvm-readobj /usr/bin/
COPY --from=build /rootfs/usr/bin/llvm-size /usr/bin/
COPY --from=build /rootfs/usr/bin/llvm-strings /usr/bin/
COPY --from=build /rootfs/usr/bin/llvm-strip /usr/bin/
COPY --from=build /rootfs/usr/bin/llvm-symbolizer /usr/bin/
COPY --from=build /rootfs/usr/bin/nm /usr/bin/
COPY --from=build /rootfs/usr/bin/objcopy /usr/bin/
COPY --from=build /rootfs/usr/bin/objdump /usr/bin/
COPY --from=build /rootfs/usr/bin/ranlib /usr/bin/
COPY --from=build /rootfs/usr/bin/readelf /usr/bin/
COPY --from=build /rootfs/usr/bin/size /usr/bin/
COPY --from=build /rootfs/usr/bin/strings /usr/bin/
COPY --from=build /rootfs/usr/bin/strip /usr/bin/
COPY --from=build /rootfs/usr/bin/windres /usr/bin/

FROM stagex/core-filesystem AS package-clang
COPY --from=build /rootfs/usr/bin/*clang* /usr/bin/
COPY --from=build /rootfs/usr/bin/*-cc /usr/bin/
COPY --from=build /rootfs/usr/bin/*-c++ /usr/bin/
COPY --from=build /rootfs/usr/bin/c-index-test /usr/bin/
COPY --from=build /rootfs/usr/bin/cc /usr/bin/
#COPY --from=build /rootfs/usr/bin/c89 /usr/bin/
#COPY --from=build /rootfs/usr/bin/c99 /usr/bin/
COPY --from=build /rootfs/usr/bin/c++ /usr/bin/
COPY --from=build /rootfs/usr/lib/cmake/clang /usr/lib/cmake/
COPY --from=build /rootfs/usr/share/clang /usr/share/
#COPY --from=build /rootfs/usr/share/clang-docs /usr/share/

FROM stagex/core-filesystem AS package-clang-rt-devel
COPY --from=build /rootfs/usr/lib/clang/. /usr/lib/clang/

FROM stagex/core-filesystem AS package-clang-devel-static
COPY --from=build /rootfs/usr/lib/libclang*.a /usr/lib/

FROM stagex/core-filesystem AS package-clang-devel
COPY --from=build /rootfs/usr/include/clang /usr/include/
COPY --from=build /rootfs/usr/include/clang-c /usr/include/
COPY --from=build /rootfs/usr/lib/libclang*.so /usr/lib/

FROM stagex/core-filesystem AS package-clang-analyzer
COPY --from=build /rootfs/usr/bin/analyze-build /usr/bin/
COPY --from=build /rootfs/usr/bin/intercept-build /usr/bin/
COPY --from=build /rootfs/usr/bin/scan-* /usr/bin/
COPY --from=build /rootfs/usr/lib/libear /usr/lib/
COPY --from=build /rootfs/usr/lib/libscanbuild /usr/lib/
COPY --from=build /rootfs/usr/libexec/analyze-* /usr/libexec/
COPY --from=build /rootfs/usr/libexec/*analyzer /usr/libexec/
COPY --from=build /rootfs/usr/libexec/intercept-* /usr/libexec/
COPY --from=build /rootfs/usr/share/scan-* /usr/share/
COPY --from=build /rootfs/usr/share/man/man1/scan-build.1 /usr/share/man/man1/

FROM stagex/core-filesystem AS package-clang-libs
COPY --from=build /rootfs/usr/lib/libclang.so.* /usr/lib/

FROM stagex/core-filesystem AS package-clang-cpp-libs
COPY --from=build /rootfs/usr/lib/libclang-cpp.so.* /usr/lib/

FROM stagex/core-filesystem AS package-mlir
COPY --from=build /rootfs/usr/bin/mlir* /usr/bin/

FROM stagex/core-filesystem AS package-mlir-libs
COPY --from=build /rootfs/usr/lib/libMLIR*.so /usr/lib/
COPY --from=build /rootfs/usr/lib/libmlir*.so /usr/lib/

FROM stagex/core-filesystem AS package-mlir-devel
COPY --from=build /rootfs/usr/include/mlir* /usr/include/
COPY --from=build /rootfs/usr/lib/libMLIR*.so /usr/lib/
COPY --from=build /rootfs/usr/lib/libmlir*.so /usr/lib/
#COPY --from=build /rootfs/usr/lib/cmake/mlir /usr/lib/cmake/

FROM stagex/core-filesystem AS package-mlir-devel-static
COPY --from=build /rootfs/usr/lib/libMLIR*.a /usr/lib/

FROM stagex/core-filesystem AS package-libunwind
COPY --from=build /rootfs/usr/lib/libunwind.so.* /usr/lib/

FROM stagex/core-filesystem AS package-libunwind-devel
COPY --from=build /rootfs/usr/lib/libunwind.so /usr/lib/
COPY --from=build /rootfs/usr/include/*unwind* /usr/include/
COPY --from=build /rootfs/usr/include/mach-o /usr/include/

FROM stagex/core-filesystem AS package-libunwind-devel-static
COPY --from=build /rootfs/usr/lib/libunwind.a /usr/lib/

FROM stagex/core-filesystem AS package-libcxx
COPY --from=build /rootfs/usr/lib/libc++.so.* /usr/lib/

FROM stagex/core-filesystem AS package-libcxx-devel
COPY --from=build /rootfs/usr/lib/libc++.modules.json /usr/lib/
COPY --from=build /rootfs/usr/lib/libc++.so /usr/lib/
COPY --from=build /rootfs/usr/lib/libc++experimental.a /usr/lib/
COPY --from=build /rootfs/usr/include/c++ /usr/include/
COPY --from=build /rootfs/usr/share/libc++ /usr/share/

FROM stagex/core-filesystem AS package-libcxx-devel-static
COPY --from=build /rootfs/usr/lib/libc++.a /usr/lib/

FROM stagex/core-filesystem AS package-libcxxabi
COPY --from=build /rootfs/usr/lib/libc++abi.so.* /usr/lib/

FROM stagex/core-filesystem AS package-libcxxabi-devel
COPY --from=build /rootfs/usr/lib/libc++abi.so /usr/lib/
COPY --from=build /rootfs/usr/include/c++/v1/cxxabi.h /usr/include/c++/v1/
COPY --from=build /rootfs/usr/include/c++/v1/__cxxabi_config.h /usr/include/c++/v1/

FROM stagex/core-filesystem AS package-libcxxabi-devel-static
COPY --from=build /rootfs/usr/lib/libc++abi.a /usr/lib/

FROM stagex/core-filesystem AS package-llvm-libs
COPY --from=build /rootfs/usr/lib/libLLVM.so.* /usr/lib/
COPY --from=build /rootfs/usr/lib/libLLVM-*.so.* /usr/lib/

FROM stagex/core-filesystem AS package-lld
COPY --from=build /rootfs/usr/bin/*-ld* /usr/bin/
COPY --from=build /rootfs/usr/bin/ld /usr/bin/
COPY --from=build /rootfs/usr/bin/lld* /usr/bin/
COPY --from=build /rootfs/usr/bin/ld.lld* /usr/bin/
COPY --from=build /rootfs/usr/bin/ld64.lld* /usr/bin/

FROM stagex/core-filesystem AS package-lld-devel
COPY --from=build /rootfs/usr/include/lld /usr/include/
COPY --from=build /rootfs/usr/lib/cmake/lld /usr/lib/cmake/

FROM stagex/core-filesystem AS package-llvm-linker-tools
COPY --from=build /rootfs/usr/lib/libLTO.so.* /usr/lib/

FROM stagex/core-filesystem AS package-llvm-devel
COPY --from=build /rootfs/usr/include/ /usr/include/
COPY --from=build /rootfs/usr/lib/*.so /usr/lib/
COPY --from=build /rootfs/usr/lib/libRemarks.so.* /usr/lib/
COPY --from=build /rootfs/usr/lib/cmake /usr/lib/

FROM stagex/core-filesystem AS package-llvm-devel-static
COPY --from=build /rootfs/usr/lib/*.a /usr/lib/

FROM stagex/core-filesystem AS package-llvm-tools
COPY --from=build /rootfs/usr/bin/FileCheck /usr/bin/
COPY --from=build /rootfs/usr/bin/count /usr/bin/
COPY --from=build /rootfs/usr/bin/not /usr/bin/
COPY --from=build /rootfs/usr/bin/split-file /usr/bin/
COPY --from=build /rootfs/usr/bin/yaml-bench /usr/bin/
COPY --from=build /rootfs/usr/share/opt-viewer /usr/share/

FROM stagex/core-filesystem AS package-llvm-runtime
COPY --from=build /rootfs/usr/bin/lli /usr/bin/
Copied to clipboard!