dev-cpp/benchmark: drop 1.8.3-r1

Signed-off-by: Mattéo Rossillol‑‑Laruelle <beatussum@protonmail.com>
Closes: https://github.com/gentoo/gentoo/pull/38215
Signed-off-by: Joonas Niilola <juippis@gentoo.org>
This commit is contained in:
Mattéo Rossillol‑‑Laruelle
2024-08-20 09:15:57 +02:00
committed by Joonas Niilola
parent 5569d64c12
commit 84a975f3b7
5 changed files with 0 additions and 243 deletions

View File

@@ -1,3 +1,2 @@
DIST benchmark-1.8.3.tar.gz 250206 BLAKE2B 14b4af17184a88378314d11623b73c27368999fcff6e50986407a08739fdf388cdcbd140471b629cd2a9948f81073796f8a6c38d015be8413b7e4d4759715f97 SHA512 4e12114251c79a426873cfba6e27270b69fc980cef9a68e9cb3170f8e2e203f77dee19ab1e65cad51cd67e60991d3bbfdd52553f22522ce5e6c611b5aa07602c
DIST benchmark-1.8.4.tar.gz 253916 BLAKE2B 78a290a5013d8371e87b7c918e518e3ec0e8247e25e211d160ab8dea51d8871d8dac54ee91ee0c512af86a60d1f4e9baedadc20d4a7fa28ef790411fda0399c8 SHA512 835d12b88fe52309ce6b2ffbc8b3c178ac594be7d249b5daca0373d1d03ec83ea3c7b94224f67f22d21919376985867eeff0d1c0721501cfd8a9e9b8a9c48882
DIST benchmark-1.9.0.tar.gz 253961 BLAKE2B fdac0018435622e3ee2c1cde02c8140a15f2579b9059d1592b588033e6935bd8d54c874f4ea912696e8e1d5f7eebae30ba849f77cc3f74f006b4b03c712685ed SHA512 0e91e0e5a2222d7650fd8bd9cafb2f0e7c1689cd1b87b2cc529c738db12bfef31162aa5a4da78f7b0aa7f0101dc08b626802c58d39862458f82f9fea9316ca25

View File

@@ -1,39 +0,0 @@
# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
inherit cmake flag-o-matic
DESCRIPTION="A microbenchmark support library"
HOMEPAGE="https://github.com/google/benchmark"
SRC_URI="https://github.com/google/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz"
LICENSE="Apache-2.0"
SLOT="0"
KEYWORDS="amd64 ~arm arm64 ~hppa ~loong ppc ppc64 ~riscv x86"
IUSE="debug doc test"
RESTRICT="!test? ( test )"
BDEPEND="doc? ( app-text/doxygen )
test? ( >=dev-cpp/gtest-1.11.0 )"
PATCHES=(
"${FILESDIR}/${PN}-1.8.3-fix-32bit-test.patch"
"${FILESDIR}/${PN}-1.8.3-backport-pr1753.patch"
"${FILESDIR}/${PN}-1.8.3-backport-pr1756.patch"
)
src_configure() {
local mycmakeargs=(
-DBENCHMARK_ENABLE_ASSEMBLY_TESTS=OFF
-DBENCHMARK_ENABLE_DOXYGEN=$(usex doc)
-DBENCHMARK_ENABLE_GTEST_TESTS=$(usex test)
-DBENCHMARK_ENABLE_TESTING=$(usex test)
-DBENCHMARK_ENABLE_WERROR=OFF
-DBENCHMARK_USE_BUNDLED_GTEST=OFF
)
use debug || append-cppflags -DNDEBUG
cmake_src_configure
}

View File

@@ -1,94 +0,0 @@
https://bugs.gentoo.org/922877
https://github.com/google/benchmark/pull/1753
From cdd4a6d48077a78d07e3b7f165383f6d5052108c Mon Sep 17 00:00:00 2001
From: Sam James <sam@gentoo.org>
Date: Fri, 2 Feb 2024 21:38:11 -0500
Subject: [PATCH 1/3] CycleClock: Add support for Alpha architecture
As documented, the real cycle counter is unsafe to use here, because it
is a 32-bit integer which wraps every ~4s. Use gettimeofday instead,
which has a limitation of a low-precision real-time-clock (~1ms), but no
wrapping. Passes test suite.
Signed-off-by: Sam James <sam@gentoo.org>
---
src/cycleclock.h | 9 +++++++++
1 file changed, 9 insertions(+)
diff --git a/src/cycleclock.h b/src/cycleclock.h
index 931bba146..eff563e7f 100644
--- a/src/cycleclock.h
+++ b/src/cycleclock.h
@@ -218,6 +218,15 @@ inline BENCHMARK_ALWAYS_INLINE int64_t Now() {
uint64_t pcycle;
asm volatile("%0 = C15:14" : "=r"(pcycle));
return static_cast<double>(pcycle);
+#elif defined(__alpha__)
+ // Alpha has a cycle counter, the PCC register, but it is an unsigned 32-bit
+ // integer and thus wraps every ~4s, making using it for tick counts
+ // unreliable beyond this time range. The real-time clock is low-precision,
+ // roughtly ~1ms, but it is the only option that can reasonable count
+ // indefinitely.
+ struct timeval tv;
+ gettimeofday(&tv, nullptr);
+ return static_cast<int64_t>(tv.tv_sec) * 1000000 + tv.tv_usec;
#else
// The soft failover to a generic implementation is automatic only for ARM.
// For other platforms the developer is expected to make an attempt to create
From b1bec2fa5aed335b5be78720a9812cf27baf9df6 Mon Sep 17 00:00:00 2001
From: Sam James <sam@gentoo.org>
Date: Fri, 2 Feb 2024 21:46:06 -0500
Subject: [PATCH 2/3] sysinfo: support parsing /proc/cpuinfo on Alpha
And also, bail out if unable to parse /proc/cpuinfo. This will
preemptively alert users on platforms that need custom code for parsing
/proc/cpuinfo.
Signed-off-by: Sam James <sam@gentoo.org>
---
src/sysinfo.cc | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/src/sysinfo.cc b/src/sysinfo.cc
index 04d64dc5b..786bb1b41 100644
--- a/src/sysinfo.cc
+++ b/src/sysinfo.cc
@@ -513,7 +513,11 @@ int GetNumCPUs() {
std::cerr << "failed to open /proc/cpuinfo\n";
return -1;
}
+#if defined(__alpha__)
+ const std::string Key = "cpus detected";
+#else
const std::string Key = "processor";
+#endif
std::string ln;
while (std::getline(f, ln)) {
if (ln.empty()) continue;
From 17f2f35e1ce650b4f8596a5c5df6a050588136c5 Mon Sep 17 00:00:00 2001
From: Sam James <sam@gentoo.org>
Date: Fri, 2 Feb 2024 21:49:24 -0500
Subject: [PATCH 3/3] tabular_test: add a missing DoNotOptimize call
Signed-off-by: Sam James <sam@gentoo.org>
---
test/user_counters_tabular_test.cc | 3 +++
1 file changed, 3 insertions(+)
diff --git a/test/user_counters_tabular_test.cc b/test/user_counters_tabular_test.cc
index 3e8fb1bf0..ffd3c0992 100644
--- a/test/user_counters_tabular_test.cc
+++ b/test/user_counters_tabular_test.cc
@@ -63,6 +63,9 @@ ADD_CASES(TC_CSVOut, {{"%csv_header,"
void BM_Counters_Tabular(benchmark::State& state) {
for (auto _ : state) {
+ // This test requires a non-zero CPU time to avoid divide-by-zero
+ auto iterations = state.iterations();
+ benchmark::DoNotOptimize(iterations);
}
namespace bm = benchmark;
state.counters.insert({

View File

@@ -1,89 +0,0 @@
https://bugs.gentoo.org/922877
https://github.com/google/benchmark/pull/1756
From 3805709f137766c99922f647af9b97d49d14e772 Mon Sep 17 00:00:00 2001
From: Sam James <sam@gentoo.org>
Date: Tue, 13 Feb 2024 20:23:20 -0500
Subject: [PATCH] sysinfo.cc: Always abort on GetNumCPUs failure
Defines a wrapper function, CheckNumCPUs, which enforces that GetNumCPUs
never returns fewer than one CPU. There is no reasonable way to
continue if we are unable to identify the number of CPUs.
Signed-off-by: Sam James <sam@gentoo.org>
---
src/sysinfo.cc | 28 +++++++++++++++++-----------
1 file changed, 17 insertions(+), 11 deletions(-)
diff --git a/src/sysinfo.cc b/src/sysinfo.cc
index 786bb1b41..daeb98b02 100644
--- a/src/sysinfo.cc
+++ b/src/sysinfo.cc
@@ -474,12 +474,11 @@ std::string GetSystemName() {
#endif // Catch-all POSIX block.
}
-int GetNumCPUs() {
+int GetNumCPUsImpl() {
#ifdef BENCHMARK_HAS_SYSCTL
int num_cpu = -1;
if (GetSysctl("hw.ncpu", &num_cpu)) return num_cpu;
- fprintf(stderr, "Err: %s\n", strerror(errno));
- std::exit(EXIT_FAILURE);
+ PrintErrorAndDie("Err: ", strerror(errno));
#elif defined(BENCHMARK_OS_WINDOWS)
SYSTEM_INFO sysinfo;
// Use memset as opposed to = {} to avoid GCC missing initializer false
@@ -493,8 +492,8 @@ int GetNumCPUs() {
// Returns -1 in case of a failure.
long num_cpu = sysconf(_SC_NPROCESSORS_ONLN);
if (num_cpu < 0) {
- fprintf(stderr, "sysconf(_SC_NPROCESSORS_ONLN) failed with error: %s\n",
- strerror(errno));
+ PrintErrorAndDie("sysconf(_SC_NPROCESSORS_ONLN) failed with error: ",
+ strerror(errno));
}
return (int)num_cpu;
#elif defined(BENCHMARK_OS_QNX)
@@ -510,8 +509,7 @@ int GetNumCPUs() {
int max_id = -1;
std::ifstream f("/proc/cpuinfo");
if (!f.is_open()) {
- std::cerr << "failed to open /proc/cpuinfo\n";
- return -1;
+ PrintErrorAndDie("Failed to open /proc/cpuinfo");
}
#if defined(__alpha__)
const std::string Key = "cpus detected";
@@ -540,12 +538,10 @@ int GetNumCPUs() {
}
}
if (f.bad()) {
- std::cerr << "Failure reading /proc/cpuinfo\n";
- return -1;
+ PrintErrorAndDie("Failure reading /proc/cpuinfo");
}
if (!f.eof()) {
- std::cerr << "Failed to read to end of /proc/cpuinfo\n";
- return -1;
+ PrintErrorAndDie("Failed to read to end of /proc/cpuinfo");
}
f.close();
@@ -559,6 +555,16 @@ int GetNumCPUs() {
BENCHMARK_UNREACHABLE();
}
+int GetNumCPUs() {
+ const int num_cpus = GetNumCPUsImpl();
+ if (num_cpus < 1) {
+ PrintErrorAndDie(
+ "Unable to extract number of CPUs. If your platform uses "
+ "/proc/cpuinfo, custom support may need to be added.");
+ }
+ return num_cpus;
+}
+
class ThreadAffinityGuard final {
public:
ThreadAffinityGuard() : reset_affinity(SetAffinity()) {

View File

@@ -1,20 +0,0 @@
https://bugs.gentoo.org/916278
https://salsa.debian.org/science-team/benchmark/-/blob/master/debian/patches/0007-fix-32bit-test.patch?ref_type=heads
Description: Fix 32bit-test
Author: Anton Gladky <gladk@debian.org>
Last-Update: 2023-10-17
--- benchmark-1.8.3.orig/test/statistics_gtest.cc
+++ benchmark-1.8.3/test/statistics_gtest.cc
@@ -28,8 +28,8 @@ TEST(StatisticsTest, StdDev) {
TEST(StatisticsTest, CV) {
EXPECT_DOUBLE_EQ(benchmark::StatisticsCV({101, 101, 101, 101}), 0.0);
EXPECT_DOUBLE_EQ(benchmark::StatisticsCV({1, 2, 3}), 1. / 2.);
- EXPECT_DOUBLE_EQ(benchmark::StatisticsCV({2.5, 2.4, 3.3, 4.2, 5.1}),
- 0.32888184094918121);
+ EXPECT_NEAR(benchmark::StatisticsCV({2.5, 2.4, 3.3, 4.2, 5.1}),
+ 0.32888184094918121, 1e-7);
}
} // end namespace