Skip to content

[libc++][CI] Adds GCC trunk image. #132271

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 3 commits into from
Mar 22, 2025

Conversation

mordante
Copy link
Member

As discussed during the last monthly meeting we want to be able to test the GCC development version in our CI, but we don't want to commit to support this compiler version.

This adds the image to the CI Docker image. At the moment GCC-15 will not pass the CI. Having it in the Docker image makes it possible to validate fixes.

As discussed during the last monthly meeting we want to be able to test
the GCC development version in our CI, but we don't want to commit to
support this compiler version.

This adds the image to the CI Docker image. At the moment GCC-15 will
not pass the CI. Having it in the Docker image makes it possible to
validate fixes.
@mordante mordante requested a review from a team as a code owner March 20, 2025 18:29
@llvmbot llvmbot added the libc++ libc++ C++ Standard Library. Not GNU libstdc++. Not libc++abi. label Mar 20, 2025
@llvmbot
Copy link
Member

llvmbot commented Mar 20, 2025

@llvm/pr-subscribers-libcxx

Author: Mark de Wever (mordante)

Changes

As discussed during the last monthly meeting we want to be able to test the GCC development version in our CI, but we don't want to commit to support this compiler version.

This adds the image to the CI Docker image. At the moment GCC-15 will not pass the CI. Having it in the Docker image makes it possible to validate fixes.


Full diff: https://github.com/llvm/llvm-project/pull/132271.diff

2 Files Affected:

  • (modified) libcxx/utils/ci/Dockerfile (+14-8)
  • (modified) libcxx/utils/ci/docker-compose.yml (+1-1)
diff --git a/libcxx/utils/ci/Dockerfile b/libcxx/utils/ci/Dockerfile
index bd41f288686a4..42e29b301412d 100644
--- a/libcxx/utils/ci/Dockerfile
+++ b/libcxx/utils/ci/Dockerfile
@@ -48,8 +48,8 @@ FROM $BASE_IMAGE AS builder-base
 ENV DEBIAN_FRONTEND=noninteractive
 
 # populated in the docker-compose file
-ARG GCC_LATEST_VERSION
-ENV GCC_LATEST_VERSION=${GCC_LATEST_VERSION}
+ARG GCC_HEAD_VERSION
+ENV GCC_HEAD_VERSION=${GCC_HEAD_VERSION}
 
 # populated in the docker-compose file
 ARG LLVM_HEAD_VERSION
@@ -147,12 +147,18 @@ RUN <<EOF
   set -e
   sudo git clone https://github.com/compiler-explorer/infra.git /tmp/ce-infra
   (cd /tmp/ce-infra && sudo make ce)
-  sudo /tmp/ce-infra/bin/ce_install install compilers/c++/x86/gcc $GCC_LATEST_VERSION.1.0
-  sudo /tmp/ce-infra/bin/ce_install install compilers/c++/x86/gcc $((GCC_LATEST_VERSION - 1)).1.0
-  sudo ln -s /opt/compiler-explorer/gcc-$GCC_LATEST_VERSION.1.0/bin/gcc /usr/bin/gcc-$GCC_LATEST_VERSION
-  sudo ln -s /opt/compiler-explorer/gcc-$GCC_LATEST_VERSION.1.0/bin/g++ /usr/bin/g++-$GCC_LATEST_VERSION
-  sudo ln -s /opt/compiler-explorer/gcc-$((GCC_LATEST_VERSION - 1)).1.0/bin/gcc /usr/bin/gcc-$((GCC_LATEST_VERSION - 1))
-  sudo ln -s /opt/compiler-explorer/gcc-$((GCC_LATEST_VERSION - 1)).1.0/bin/g++ /usr/bin/g++-$((GCC_LATEST_VERSION - 1))
+  # Current ToT, we do not quarantee any support in our support matrix.
+  sudo /tmp/ce-infra/bin/ce_install --enable nightly install compilers/c++/nightly/gcc trunk
+  sudo ln -s /opt/compiler-explorer/gcc-snapshot/bin/gcc /usr/bin/gcc-$GCC_HEAD_VERSION
+  sudo ln -s /opt/compiler-explorer/gcc-snapshot/bin/g++ /usr/bin/g++-$GCC_HEAD_VERSION
+  # The latest release.
+  sudo /tmp/ce-infra/bin/ce_install install compilers/c++/x86/gcc $((GCC_HEAD_VERSION - 1)).1.0
+  sudo ln -s /opt/compiler-explorer/gcc-$((GCC_HEAD_VERSION - 1)).1.0/bin/gcc /usr/bin/gcc-$((GCC_HEAD_VERSION - 1))
+  sudo ln -s /opt/compiler-explorer/gcc-$((GCC_HEAD_VERSION - 1)).1.0/bin/g++ /usr/bin/g++-$((GCC_HEAD_VERSION - 1))
+  # For CI transistions.
+  sudo /tmp/ce-infra/bin/ce_install install compilers/c++/x86/gcc $((GCC_HEAD_VERSION - 2)).1.0
+  sudo ln -s /opt/compiler-explorer/gcc-$((GCC_HEAD_VERSION - 2)).1.0/bin/gcc /usr/bin/gcc-$((GCC_HEAD_VERSION - 2))
+  sudo ln -s /opt/compiler-explorer/gcc-$((GCC_HEAD_VERSION - 2)).1.0/bin/g++ /usr/bin/g++-$((GCC_HEAD_VERSION - 2))
   sudo rm -rf /tmp/ce-infra
 EOF
 
diff --git a/libcxx/utils/ci/docker-compose.yml b/libcxx/utils/ci/docker-compose.yml
index 68e89db5cf452..7e380cd34f47c 100644
--- a/libcxx/utils/ci/docker-compose.yml
+++ b/libcxx/utils/ci/docker-compose.yml
@@ -1,5 +1,5 @@
 x-versions: &compiler_versions
-  GCC_LATEST_VERSION: 14
+  GCC_HEAD_VERSION: 15
   LLVM_HEAD_VERSION: 21
 
 services:

@mordante mordante merged commit dd97324 into llvm:main Mar 22, 2025
12 of 19 checks passed
@mordante mordante deleted the review/add_gcc_trunk_to_docker branch March 22, 2025 10:36
mordante added a commit to mordante/llvm-project that referenced this pull request Mar 22, 2025
mordante added a commit that referenced this pull request May 4, 2025
This image was updated in #132271.
Due to issues with upstream packages, it uses #134497 instead.
IanWood1 pushed a commit to IanWood1/llvm-project that referenced this pull request May 6, 2025
This image was updated in llvm#132271.
Due to issues with upstream packages, it uses llvm#134497 instead.
IanWood1 pushed a commit to IanWood1/llvm-project that referenced this pull request May 6, 2025
This image was updated in llvm#132271.
Due to issues with upstream packages, it uses llvm#134497 instead.
IanWood1 pushed a commit to IanWood1/llvm-project that referenced this pull request May 6, 2025
This image was updated in llvm#132271.
Due to issues with upstream packages, it uses llvm#134497 instead.
GeorgeARM pushed a commit to GeorgeARM/llvm-project that referenced this pull request May 7, 2025
This image was updated in llvm#132271.
Due to issues with upstream packages, it uses llvm#134497 instead.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
libc++ libc++ C++ Standard Library. Not GNU libstdc++. Not libc++abi.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants