Add Linux GCC floor test to Abseil GitHub Actions CI. Configures the remote-floor RBE platform and adds the Linux GCC/libstdc++ (floor) job to the GitHub Actions CI matrix using the oss-linux-floor and oss-linux-toolchain-floor Docker images. Also passes suffix.size() explicitly to substr() in absl::EndsWith to avoid a false-positive -Werror=stringop-overread warning under GCC 11 at -O2. PiperOrigin-RevId: 1001113554
diff --git a/.bazelrc b/.bazelrc index b1c92dd..c39ac4e 100644 --- a/.bazelrc +++ b/.bazelrc
@@ -77,6 +77,11 @@ build:remote --remote_executor=grpcs://us-east1-remotebuildexecution.googleapis.com build:remote --remote_instance_name=projects/google.com:absl-177019/instances/absl-ci-east +build:remote-floor --config=remote +build:remote-floor --extra_execution_platforms=//ci:rbe-floor +build:remote-floor --host_platform=//ci:rbe-floor +build:remote-floor --platforms=//ci:rbe-floor + build:remote-arm --config=remote-base build:remote-arm --extra_execution_platforms=//ci:rbe-arm build:remote-arm --host_platform=//ci:rbe-arm
diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 15f6c95..a761a51 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml
@@ -44,9 +44,8 @@ cancel-in-progress: ${{ contains(fromJSON('["pull_request", "workflow_dispatch", "schedule"]'), github.event_name) }} jobs: - # Mirrors the 10 Linux "latest" Bazel Kokoro jobs (parallelized to 1 job per - # Bazel invocation). Not yet covered here: - # - "Linux GCC/libstdc++ (floor) Bazel" (requires a floor GCC Docker image) + # Mirrors the 11 Linux Bazel Kokoro jobs (parallelized to 1 job per Bazel + # invocation). Not yet covered here: # - CMake, macOS, and Windows Kokoro jobs linux: name: Linux ${{ matrix.config.name }} Bazel @@ -87,18 +86,25 @@ - name: GCC/libstdc++ alternate options toolchain: gcc alternate_options: true + # linux_gcc-floor_libstdcxx_bazel.cfg (c++17 only) + - name: GCC/libstdc++ (floor) + toolchain: gcc + remote_config: remote-floor + container_image: gcr.io/google.com/absl-177019/oss-linux-toolchain-floor@sha256:f3d8a0f76a88d5edbba70250de47fb862271297b9ff41ff317240e564c95d65e + stds: '["c++17"]' # linux_arm_clang-latest_libcxx_bazel.cfg (c++17 and c++20 only) - name: ARM64 Clang/libc++ + os: ubuntu-24.04-arm toolchain: clang-arm - arch_suffix: -arm + remote_config: remote-arm stds: '["c++17", "c++20"]' uses: ./.github/workflows/bazel.yml secrets: inherit with: - os: ubuntu-24.04${{ matrix.config.arch_suffix }} + os: ${{ matrix.config.os || 'ubuntu-24.04' }} toolchain: ${{ matrix.config.toolchain }} - remote_config: remote${{ matrix.config.arch_suffix }} - container_image: gcr.io/google.com/absl-177019/oss-linux-toolchain-latest@sha256:8dfd8bff496cce2b3aaa5d2f1b63ebb6790f2bc78a02cdc0ca9898372fbc38f3 + remote_config: ${{ matrix.config.remote_config || 'remote' }} + container_image: ${{ matrix.config.container_image || 'gcr.io/google.com/absl-177019/oss-linux-toolchain-latest@sha256:8dfd8bff496cce2b3aaa5d2f1b63ebb6790f2bc78a02cdc0ca9898372fbc38f3' }} alternate_options: ${{ matrix.config.alternate_options || false }} stds: ${{ matrix.config.stds || '["c++17", "c++20", "c++23"]' }} compilation_modes: ${{ matrix.config.compilation_modes || '["opt", "fastbuild"]' }}
diff --git a/absl/strings/match.h b/absl/strings/match.h index 431d4f5..65bd8aa 100644 --- a/absl/strings/match.h +++ b/absl/strings/match.h
@@ -80,7 +80,8 @@ if (text.size() < suffix.size()) { return false; } - absl::string_view possible_match = text.substr(text.size() - suffix.size()); + absl::string_view possible_match = + text.substr(text.size() - suffix.size(), suffix.size()); return possible_match == suffix; } // StrContainsIgnoreCase()
diff --git a/ci/BUILD.bazel b/ci/BUILD.bazel index f8a7e58..d0e2b8f 100644 --- a/ci/BUILD.bazel +++ b/ci/BUILD.bazel
@@ -29,6 +29,20 @@ ) platform( + name = "rbe-floor", + constraint_values = [ + "@platforms//os:linux", + "@platforms//cpu:x86_64", + ], + exec_properties = { + "OSArch": "amd64", + "cache-silo-key": "n2-highcpu-2-2026-10-14", + "container-image": "docker://gcr.io/google.com/absl-177019/oss-linux-floor@sha256:81041c514c7ee412a5677afc652b9eb3a02e0f6dfe8d71164d80e6e39820b09d", + "dockerRunAsRoot": "true", + }, +) + +platform( name = "rbe-arm", constraint_values = [ "@platforms//os:linux",