Page MenuHomeFreeBSD

D21430.id61409.diff
No OneTemporary

D21430.id61409.diff

Index: head/devel/abseil/Makefile
===================================================================
--- head/devel/abseil/Makefile
+++ head/devel/abseil/Makefile
@@ -11,8 +11,6 @@
LICENSE= APACHE20
-BROKEN_powerpc= fatal error: sys/platform/ppc.h: No such file or directory
-
USES= cmake compiler:c++11-lang
USE_GITHUB= yes
GH_PROJECT= ${PORTNAME}-cpp
Index: head/devel/abseil/files/patch-absl_base_internal_unscaledcycleclock.cc
===================================================================
--- head/devel/abseil/files/patch-absl_base_internal_unscaledcycleclock.cc
+++ head/devel/abseil/files/patch-absl_base_internal_unscaledcycleclock.cc
@@ -0,0 +1,54 @@
+--- absl/base/internal/unscaledcycleclock.cc.orig 2019-07-24 12:47:23 UTC
++++ absl/base/internal/unscaledcycleclock.cc
+@@ -20,10 +20,15 @@
+ #include <intrin.h>
+ #endif
+
+-#if defined(__powerpc__) || defined(__ppc__)
++#if (defined(__powerpc__) || defined(__ppc__)) && !defined(__FreeBSD__)
+ #include <sys/platform/ppc.h>
+ #endif
+
++#ifdef __FreeBSD__
++#include <sys/types.h>
++#include <sys/sysctl.h>
++#endif
++
+ #include "absl/base/internal/sysinfo.h"
+
+ namespace absl {
+@@ -56,11 +61,34 @@ double UnscaledCycleClock::Frequency() {
+ #elif defined(__powerpc__) || defined(__ppc__)
+
+ int64_t UnscaledCycleClock::Now() {
++#ifndef __FreeBSD__
+ return __ppc_get_timebase();
++#else
++ union { long long complete; unsigned int part[2]; } ticks;
++ unsigned int tmp;
++ asm volatile(
++ "0:\n"
++ "mftbu %[hi32]\n"
++ "mftb %[lo32]\n"
++ "mftbu %[tmp]\n"
++ "cmpw %[tmp],%[hi32]\n"
++ "bne 0b\n"
++ : [hi32] "=r"(ticks.part[0]), [lo32] "=r"(ticks.part[1]),
++ [tmp] "=r"(tmp)
++ );
++ return ticks.complete;
++#endif
+ }
+
+ double UnscaledCycleClock::Frequency() {
++#ifndef __FreeBSD__
+ return __ppc_get_timebase_freq();
++#else
++ long timebaseFrequency = 0;
++ size_t length = sizeof(timebaseFrequency);
++ sysctlbyname("kern.timecounter.tc.timebase.frequency", &timebaseFrequency, &length, NULL, 0);
++ return timebaseFrequency;
++#endif
+ }
+
+ #elif defined(__aarch64__)

File Metadata

Mime Type
text/plain
Expires
Wed, Apr 22, 8:05 AM (18 h, 52 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
31963456
Default Alt Text
D21430.id61409.diff (2 KB)

Event Timeline