OpenBSD build support

OpenBSD does not have a /proc filesystem
OpenBSD also defines `getrusage` in sys/resource.h
Add OpenBSD classifier to python package
Include OpenBSD in machine/endian.h check
This commit is contained in:
Ronald E. Dahlgren
2024-06-04 16:09:32 -04:00
committed by Corentin Le Molgat
parent 3ab080a6ad
commit 73914c474d
3 changed files with 7 additions and 4 deletions

View File

@@ -17,7 +17,7 @@
#if defined(__APPLE__) && defined(__GNUC__) // MacOS
#include <mach/mach_init.h>
#include <mach/task.h>
#elif defined(__FreeBSD__) // FreeBSD
#elif (defined(__FreeBSD__) || defined(__OpenBSD__)) // FreeBSD or OpenBSD
#include <sys/resource.h>
#include <sys/time.h>
// Windows
@@ -49,7 +49,8 @@ int64_t GetProcessMemoryUsage() {
return resident_memory;
}
#elif defined(__GNUC__) && !defined(__FreeBSD__) && \
!defined(__EMSCRIPTEN__) && !defined(_WIN32) // Linux
!defined(__OpenBSD__) && !defined(__EMSCRIPTEN__) && \
!defined(_WIN32) // Linux
int64_t GetProcessMemoryUsage() {
unsigned size = 0;
char buf[30];
@@ -61,7 +62,7 @@ int64_t GetProcessMemoryUsage() {
fclose(pf);
return int64_t{1024} * size;
}
#elif defined(__FreeBSD__) // FreeBSD
#elif (defined(__FreeBSD__) || defined(__OpenBSD__)) // FreeBSD or OpenBSD
int64_t GetProcessMemoryUsage() {
int who = RUSAGE_SELF;
struct rusage rusage;

View File

@@ -145,6 +145,7 @@ setup(
'Operating System :: Unix',
'Operating System :: POSIX :: Linux',
'Operating System :: POSIX :: BSD :: FreeBSD',
'Operating System :: POSIX :: BSD :: OpenBSD',
'Operating System :: MacOS',
'Operating System :: MacOS :: MacOS X',
'Operating System :: Microsoft :: Windows',

View File

@@ -14,7 +14,8 @@
#ifndef OR_TOOLS_UTIL_ZVECTOR_H_
#define OR_TOOLS_UTIL_ZVECTOR_H_
#if (defined(__APPLE__) || defined(__FreeBSD__)) && defined(__GNUC__)
#if (defined(__APPLE__) || defined(__FreeBSD__) || defined(__OpenBSD__)) && \
defined(__GNUC__)
#include <machine/endian.h>
#elif !defined(_MSC_VER) && !defined(__MINGW32__) && !defined(__MINGW64__)
#include <endian.h>