about summary refs log tree commit diff
path: root/src/ci/docker
diff options
context:
space:
mode:
authorbors <bors@rust-lang.org>2024-03-10 03:40:32 +0000
committerbors <bors@rust-lang.org>2024-03-10 03:40:32 +0000
commit5bc7b9ac8ace5312e1d2cdc2722715cf58d4f926 (patch)
tree9813cdd936afdc4cf445619c308bfcd91929f50a /src/ci/docker
parent768408af123a455fb27ad8af8055becd5b95d36f (diff)
parentc5c6729c88b6d00798f46d5c7397e854775d0923 (diff)
downloadrust-5bc7b9ac8ace5312e1d2cdc2722715cf58d4f926.tar.gz
rust-5bc7b9ac8ace5312e1d2cdc2722715cf58d4f926.zip
Auto merge of #122042 - GuillaumeGomez:subtree-update_cg_gcc_2024-03-05, r=MarkSimulacrum
Subtree update cg gcc 2024 03 05

Reopening of #121390.

r? `@ghost`
Diffstat (limited to 'src/ci/docker')
-rw-r--r--src/ci/docker/host-x86_64/dist-x86_64-linux/build-gccjit.sh29
-rw-r--r--src/ci/docker/host-x86_64/x86_64-gnu-llvm-16/Dockerfile11
-rw-r--r--src/ci/docker/host-x86_64/x86_64-gnu-llvm-17/Dockerfile13
-rw-r--r--src/ci/docker/host-x86_64/x86_64-gnu-tools/Dockerfile13
4 files changed, 59 insertions, 7 deletions
diff --git a/src/ci/docker/host-x86_64/dist-x86_64-linux/build-gccjit.sh b/src/ci/docker/host-x86_64/dist-x86_64-linux/build-gccjit.sh
new file mode 100644
index 00000000000..324dd5fac16
--- /dev/null
+++ b/src/ci/docker/host-x86_64/dist-x86_64-linux/build-gccjit.sh
@@ -0,0 +1,29 @@
+#!/bin/sh
+
+set -ex
+
+cd $1
+
+# Setting up folders for GCC
+git clone https://github.com/antoyo/gcc gcc-src
+cd gcc-src
+# This commit hash needs to be updated to use a more recent gcc fork version.
+git checkout 78dc50f0e50e6cd1433149520bd512a4e0eaa1bc
+
+mkdir ../gcc-build ../gcc-install
+cd ../gcc-build
+
+# Building GCC.
+../gcc-src/configure \
+    --enable-host-shared \
+    --enable-languages=jit \
+    --enable-checking=release \
+    --disable-bootstrap \
+    --disable-multilib \
+    --prefix=$(pwd)/../gcc-install
+make
+make install
+
+rm -rf ../gcc-src
+ln -s /scripts/gcc-install/lib/libgccjit.so /usr/lib/x86_64-linux-gnu/libgccjit.so
+ln -s /scripts/gcc-install/lib/libgccjit.so /usr/lib/x86_64-linux-gnu/libgccjit.so.0
diff --git a/src/ci/docker/host-x86_64/x86_64-gnu-llvm-16/Dockerfile b/src/ci/docker/host-x86_64/x86_64-gnu-llvm-16/Dockerfile
index f4850715e82..6540a500d3a 100644
--- a/src/ci/docker/host-x86_64/x86_64-gnu-llvm-16/Dockerfile
+++ b/src/ci/docker/host-x86_64/x86_64-gnu-llvm-16/Dockerfile
@@ -24,7 +24,12 @@ RUN apt-get update && apt-get install -y --no-install-recommends \
   xz-utils \
   nodejs \
   mingw-w64 \
-  libgccjit-12-dev \
+  # libgccjit dependencies
+  flex \
+  libmpfr-dev \
+  libgmp-dev \
+  libmpc3 \
+  libmpc-dev \
   && rm -rf /var/lib/apt/lists/*
 
 # Note: libgccjit needs to match the default gcc version for the linker to find it.
@@ -54,4 +59,8 @@ ENV RUST_CONFIGURE_ARGS \
 
 COPY host-x86_64/x86_64-gnu-llvm-16/script.sh /tmp/
 
+COPY host-x86_64/dist-x86_64-linux/build-gccjit.sh /scripts/
+
+RUN sh /scripts/build-gccjit.sh /scripts
+
 ENV SCRIPT /tmp/script.sh
diff --git a/src/ci/docker/host-x86_64/x86_64-gnu-llvm-17/Dockerfile b/src/ci/docker/host-x86_64/x86_64-gnu-llvm-17/Dockerfile
index 1eedfe3f09b..ed4e1978c5d 100644
--- a/src/ci/docker/host-x86_64/x86_64-gnu-llvm-17/Dockerfile
+++ b/src/ci/docker/host-x86_64/x86_64-gnu-llvm-17/Dockerfile
@@ -24,11 +24,14 @@ RUN apt-get update && apt-get install -y --no-install-recommends \
   xz-utils \
   nodejs \
   mingw-w64 \
-  libgccjit-13-dev \
+  # libgccjit dependencies
+  flex \
+  libmpfr-dev \
+  libgmp-dev \
+  libmpc3 \
+  libmpc-dev \
   && rm -rf /var/lib/apt/lists/*
 
-# Note: libgccjit needs to match the default gcc version for the linker to find it.
-
 # Install powershell (universal package) so we can test x.ps1 on Linux
 RUN curl -sL "https://github.com/PowerShell/PowerShell/releases/download/v7.3.1/powershell_7.3.1-1.deb_amd64.deb" > powershell.deb && \
     dpkg -i powershell.deb && \
@@ -55,4 +58,8 @@ ENV RUST_CONFIGURE_ARGS \
 
 COPY host-x86_64/x86_64-gnu-llvm-16/script.sh /tmp/
 
+COPY host-x86_64/dist-x86_64-linux/build-gccjit.sh /scripts/
+
+RUN sh /scripts/build-gccjit.sh /scripts
+
 ENV SCRIPT /tmp/script.sh
diff --git a/src/ci/docker/host-x86_64/x86_64-gnu-tools/Dockerfile b/src/ci/docker/host-x86_64/x86_64-gnu-tools/Dockerfile
index 82385ea15b7..a03577b4511 100644
--- a/src/ci/docker/host-x86_64/x86_64-gnu-tools/Dockerfile
+++ b/src/ci/docker/host-x86_64/x86_64-gnu-tools/Dockerfile
@@ -15,7 +15,6 @@ RUN apt-get update && apt-get install -y --no-install-recommends \
   sudo \
   xz-utils \
   tidy \
-  libgccjit-12-dev \
   \
 # Install dependencies for chromium browser
   gconf-service \
@@ -57,13 +56,17 @@ RUN apt-get update && apt-get install -y --no-install-recommends \
   lsb-release \
   xdg-utils \
   wget \
+  # libgccjit dependencies
+  flex \
+  libmpfr-dev \
+  libgmp-dev \
+  libmpc3 \
+  libmpc-dev \
   && rm -rf /var/lib/apt/lists/*
 
 COPY scripts/sccache.sh /scripts/
 RUN sh /scripts/sccache.sh
 
-# Make `libgccjit.so` accessible.
-RUN ln -s /usr/lib/gcc/x86_64-linux-gnu/12/libgccjit.so /usr/lib/x86_64-linux-gnu/libgccjit.so
 # Fix rustc_codegen_gcc lto issues.
 ENV GCC_EXEC_PREFIX="/usr/lib/gcc/"
 
@@ -92,6 +95,10 @@ ENV RUST_CONFIGURE_ARGS \
 
 ENV HOST_TARGET x86_64-unknown-linux-gnu
 
+COPY host-x86_64/dist-x86_64-linux/build-gccjit.sh /scripts/
+
+RUN sh /scripts/build-gccjit.sh /scripts
+
 ENV SCRIPT /tmp/checktools.sh ../x.py && \
   NODE_PATH=`npm root -g` python3 ../x.py test tests/rustdoc-gui --stage 2 \
     --test-args "'--no-sandbox --jobs 1'"