Skip to content

Commit

Permalink
graphics/libjxl: fix build on powerpc64*
Browse files Browse the repository at this point in the history
Add FreeBSD variants for linux code.

The include in cpu.cc is not actually necessary, so I did not include anything for FreeBSD.
  • Loading branch information
pkubaj committed Sep 30, 2021
1 parent 0b1a244 commit fc75da3
Show file tree
Hide file tree
Showing 2 changed files with 43 additions and 0 deletions.
@@ -0,0 +1,30 @@
--- third_party/highway/hwy/nanobenchmark.cc.orig 2021-09-30 15:38:30 UTC
+++ third_party/highway/hwy/nanobenchmark.cc
@@ -47,7 +47,12 @@

#include "hwy/base.h"
#if HWY_ARCH_PPC
+#if linux
#include <sys/platform/ppc.h> // NOLINT __ppc_get_timebase_freq
+#elif __FreeBSD__
+#include <sys/types.h>
+#include <sys/sysctl.h> /* must come after sys/types.h */
+#endif
#elif HWY_ARCH_X86

#if HWY_COMPILER_MSVC
@@ -400,7 +405,14 @@ double NominalClockRate() {

double InvariantTicksPerSecond() {
#if HWY_ARCH_PPC
+#if linux
return __ppc_get_timebase_freq();
+#elif __FreeBSD__
+ static double cycles_per_second = 0;
+ size_t length = sizeof(cycles_per_second);
+ sysctlbyname("kern.timecounter.tc.timebase.frequency", &cycles_per_second,
+ &length, NULL, 0);
+#endif
#elif HWY_ARCH_X86
// We assume the TSC is invariant; it is on all recent Intel/AMD CPUs.
return NominalClockRate();
13 changes: 13 additions & 0 deletions graphics/libjxl/files/patch-tools_cpu_cpu.cc
@@ -0,0 +1,13 @@
--- tools/cpu/cpu.cc.orig 2021-09-30 15:38:45 UTC
+++ tools/cpu/cpu.cc
@@ -19,7 +19,9 @@
#endif

#if JXL_ARCH_PPC
-#include <sys/platform/ppc.h> // __ppc_get_timebase_freq
+#if linux
+#include <sys/platform/ppc.h> // NOLINT __ppc_get_timebase_freq
+#endif
#endif

#if JXL_ARCH_ARM

0 comments on commit fc75da3

Please sign in to comment.