diff --git a/packages/gcc/Containerfile b/packages/gcc/Containerfile index 08c2990..e2c88ad 100644 --- a/packages/gcc/Containerfile +++ b/packages/gcc/Containerfile @@ -1,8 +1,8 @@ FROM scratch as base -ENV VERSION 12.2.0 +ENV VERSION 13.1.0 ENV SRC_FILE gcc-$VERSION.tar.xz ENV SRC_SITE https://mirrors.kernel.org/gnu/gcc/gcc-${VERSION}/${SRC_FILE} -ENV SRC_HASH e549cf9cf3594a00e27b6589d4322d70e0720cdd213f39beb4181e06926230ff +ENV SRC_HASH 61d684f0aa5e76ac6585ad8898a2427aade8979ed5e7f85492286c4dfc13ee86 ENV DEP_SITE https://gcc.gnu.org/pub/gcc/infrastructure/ ENV GMP_FILE gmp-6.2.1.tar.bz2 ENV GMP_HASH eae9326beb4158c386e39a356818031bd28f3124cf915f8c5b1dc4c7a36b4d7c diff --git a/packages/llvm13/Containerfile b/packages/llvm13/Containerfile index c47d32a..066a4eb 100644 --- a/packages/llvm13/Containerfile +++ b/packages/llvm13/Containerfile @@ -23,6 +23,8 @@ WORKDIR llvm-project-${VERSION}.src ADD *.patch . RUN --network=none <<-EOF set -eux + patch -p1 < gcc-13-base64.patch + patch -p1 < gcc-13-signals.patch python -c "import setuptools; print(setuptools.__version__)" cmake \ -B build \ diff --git a/packages/llvm13/gcc-13-base64.patch b/packages/llvm13/gcc-13-base64.patch new file mode 100644 index 0000000..4d80c73 --- /dev/null +++ b/packages/llvm13/gcc-13-base64.patch @@ -0,0 +1,29 @@ +From 5e9be93566f39ee6cecd579401e453eccfbe81e5 Mon Sep 17 00:00:00 2001 +From: Sergei Trofimovich +Date: Mon, 23 May 2022 08:39:48 +0100 +Subject: [PATCH] [Support] Add missing header to Base64.h + +Without the change llvm build fails on this week's gcc-13 snapshot as: + + [ 91%] Building CXX object unittests/Support/CMakeFiles/SupportTests.dir/Base64Test.cpp.o + In file included from llvm/unittests/Support/Base64Test.cpp:14: + llvm/include/llvm/Support/Base64.h: In function 'std::string llvm::encodeBase64(const InputBytes&)': + llvm/include/llvm/Support/Base64.h:29:5: error: 'uint32_t' was not declared in this scope + 29 | uint32_t x = ((unsigned char)Bytes[i] << 16) | + | ^~~~~~~~ +--- + llvm/include/llvm/Support/Base64.h | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/llvm/include/llvm/Support/Base64.h b/llvm/include/llvm/Support/Base64.h +index 62064a35aa3448..da4ae1688574f9 100644 +--- a/llvm/include/llvm/Support/Base64.h ++++ b/llvm/include/llvm/Support/Base64.h +@@ -13,6 +13,7 @@ + #ifndef LLVM_SUPPORT_BASE64_H + #define LLVM_SUPPORT_BASE64_H + ++#include + #include + + namespace llvm { diff --git a/packages/llvm13/gcc-13-signals.patch b/packages/llvm13/gcc-13-signals.patch new file mode 100644 index 0000000..6895221 --- /dev/null +++ b/packages/llvm13/gcc-13-signals.patch @@ -0,0 +1,28 @@ +From ff1681ddb303223973653f7f5f3f3435b48a1983 Mon Sep 17 00:00:00 2001 +From: Sergei Trofimovich +Date: Mon, 23 May 2022 08:03:23 +0100 +Subject: [PATCH] [Support] Add missing header to Signals.h + +Without the change llvm build fails on this week's gcc-13 snapshot as: + + [ 0%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/Signals.cpp.o + In file included from llvm/lib/Support/Signals.cpp:14: + llvm/include/llvm/Support/Signals.h:119:8: error: variable or field 'CleanupOnSignal' declared void + 119 | void CleanupOnSignal(uintptr_t Context); + | ^~~~~~~~~~~~~~~ +--- + llvm/include/llvm/Support/Signals.h | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/llvm/include/llvm/Support/Signals.h b/llvm/include/llvm/Support/Signals.h +index 44f5a750ff5cb0..937e0572d4a725 100644 +--- a/llvm/include/llvm/Support/Signals.h ++++ b/llvm/include/llvm/Support/Signals.h +@@ -14,6 +14,7 @@ + #ifndef LLVM_SUPPORT_SIGNALS_H + #define LLVM_SUPPORT_SIGNALS_H + ++#include + #include + + namespace llvm { diff --git a/packages/rust/Containerfile b/packages/rust/Containerfile index 0c02f46..b6ff763 100644 --- a/packages/rust/Containerfile +++ b/packages/rust/Containerfile @@ -73,6 +73,7 @@ COPY --from=stagex/musl . / FROM build-base as build-mrustc COPY --from=stagex/llvm13 . / +ADD gcc_version.patch . RUN tar -xzf ${MRUSTC_SRC_FILE} RUN mv lrvick-mrustc-* mrustc ENV MRUSTC_TARGET_VER=1.54 @@ -86,6 +87,7 @@ RUN <<-EOF set -eux cp rustc-1.54.0-src.tar.gz mrustc cd mrustc + patch -p1 < ../gcc_version.patch tar -xzf rustc-1.54.0-src.tar.gz cd rustc-1.54.0-src patch -p0 < ../rustc-1.54.0-src.patch diff --git a/packages/rust/gcc_version.patch b/packages/rust/gcc_version.patch new file mode 100644 index 0000000..37baecc --- /dev/null +++ b/packages/rust/gcc_version.patch @@ -0,0 +1,31 @@ +diff --git a/run_rustc/Makefile b/run_rustc/Makefile +index 996bf346c17b..7eca3f102be2 100644 +--- a/run_rustc/Makefile ++++ b/run_rustc/Makefile +@@ -163,7 +163,7 @@ $(LIBDIR_S)libstd.rlib: $(BINDIR_S)rustc $(MINICARGO) Makefile + mkdir -p $(LIBDIR_S) + #HACK - figure out how to inject these as search paths + cp /usr/lib/*.o /usr/lib/*.a $(LIBDIR_S) +- cp /usr/lib/gcc/x86_64-linux-musl/12.2.0/*.o $(LIBDIR_S) ++ cp /usr/lib/gcc/x86_64-linux-musl/13.1.0/*.o $(LIBDIR_S) + $V+MRUSTC_PATH=$(abspath $(BINDIR_S)rustc) $(MINICARGO) --vendor-dir $(VENDOR_DIR) --script-overrides ../script-overrides/stable-$(RUSTC_VERSION)-$(PLATFORM)/ --output-dir $(LIBDIR_S) $(RUST_SRC_LIBS)std + $V+MRUSTC_PATH=$(abspath $(BINDIR_S)rustc) $(MINICARGO) --vendor-dir $(VENDOR_DIR) --script-overrides ../script-overrides/stable-$(RUSTC_VERSION)-$(PLATFORM)/ --output-dir $(LIBDIR_S) $(RUST_SRC_LIBS)panic_unwind + $V+MRUSTC_PATH=$(abspath $(BINDIR_S)rustc) $(MINICARGO) --vendor-dir $(VENDOR_DIR) --script-overrides ../script-overrides/stable-$(RUSTC_VERSION)-$(PLATFORM)/ --output-dir $(LIBDIR_S) $(RUST_SRC_LIBS)test +@@ -182,7 +182,7 @@ $(LIBDIR_2)libtest.rlib: $(LIBDIR_S)libstd.rlib $(BINDIR_2)rustc $(BINDIR_S)rust + @mkdir -p $(LIBDIR_2) + #HACK - figure out how to inject these as search paths + cp /usr/lib/*.o /usr/lib/*.a $(LIBDIR_2) +- cp /usr/lib/gcc/x86_64-linux-musl/12.2.0/*.o $(LIBDIR_2) ++ cp /usr/lib/gcc/x86_64-linux-musl/13.1.0/*.o $(LIBDIR_2) + @echo [CARGO] $(RUST_SRC_LIBS)test/Cargo.toml '>' $(OUTDIR)build-std2 + ifeq ($(TARGETVER_LEAST_1_39),) + $V$(CARGO_ENV_STAGE2_STD) $(BINDIR)cargo build $(CARGO_FLAGS) --manifest-path $(RUST_SRC_LIBS)std/Cargo.toml --features panic-unwind +@@ -220,7 +220,7 @@ endif + @mkdir -p $(LIBDIR) + #HACK - figure out how to inject these as search paths + cp /usr/lib/*.o /usr/lib/*.a $(LIBDIR) +- cp /usr/lib/gcc/x86_64-linux-musl/12.2.0/*.o $(LIBDIR) ++ cp /usr/lib/gcc/x86_64-linux-musl/13.1.0/*.o $(LIBDIR) + $Vcp $(LIBDIR_2)*.$(DYLIB_EXT) $(PREFIX)lib + $Vcp $(CARGO_OUTDIR_RUSTC)deps/*.rlib $(LIBDIR) + $Vcp $(CARGO_OUTDIR_RUSTC)deps/*.$(DYLIB_EXT) $(LIBDIR)