From bfa1f8352687c5ec0fd4f2bc03465546fc21fc69 Mon Sep 17 00:00:00 2001 From: Mark Horvath Date: Thu, 15 May 2025 11:47:02 +0000 Subject: [PATCH] Fix getloadavg's error handling in google/benchmark --- benchmark/CMakeLists.txt | 2 ++ benchmark/patches/benchmark.patch | 22 ++++++++++++++++++++++ 2 files changed, 24 insertions(+) create mode 100644 benchmark/patches/benchmark.patch diff --git a/benchmark/CMakeLists.txt b/benchmark/CMakeLists.txt index ee9b776f7..c8092d86b 100644 --- a/benchmark/CMakeLists.txt +++ b/benchmark/CMakeLists.txt @@ -19,6 +19,8 @@ FetchContent_Declare( benchmark URL https://github.com/google/benchmark/archive/refs/tags/v1.9.2.tar.gz URL_HASH SHA256=409075176168dc46bbb81b74c1b4b6900385b5d16bfc181d678afb060d928bd3 + # Patch error handling of getloadavg + PATCH_COMMAND cd && patch --strip=1 --input=${CMAKE_CURRENT_SOURCE_DIR}/patches/benchmark.patch ) FetchContent_MakeAvailable(benchmark) diff --git a/benchmark/patches/benchmark.patch b/benchmark/patches/benchmark.patch new file mode 100644 index 000000000..f1c449bb1 --- /dev/null +++ b/benchmark/patches/benchmark.patch @@ -0,0 +1,22 @@ +// SPDX-FileCopyrightText: 2023 Arm Limited and/or its affiliates +// +// SPDX-License-Identifier: Apache-2.0 + +diff --git a/src/sysinfo.cc b/src/sysinfo.cc +index c938b36..bf2fee8 100644 +--- a/src/sysinfo.cc ++++ b/src/sysinfo.cc +@@ -850,11 +850,11 @@ std::vector GetLoadAvg() { + !(defined(__ANDROID__) && __ANDROID_API__ < 29) + static constexpr int kMaxSamples = 3; + std::vector res(kMaxSamples, 0.0); +- const size_t nelem = static_cast(getloadavg(res.data(), kMaxSamples)); ++ const auto nelem = getloadavg(res.data(), kMaxSamples); + if (nelem < 1) { + res.clear(); + } else { +- res.resize(nelem); ++ res.resize(static_cast(nelem)); + } + return res; + #else -- GitLab