[llvm] Testing windows flaky lld link (PR #185246)

Aiden Grossman via llvm-commits llvm-commits at lists.llvm.org
Sat Mar 7 20:09:38 PST 2026


https://github.com/boomanaiden154 updated https://github.com/llvm/llvm-project/pull/185246

>From abae32d99d80edf33a09df7a10fd371f5ea92c72 Mon Sep 17 00:00:00 2001
From: Aiden Grossman <aidengrossman at google.com>
Date: Sat, 7 Mar 2026 20:31:48 +0000
Subject: [PATCH 1/4] [Bazel] Fixes 58efc42

Fixes 58efc42.
---
 .../lldb/source/Plugins/BUILD.bazel           | 27 +++----------------
 .../lldb/source/Plugins/plugin_config.bzl     |  2 +-
 2 files changed, 5 insertions(+), 24 deletions(-)

diff --git a/utils/bazel/llvm-project-overlay/lldb/source/Plugins/BUILD.bazel b/utils/bazel/llvm-project-overlay/lldb/source/Plugins/BUILD.bazel
index ca492d223d8e2..42729d83d7d7e 100644
--- a/utils/bazel/llvm-project-overlay/lldb/source/Plugins/BUILD.bazel
+++ b/utils/bazel/llvm-project-overlay/lldb/source/Plugins/BUILD.bazel
@@ -100,9 +100,13 @@ cc_library(
     hdrs = glob(["LanguageRuntime/CPlusPlus/*.h"]),
     includes = [".."],
     deps = [
+        ":PluginTypeSystemClangHeaders",
         "//clang:codegen",
         "//lldb:CoreHeaders",
+        "//lldb:DataFormattersHeaders",
+        "//lldb:ExpressionHeaders",
         "//lldb:Headers",
+        "//lldb:InterpreterHeaders",
         "//lldb:SymbolHeaders",
         "//lldb:TargetHeaders",
         "//lldb:Utility",
@@ -2338,29 +2342,6 @@ cc_library(
     ],
 )
 
-cc_library(
-    name = "PluginCXXItaniumABI",
-    srcs = glob(["LanguageRuntime/CPlusPlus/ItaniumABI/*.cpp"]),
-    hdrs = glob(["LanguageRuntime/CPlusPlus/ItaniumABI/*.h"]),
-    includes = [".."],
-    deps = [
-        ":PluginCPPRuntime",
-        ":PluginTypeSystemClang",
-        ":PluginTypeSystemClangHeaders",
-        "//lldb:Breakpoint",
-        "//lldb:Core",
-        "//lldb:DataFormattersHeaders",
-        "//lldb:ExpressionHeaders",
-        "//lldb:Headers",
-        "//lldb:InterpreterHeaders",
-        "//lldb:Symbol",
-        "//lldb:SymbolHeaders",
-        "//lldb:Target",
-        "//lldb:TargetHeaders",
-        "//lldb:Utility",
-    ],
-)
-
 cc_library(
     name = "PluginGNUstepObjCRuntime",
     srcs = glob(["LanguageRuntime/ObjC/GNUstepObjCRuntime/*.cpp"]),
diff --git a/utils/bazel/llvm-project-overlay/lldb/source/Plugins/plugin_config.bzl b/utils/bazel/llvm-project-overlay/lldb/source/Plugins/plugin_config.bzl
index 26b6a84e2138f..f7a20a248c89a 100644
--- a/utils/bazel/llvm-project-overlay/lldb/source/Plugins/plugin_config.bzl
+++ b/utils/bazel/llvm-project-overlay/lldb/source/Plugins/plugin_config.bzl
@@ -23,7 +23,7 @@ DEFAULT_PLUGINS = [
     "ArchitecturePPC64",
     "ClangREPL",
     "CPlusPlusLanguage",
-    "CXXItaniumABI",
+    "CPPRuntime",
     "DisassemblerLLVMC",
     "HighlighterClang",
     "HighlighterDefault",

>From 8cd9ad1c0990ff8b86e40bbd0cdd5eb3e1dc1d02 Mon Sep 17 00:00:00 2001
From: Aiden Grossman <aidengrossman at google.com>
Date: Sun, 8 Mar 2026 03:40:33 +0000
Subject: [PATCH 2/4] [DO NOT SUBMIT] Try to find flakiness in lld-link

---
 .github/workflows/premerge.yaml               | 226 +++---------------
 .../lldb/source/Plugins/BUILD.bazel           |  27 ++-
 .../lldb/source/Plugins/plugin_config.bzl     |   2 +-
 3 files changed, 61 insertions(+), 194 deletions(-)

diff --git a/.github/workflows/premerge.yaml b/.github/workflows/premerge.yaml
index 1795d5256750f..ccfd1595537e7 100644
--- a/.github/workflows/premerge.yaml
+++ b/.github/workflows/premerge.yaml
@@ -23,112 +23,41 @@ concurrency:
   cancel-in-progress: true
 
 jobs:
-  premerge-checks-linux:
-    name: Build and Test Linux${{ (startsWith(matrix.runs-on, 'depot-ubuntu-24.04-arm') && ' AArch64') || '' }}
-    if: >-
-        github.repository_owner == 'llvm' &&
-        (github.event_name != 'pull_request' || github.event.action != 'closed')
+  premerge-checks-windows:
+    name: Build and Test Windows ${{ matrix.index }}
     strategy:
-      fail-fast: false
       matrix:
-        runs-on:
-          - depot-ubuntu-24.04-arm-16
-          - llvm-premerge-linux-runners
-    runs-on: ${{ matrix.runs-on }}
-    container:
-      # The llvm-premerge agents are already containers and running the
-      # this same image, so we can't use a container for the github action
-      # job.  The depot containers are running on VMs, so we can use a
-      # container.  This helps ensure the build environment is as close
-      # as possible on both the depot runners and the llvm-premerge runners.
-      image: ${{ (startsWith(matrix.runs-on, 'depot-ubuntu-24.04-arm') && format('ghcr.io/{0}/arm64v8/ci-ubuntu-24.04',github.repository_owner) ) || null }}
-      # --privileged is needed to run the lldb tests that disable aslr.
-      # The SCCACHE environment variables are need to be copied from the host
-      # to the container to make sure it is configured correctly to use the
-      # depot cache.
-      options: >-
-         --privileged
-         --env SCCACHE_WEBDAV_ENDPOINT
-         --env SCCACHE_WEBDAV_TOKEN
-    defaults:
-      run:
-        # The run step defaults to using sh as the shell when running in a
-        # container, so make bash the default to ensure consistency between
-        # container and non-container jobs.
-        shell: bash
-    steps:
-      - name: Checkout LLVM
-        uses: actions/checkout at 8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
-        with:
-          fetch-depth: 2
-      - name: Build and Test
-        timeout-minutes: 120
-        env:
-          GITHUB_TOKEN: ${{ github.token }}
-          GITHUB_PR_NUMBER: ${{ github.event.pull_request.number }}
-        run: |
-          git config --global --add safe.directory '*'
-
-          source <(git diff --name-only HEAD~1...HEAD | python3 .ci/compute_projects.py)
-
-          if [[ "${projects_to_build}" == "" ]]; then
-            echo "No projects to build"
-            exit 0
-          fi
-
-          echo "Building projects: ${projects_to_build}"
-          echo "Running project checks targets: ${project_check_targets}"
-          echo "Building runtimes: ${runtimes_to_build}"
-          echo "Running runtimes checks targets: ${runtimes_check_targets}"
-          echo "Running runtimes checks requiring reconfiguring targets: ${runtimes_check_targets_needs_reconfig}"
-
-          export CC=/opt/llvm/bin/clang
-          export CXX=/opt/llvm/bin/clang++
-
-          # The linux-premerge runners are hosted on GCP and have a different
-          # cache setup than the depot runners.
-          if [[ "${{ matrix.runs-on }}" = "llvm-premerge-linux-runners" ]]; then
-            # This environment variable is passes into the container through the
-            # runner pod definition. This differs between our two clusters which
-            # why we do not hardcode it.
-            export SCCACHE_GCS_BUCKET=$CACHE_GCS_BUCKET
-            export SCCACHE_GCS_RW_MODE=READ_WRITE
-          fi
-          env
-
-          # Set the idle timeout to zero to ensure sccache runs for the
-          # entire duration of the job. Otherwise it might stop if we run
-          # several test suites in a row and discard statistics that we want
-          # to save in the end.
-          export SCCACHE_IDLE_TIMEOUT=0
-          mkdir artifacts
-          SCCACHE_LOG=info SCCACHE_ERROR_LOG=$(pwd)/artifacts/sccache.log sccache --start-server
-
-          ./.ci/monolithic-linux.sh "${projects_to_build}" "${project_check_targets}" "${runtimes_to_build}" "${runtimes_check_targets}" "${runtimes_check_targets_needs_reconfig}" "${enable_cir}"
-      - name: Upload Artifacts
-        # In some cases, Github will fail to upload the artifact. We want to
-        # continue anyways as a failed artifact upload is an infra failure, not
-        # a checks failure.
-        # https://github.com/actions/upload-artifact/issues/569
-        continue-on-error: true
-        if: '!cancelled()'
-        uses: actions/upload-artifact at b7c566a772e6b6bfb58ed0dc250532a479d7789f # v6.0.0
-        with:
-          name: Premerge Artifacts (Linux ${{ runner.arch }})
-          path: artifacts/
-          retention-days: 5
-          include-hidden-files: 'true'
-      - name: Upload Comment
-        uses: actions/upload-artifact at b7c566a772e6b6bfb58ed0dc250532a479d7789f # v6.0.0
-        if: ${{ always() && !startsWith(matrix.runs-on, 'depot-ubuntu-24.04-arm') }}
-        continue-on-error: true
-        with:
-          name: workflow-args-x86-linux
-          path: |
-            comments-Linux-x86_64
-
-  premerge-checks-windows:
-    name: Build and Test Windows
+        index:
+         - 1
+         - 2
+         - 3
+         - 4
+         - 5
+         - 6
+         - 7
+         - 8
+         - 9
+         - 10
+         - 11
+         - 12
+         - 13
+         - 14
+         - 15
+         - 16
+         - 17
+         - 18
+         - 19
+         - 20
+         - 21
+         - 22
+         - 23
+         - 24
+         - 25
+         - 26
+         - 27
+         - 28
+         - 29
+         - 30
     if: >-
         github.repository_owner == 'llvm' &&
         (github.event_name != 'pull_request' || github.event.action != 'closed')
@@ -144,21 +73,10 @@ jobs:
       - name: Compute Projects
         id: vars
         run: |
-          source <(git diff --name-only HEAD~1...HEAD | python .ci/compute_projects.py)
-
-          if [[ "${projects_to_build}" == "" ]]; then
-            echo "No projects to build"
-          fi
-
-          echo "Building projects: ${projects_to_build}"
-          echo "Running project checks targets: ${project_check_targets}"
-          echo "Building runtimes: ${runtimes_to_build}"
-          echo "Running runtimes checks targets: ${runtimes_check_targets}"
-
-          echo "windows-projects=${projects_to_build}" >> $GITHUB_OUTPUT
-          echo "windows-check-targets=${project_check_targets}" >> $GITHUB_OUTPUT
-          echo "windows-runtimes=${runtimes_to_build}" >> $GITHUB_OUTPUT
-          echo "windows-runtimes-check-targets=${runtimes_check_targets}" >> $GITHUB_OUTPUT
+          echo "windows-projects=clang;clang-tools-extra;lld;llvm;mlir;polly" >> $GITHUB_OUTPUT
+          echo "windows-check-targets=" >> $GITHUB_OUTPUT
+          echo "windows-runtimes=" >> $GITHUB_OUTPUT
+          echo "windows-runtimes-check-targets=" >> $GITHUB_OUTPUT
       - name: Build and Test
         timeout-minutes: 180
         if: ${{ steps.vars.outputs.windows-projects != '' }}
@@ -171,73 +89,3 @@ jobs:
           # See the comments above in the Linux job for why we define each of
           # these environment variables.
           bash -c "export SCCACHE_GCS_BUCKET=$CACHE_GCS_BUCKET; export SCCACHE_GCS_RW_MODE=READ_WRITE; export SCCACHE_IDLE_TIMEOUT=0; mkdir artifacts; SCCACHE_LOG=info SCCACHE_ERROR_LOG=$(pwd)/artifacts/sccache.log sccache --start-server; .ci/monolithic-windows.sh \"${{ steps.vars.outputs.windows-projects }}\" \"${{ steps.vars.outputs.windows-check-targets }}\" \"${{ steps.vars.outputs.windows-runtimes }}\" \"${{ steps.vars.outputs.windows-runtimes-check-targets }}\""
-      - name: Upload Artifacts
-        # In some cases, Github will fail to upload the artifact. We want to
-        # continue anyways as a failed artifact upload is an infra failure, not
-        # a checks failure.
-        # https://github.com/actions/upload-artifact/issues/569
-        continue-on-error: true
-        if: '!cancelled()'
-        uses: actions/upload-artifact at b7c566a772e6b6bfb58ed0dc250532a479d7789f # v6.0.0
-        with:
-          name: Premerge Artifacts (Windows)
-          path: artifacts/
-          retention-days: 5
-          include-hidden-files: 'true'
-      - name: Upload Comment
-        uses: actions/upload-artifact at b7c566a772e6b6bfb58ed0dc250532a479d7789f # v6.0.0
-        if: always()
-        continue-on-error: true
-        with:
-          name: workflow-args-windows
-          path: |
-            comments-Windows-AMD64
-
-  premerge-check-macos:
-    name: MacOS Premerge Checks
-    runs-on: macos-14
-    if: >-
-      github.repository_owner == 'llvm' &&
-      (startswith(github.ref_name, 'release/') ||
-       startswith(github.base_ref, 'release/')) &&
-      (github.event_name != 'pull_request' || github.event.action != 'closed')
-    steps:
-      - name: Checkout LLVM
-        uses: actions/checkout at 8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
-        with:
-          fetch-depth: 2
-      - name: Setup ccache
-        uses: hendrikmuhs/ccache-action at 5ebbd400eff9e74630f759d94ddd7b6c26299639 # v1.2.20
-        with:
-          max-size: "2000M"
-      - name: Install Ninja
-        run: |
-          brew install ninja
-      - name: Build and Test
-        run: |
-          source <(git diff --name-only HEAD~1...HEAD | python3 .ci/compute_projects.py)
-
-          if [[ "${projects_to_build}" == "" ]]; then
-            echo "No projects to build"
-            exit 0
-          fi
-
-          echo "Building projects: ${projects_to_build}"
-          echo "Running project checks targets: ${project_check_targets}"
-
-          # -DLLVM_DISABLE_ASSEMBLY_FILES=ON is for
-          # https://github.com/llvm/llvm-project/issues/81967
-          # Disable sharding in lit so that the LIT_XFAIL environment var works.
-          cmake -G Ninja \
-                -B build \
-                -S llvm \
-                -DLLVM_ENABLE_PROJECTS="${projects_to_build}" \
-                -DLLVM_DISABLE_ASSEMBLY_FILES=ON \
-                -DCMAKE_BUILD_TYPE=Release \
-                -DLLDB_INCLUDE_TESTS=OFF \
-                -DLLVM_ENABLE_ASSERTIONS=ON \
-                -DCMAKE_C_COMPILER_LAUNCHER=ccache \
-                -DCMAKE_CXX_COMPILER_LAUNCHER=ccache
-
-          # The libcxx tests fail, so we are skipping the runtime targets.
-          ninja -C build ${project_check_targets}
diff --git a/utils/bazel/llvm-project-overlay/lldb/source/Plugins/BUILD.bazel b/utils/bazel/llvm-project-overlay/lldb/source/Plugins/BUILD.bazel
index 42729d83d7d7e..ca492d223d8e2 100644
--- a/utils/bazel/llvm-project-overlay/lldb/source/Plugins/BUILD.bazel
+++ b/utils/bazel/llvm-project-overlay/lldb/source/Plugins/BUILD.bazel
@@ -100,13 +100,9 @@ cc_library(
     hdrs = glob(["LanguageRuntime/CPlusPlus/*.h"]),
     includes = [".."],
     deps = [
-        ":PluginTypeSystemClangHeaders",
         "//clang:codegen",
         "//lldb:CoreHeaders",
-        "//lldb:DataFormattersHeaders",
-        "//lldb:ExpressionHeaders",
         "//lldb:Headers",
-        "//lldb:InterpreterHeaders",
         "//lldb:SymbolHeaders",
         "//lldb:TargetHeaders",
         "//lldb:Utility",
@@ -2342,6 +2338,29 @@ cc_library(
     ],
 )
 
+cc_library(
+    name = "PluginCXXItaniumABI",
+    srcs = glob(["LanguageRuntime/CPlusPlus/ItaniumABI/*.cpp"]),
+    hdrs = glob(["LanguageRuntime/CPlusPlus/ItaniumABI/*.h"]),
+    includes = [".."],
+    deps = [
+        ":PluginCPPRuntime",
+        ":PluginTypeSystemClang",
+        ":PluginTypeSystemClangHeaders",
+        "//lldb:Breakpoint",
+        "//lldb:Core",
+        "//lldb:DataFormattersHeaders",
+        "//lldb:ExpressionHeaders",
+        "//lldb:Headers",
+        "//lldb:InterpreterHeaders",
+        "//lldb:Symbol",
+        "//lldb:SymbolHeaders",
+        "//lldb:Target",
+        "//lldb:TargetHeaders",
+        "//lldb:Utility",
+    ],
+)
+
 cc_library(
     name = "PluginGNUstepObjCRuntime",
     srcs = glob(["LanguageRuntime/ObjC/GNUstepObjCRuntime/*.cpp"]),
diff --git a/utils/bazel/llvm-project-overlay/lldb/source/Plugins/plugin_config.bzl b/utils/bazel/llvm-project-overlay/lldb/source/Plugins/plugin_config.bzl
index f7a20a248c89a..26b6a84e2138f 100644
--- a/utils/bazel/llvm-project-overlay/lldb/source/Plugins/plugin_config.bzl
+++ b/utils/bazel/llvm-project-overlay/lldb/source/Plugins/plugin_config.bzl
@@ -23,7 +23,7 @@ DEFAULT_PLUGINS = [
     "ArchitecturePPC64",
     "ClangREPL",
     "CPlusPlusLanguage",
-    "CPPRuntime",
+    "CXXItaniumABI",
     "DisassemblerLLVMC",
     "HighlighterClang",
     "HighlighterDefault",

>From d36bcc16aadc7a63c0948310c89cfffe8c57d01e Mon Sep 17 00:00:00 2001
From: Aiden Grossman <aidengrossman at google.com>
Date: Sun, 8 Mar 2026 03:51:25 +0000
Subject: [PATCH 3/4] test

---
 .github/workflows/premerge.yaml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/.github/workflows/premerge.yaml b/.github/workflows/premerge.yaml
index ccfd1595537e7..e352d43092f3a 100644
--- a/.github/workflows/premerge.yaml
+++ b/.github/workflows/premerge.yaml
@@ -74,7 +74,7 @@ jobs:
         id: vars
         run: |
           echo "windows-projects=clang;clang-tools-extra;lld;llvm;mlir;polly" >> $GITHUB_OUTPUT
-          echo "windows-check-targets=" >> $GITHUB_OUTPUT
+          echo "windows-check-targets=all llvm-test-depends clang-test-depends lld-test-depends" >> $GITHUB_OUTPUT
           echo "windows-runtimes=" >> $GITHUB_OUTPUT
           echo "windows-runtimes-check-targets=" >> $GITHUB_OUTPUT
       - name: Build and Test

>From 0beeb062e898688521a26a627be6932fb1003d5c Mon Sep 17 00:00:00 2001
From: Aiden Grossman <aidengrossman at google.com>
Date: Sun, 8 Mar 2026 04:09:26 +0000
Subject: [PATCH 4/4] more jobs

---
 .github/workflows/premerge.yaml | 34 +++++++++++++++++++++++++++++++++
 1 file changed, 34 insertions(+)

diff --git a/.github/workflows/premerge.yaml b/.github/workflows/premerge.yaml
index e352d43092f3a..793bb7df25781 100644
--- a/.github/workflows/premerge.yaml
+++ b/.github/workflows/premerge.yaml
@@ -58,6 +58,40 @@ jobs:
          - 28
          - 29
          - 30
+         - 31
+         - 32
+         - 33
+         - 34
+         - 35
+         - 36
+         - 37
+         - 38
+         - 39
+         - 40
+         - 41
+         - 42
+         - 43
+         - 44
+         - 45
+         - 46
+         - 47
+         - 48
+         - 49
+         - 50
+         - 51
+         - 52
+         - 53
+         - 54
+         - 55
+         - 56
+         - 57
+         - 58
+         - 59
+         - 60
+         - 61
+         - 62
+         - 63
+         - 64
     if: >-
         github.repository_owner == 'llvm' &&
         (github.event_name != 'pull_request' || github.event.action != 'closed')



More information about the llvm-commits mailing list