diff --git a/benchmark/CMakeLists.txt b/benchmark/CMakeLists.txt index ee9b776f79dd7444b0e989c3f506a0a808eed612..c8092d86bd4eab55b5cabf7a36014bd2c1f04f5e 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 0000000000000000000000000000000000000000..f1c449bb18f4e891c91623ac15415edb1a68dce5 --- /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