summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGravatar Daniel Ylitalo <daniel@ylitalo.io>2017-12-13 21:02:50 +0100
committerGravatar Derek Mauro <761129+derekmauro@users.noreply.github.com>2017-12-13 15:02:50 -0500
commit5fe41affbaab5b9ad4876a6295c78f21a86d862d (patch)
treed6cb31cf0deb80dc295e6fae0b287d482ac4a947
parent04edad3801ec0b1091df9157b879d8f6a50c5036 (diff)
FreeBSD compability (#57)
-rw-r--r--absl/base/config.h8
-rw-r--r--absl/base/internal/endian.h2
-rw-r--r--absl/base/internal/raw_logging.cc5
-rw-r--r--absl/base/internal/sysinfo.cc2
-rw-r--r--absl/debugging/internal/stacktrace_config.h4
-rw-r--r--absl/debugging/internal/stacktrace_powerpc-inl.inc3
6 files changed, 15 insertions, 9 deletions
diff --git a/absl/base/config.h b/absl/base/config.h
index 6aeceb9b..fc48be0b 100644
--- a/absl/base/config.h
+++ b/absl/base/config.h
@@ -254,8 +254,9 @@
// POSIX.1-2001.
#ifdef ABSL_HAVE_MMAP
#error ABSL_HAVE_MMAP cannot be directly set
-#elif defined(__linux__) || defined(__APPLE__) || defined(__ros__) || \
- defined(__native_client__) || defined(__asmjs__) || defined(__Fuchsia__)
+#elif defined(__linux__) || defined(__APPLE__) || defined(__FreeBSD__) || \
+ defined(__ros__) || defined(__native_client__) || defined(__asmjs__) || \
+ defined(__Fuchsia__)
#define ABSL_HAVE_MMAP 1
#endif
@@ -265,7 +266,8 @@
// functions as defined in POSIX.1-2001.
#ifdef ABSL_HAVE_PTHREAD_GETSCHEDPARAM
#error ABSL_HAVE_PTHREAD_GETSCHEDPARAM cannot be directly set
-#elif defined(__linux__) || defined(__APPLE__) || defined(__ros__)
+#elif defined(__linux__) || defined(__APPLE__) || defined(__FreeBSD__) || \
+ defined(__ros__)
#define ABSL_HAVE_PTHREAD_GETSCHEDPARAM 1
#endif
diff --git a/absl/base/internal/endian.h b/absl/base/internal/endian.h
index 602129ee..edc10f10 100644
--- a/absl/base/internal/endian.h
+++ b/absl/base/internal/endian.h
@@ -22,6 +22,8 @@
#elif defined(__APPLE__)
// Mac OS X / Darwin features
#include <libkern/OSByteOrder.h>
+#elif defined(__FreeBSD__)
+#include <sys/endian.h>
#elif defined(__GLIBC__)
#include <byteswap.h> // IWYU pragma: export
#endif
diff --git a/absl/base/internal/raw_logging.cc b/absl/base/internal/raw_logging.cc
index 1b849abf..301b108c 100644
--- a/absl/base/internal/raw_logging.cc
+++ b/absl/base/internal/raw_logging.cc
@@ -34,7 +34,8 @@
//
// This preprocessor token is also defined in raw_io.cc. If you need to copy
// this, consider moving both to config.h instead.
-#if defined(__linux__) || defined(__APPLE__) || defined(__Fuchsia__)
+#if defined(__linux__) || defined(__APPLE__) || defined(__FreeBSD__) || \
+ defined(__Fuchsia__)
#include <unistd.h>
@@ -47,7 +48,7 @@
// ABSL_HAVE_SYSCALL_WRITE is defined when the platform provides the syscall
// syscall(SYS_write, /*int*/ fd, /*char* */ buf, /*size_t*/ len);
// for low level operations that want to avoid libc.
-#if defined(__linux__) && !defined(__ANDROID__)
+#if (defined(__linux__) || defined(__FreeBSD__)) && !defined(__ANDROID__)
#include <sys/syscall.h>
#define ABSL_HAVE_SYSCALL_WRITE 1
#define ABSL_LOW_LEVEL_WRITE_SUPPORTED 1
diff --git a/absl/base/internal/sysinfo.cc b/absl/base/internal/sysinfo.cc
index 00e98b66..884c3126 100644
--- a/absl/base/internal/sysinfo.cc
+++ b/absl/base/internal/sysinfo.cc
@@ -29,7 +29,7 @@
#include <sys/syscall.h>
#endif
-#ifdef __APPLE__
+#if defined(__APPLE__) || defined(__FreeBSD__)
#include <sys/sysctl.h>
#endif
diff --git a/absl/debugging/internal/stacktrace_config.h b/absl/debugging/internal/stacktrace_config.h
index 57f0b0f2..9bd2a2ab 100644
--- a/absl/debugging/internal/stacktrace_config.h
+++ b/absl/debugging/internal/stacktrace_config.h
@@ -25,8 +25,8 @@
#if ABSL_STACKTRACE_INL_HEADER
#error ABSL_STACKTRACE_INL_HEADER cannot be directly set
#elif defined(__native_client__) || defined(__APPLE__) || \
- defined(__ANDROID__) || defined(__myriad2__) || defined(asmjs__) || \
- defined(__Fuchsia__)
+ defined(__FreeBSD__) || defined(__ANDROID__) || defined(__myriad2__) || \
+ defined(asmjs__) || defined(__Fuchsia__)
#define ABSL_STACKTRACE_INL_HEADER \
"absl/debugging/internal/stacktrace_unimplemented-inl.inc"
diff --git a/absl/debugging/internal/stacktrace_powerpc-inl.inc b/absl/debugging/internal/stacktrace_powerpc-inl.inc
index 0628b285..60a889a9 100644
--- a/absl/debugging/internal/stacktrace_powerpc-inl.inc
+++ b/absl/debugging/internal/stacktrace_powerpc-inl.inc
@@ -47,7 +47,8 @@ static inline void *StacktracePowerPCGetLR(void **sp) {
return *(sp+2);
#elif defined(_CALL_SYSV)
return *(sp+1);
-#elif defined(__APPLE__) || (defined(__linux__) && defined(__PPC64__))
+#elif defined(__APPLE__) || defined(__FreeBSD__) || \
+ (defined(__linux__) && defined(__PPC64__))
// This check is in case the compiler doesn't define _CALL_AIX/etc.
return *(sp+2);
#elif defined(__linux)