diff --git a/Makefile b/Makefile index 0218dc8..e6281c6 100644 --- a/Makefile +++ b/Makefile @@ -243,6 +243,7 @@ llvm13.tgz: \ binutils.tgz \ cmake.tgz \ ninja.tgz \ + curl.tgz \ busybox.tgz \ musl.tgz $(call build,llvm,13.0.1) @@ -255,9 +256,12 @@ llvm.tgz: \ binutils.tgz \ cmake.tgz \ ninja.tgz \ + curl.tgz \ busybox.tgz \ musl.tgz $(call build,llvm) + $(BUILDER) tag $(REGISTRY)/llvm $(REGISTRY)/llvm:16 + $(BUILDER) tag $(REGISTRY)/llvm $(REGISTRY)/llvm:16.0.6 rust1.54.tgz: \ gcc.tgz \ @@ -319,23 +323,23 @@ rust1.67.tgz: rust1.66.tgz rust1.68.tgz: rust1.67.tgz $(call build,rust,1.68.0,package,--build-arg BUILD_VERSION=1.67.0) -rust1.69.tgz: rust1.68.tgz - $(call build,rust,1.69.0,package,--build-arg BUILD_VERSION=1.68.0) +rust1.69.tgz: rust1.68.tgz llvm.tgz + $(call build,rust,1.69.0,package,--build-arg BUILD_VERSION=1.68.0 --build-arg LLVM_VERSION=16) rust1.70.tgz: rust1.69.tgz - $(call build,rust,1.70.0,package,--build-arg BUILD_VERSION=1.69.0) + $(call build,rust,1.70.0,package,--build-arg BUILD_VERSION=1.69.0 --build-arg LLVM_VERSION=16) rust1.71.tgz: rust1.70.tgz - $(call build,rust,1.71.0,package,--build-arg BUILD_VERSION=1.70.0) + $(call build,rust,1.71.0,package,--build-arg BUILD_VERSION=1.70.0 --build-arg LLVM_VERSION=16) rust1.72.tgz: rust1.71.tgz - $(call build,rust,1.72.0,package,--build-arg BUILD_VERSION=1.71.0) + $(call build,rust,1.72.0,package,--build-arg BUILD_VERSION=1.71.0 --build-arg LLVM_VERSION=16) rust1.73.tgz: rust1.72.tgz - $(call build,rust,1.73.0,package,--build-arg BUILD_VERSION=1.72.0) + $(call build,rust,1.73.0,package,--build-arg BUILD_VERSION=1.72.0 --build-arg LLVM_VERSION=16) rust1.74.tgz: rust1.73.tgz - $(call build,rust,1.74.0,package,--build-arg BUILD_VERSION=1.73.0) + $(call build,rust,1.74.0,package,--build-arg BUILD_VERSION=1.73.0 --build-arg LLVM_VERSION=16) # Build package with chosen $(BUILDER) # Supported BUILDERs: docker diff --git a/llvm/Dockerfile b/llvm/Dockerfile index fb586c7..84e3625 100644 --- a/llvm/Dockerfile +++ b/llvm/Dockerfile @@ -1,5 +1,5 @@ ARG REGISTRY=local -FROM ${REGISTRY}/busybox as busybox +ARG VERSION=16.0.6 FROM ${REGISTRY}/gcc as gcc FROM ${REGISTRY}/binutils as binutils FROM ${REGISTRY}/musl as musl @@ -8,19 +8,14 @@ FROM ${REGISTRY}/python as python FROM ${REGISTRY}/py-setuptools as py-setuptools FROM ${REGISTRY}/cmake as cmake FROM ${REGISTRY}/ninja as ninja - -FROM busybox as build -ARG VERSION=16.0.6 +FROM ${REGISTRY}/curl as curl +FROM ${REGISTRY}/busybox as base +ARG VERSION +ENV VERSION=${VERSION} ENV SRC_VERSION=${VERSION} ENV SRC_SITE=https://github.com/llvm/llvm-project/releases/download ENV SRC_HASH_13_0_1=326335a830f2e32d06d0a36393b5455d17dc73e0bd1211065227ee014f92cbf8 ENV SRC_HASH_16_0_6=ce5e71081d17ce9e86d7cbcfa28c4b04b9300f8fb7e78422b1feb6bc52c3028e -RUN wget ${SRC_SITE}/llvmorg-${SRC_VERSION}/llvm-project-${SRC_VERSION}.src.tar.xz -RUN echo "$(printenv SRC_HASH_${VERSION//./_}) llvm-project-${SRC_VERSION}.src.tar.xz" | sha256sum -c -RUN tar -xf llvm-project-${SRC_VERSION}.src.tar.xz -WORKDIR llvm-project-${SRC_VERSION}.src -ADD . . -RUN patch -p1 < rust-feature-tables.patch COPY --from=binutils . / COPY --from=cmake . / COPY --from=ninja . / @@ -28,7 +23,17 @@ COPY --from=musl . / COPY --from=gcc . / COPY --from=python . / COPY --from=py-setuptools . / +COPY --from=curl . / +FROM base as fetch +RUN curl -LOJ ${SRC_SITE}/llvmorg-${SRC_VERSION}/llvm-project-${SRC_VERSION}.src.tar.xz +RUN echo "$(printenv SRC_HASH_${VERSION//./_}) llvm-project-${SRC_VERSION}.src.tar.xz" | sha256sum -c + +FROM fetch as build +RUN tar -xf llvm-project-${SRC_VERSION}.src.tar.xz +WORKDIR llvm-project-${SRC_VERSION}.src +ADD . . +RUN patch -p1 < rust-feature-tables.patch RUN set -eux; \ python -c "import setuptools; print(setuptools.__version__)"; \ cmake \ @@ -66,12 +71,10 @@ RUN set -eux; \ -DLLVM_USE_PERF=ON; \ cmake --build build; \ python3 llvm/utils/lit/setup.py build - RUN set -eux; \ export DESTDIR="/home/user/rootfs/"; \ cmake --install build; \ python3 llvm/utils/lit/setup.py install --root="$DESTDIR" - COPY --from=musl /lib/* /home/user/rootfs/lib/ COPY --from=gcc /usr/lib/* /home/user/rootfs/usr/lib/ COPY --from=gcc /usr/lib64/* /home/user/rootfs/usr/lib/