mirror of https://github.com/google/benchmark.git
Add support for DragonFly BSD (#1058)
Without this commit, compilation fails on DragonFly with the following message: ``` /home/mneumann/Dev/benchmark.old/src/sysinfo.cc:446:2: error: #warning "HOST_NAME_MAX not defined. using 64" [-Werror=cpp] ^~~~~~~ ``` Also note that the sysctl is actually `hw.tsc_frequency` on DragonFly: ``` $ sysctl hw.tsc_frequency hw.tsc_frequency: 3498984022 ``` Tested on: ``` $ uname -a DragonFly box.localnet 5.9-DEVELOPMENT DragonFly v5.9.0.742.g4b29dd-DEVELOPMENT #5: Tue Aug 18 00:21:31 CEST 2020 ```
This commit is contained in:
parent
ffe1342eb2
commit
af72911f2f
|
@ -58,6 +58,8 @@
|
||||||
#define BENCHMARK_OS_NETBSD 1
|
#define BENCHMARK_OS_NETBSD 1
|
||||||
#elif defined(__OpenBSD__)
|
#elif defined(__OpenBSD__)
|
||||||
#define BENCHMARK_OS_OPENBSD 1
|
#define BENCHMARK_OS_OPENBSD 1
|
||||||
|
#elif defined(__DragonFly__)
|
||||||
|
#define BENCHMARK_OS_DRAGONFLY 1
|
||||||
#elif defined(__linux__)
|
#elif defined(__linux__)
|
||||||
#define BENCHMARK_OS_LINUX 1
|
#define BENCHMARK_OS_LINUX 1
|
||||||
#elif defined(__native_client__)
|
#elif defined(__native_client__)
|
||||||
|
|
|
@ -29,7 +29,8 @@
|
||||||
#include <sys/types.h> // this header must be included before 'sys/sysctl.h' to avoid compilation error on FreeBSD
|
#include <sys/types.h> // this header must be included before 'sys/sysctl.h' to avoid compilation error on FreeBSD
|
||||||
#include <unistd.h>
|
#include <unistd.h>
|
||||||
#if defined BENCHMARK_OS_FREEBSD || defined BENCHMARK_OS_MACOSX || \
|
#if defined BENCHMARK_OS_FREEBSD || defined BENCHMARK_OS_MACOSX || \
|
||||||
defined BENCHMARK_OS_NETBSD || defined BENCHMARK_OS_OPENBSD
|
defined BENCHMARK_OS_NETBSD || defined BENCHMARK_OS_OPENBSD || \
|
||||||
|
defined BENCHMARK_OS_DRAGONFLY
|
||||||
#define BENCHMARK_HAS_SYSCTL
|
#define BENCHMARK_HAS_SYSCTL
|
||||||
#include <sys/sysctl.h>
|
#include <sys/sysctl.h>
|
||||||
#endif
|
#endif
|
||||||
|
@ -607,6 +608,8 @@ double GetCPUCyclesPerSecond() {
|
||||||
"machdep.tsc_freq";
|
"machdep.tsc_freq";
|
||||||
#elif defined BENCHMARK_OS_OPENBSD
|
#elif defined BENCHMARK_OS_OPENBSD
|
||||||
"hw.cpuspeed";
|
"hw.cpuspeed";
|
||||||
|
#elif defined BENCHMARK_OS_DRAGONFLY
|
||||||
|
"hw.tsc_frequency";
|
||||||
#else
|
#else
|
||||||
"hw.cpufrequency";
|
"hw.cpufrequency";
|
||||||
#endif
|
#endif
|
||||||
|
@ -671,9 +674,10 @@ double GetCPUCyclesPerSecond() {
|
||||||
}
|
}
|
||||||
|
|
||||||
std::vector<double> GetLoadAvg() {
|
std::vector<double> GetLoadAvg() {
|
||||||
#if (defined BENCHMARK_OS_FREEBSD || defined(BENCHMARK_OS_LINUX) || \
|
#if (defined BENCHMARK_OS_FREEBSD || defined(BENCHMARK_OS_LINUX) || \
|
||||||
defined BENCHMARK_OS_MACOSX || defined BENCHMARK_OS_NETBSD || \
|
defined BENCHMARK_OS_MACOSX || defined BENCHMARK_OS_NETBSD || \
|
||||||
defined BENCHMARK_OS_OPENBSD) && !defined(__ANDROID__)
|
defined BENCHMARK_OS_OPENBSD || defined BENCHMARK_OS_DRAGONFLY) && \
|
||||||
|
!defined(__ANDROID__)
|
||||||
constexpr int kMaxSamples = 3;
|
constexpr int kMaxSamples = 3;
|
||||||
std::vector<double> res(kMaxSamples, 0.0);
|
std::vector<double> res(kMaxSamples, 0.0);
|
||||||
const int nelem = getloadavg(res.data(), kMaxSamples);
|
const int nelem = getloadavg(res.data(), kMaxSamples);
|
||||||
|
|
|
@ -28,7 +28,8 @@
|
||||||
#include <sys/time.h>
|
#include <sys/time.h>
|
||||||
#include <sys/types.h> // this header must be included before 'sys/sysctl.h' to avoid compilation error on FreeBSD
|
#include <sys/types.h> // this header must be included before 'sys/sysctl.h' to avoid compilation error on FreeBSD
|
||||||
#include <unistd.h>
|
#include <unistd.h>
|
||||||
#if defined BENCHMARK_OS_FREEBSD || defined BENCHMARK_OS_MACOSX
|
#if defined BENCHMARK_OS_FREEBSD || defined BENCHMARK_OS_DRAGONFLY || \
|
||||||
|
defined BENCHMARK_OS_MACOSX
|
||||||
#include <sys/sysctl.h>
|
#include <sys/sysctl.h>
|
||||||
#endif
|
#endif
|
||||||
#if defined(BENCHMARK_OS_MACOSX)
|
#if defined(BENCHMARK_OS_MACOSX)
|
||||||
|
|
Loading…
Reference in New Issue