Skip to content

Commit

Permalink
sysutils/onefetch: fix build on powerpc*
Browse files Browse the repository at this point in the history
  /wrkdirs/usr/ports/sysutils/onefetch/work/onefetch-2.17.1/cargo-crates/libz-ng-sys-1.1.8/src/zlib-ng/functable.c:125:9: error: use of undeclared identifier 'power_cpu_has_arch_3_00'
      if (power_cpu_has_arch_3_00)
          ^
  /wrkdirs/usr/ports/sysutils/onefetch/work/onefetch-2.17.1/cargo-crates/libz-ng-sys-1.1.8/src/zlib-ng/functable.c:158:9: error: use of undeclared identifier 'power_cpu_has_arch_3_00'
      if (power_cpu_has_arch_3_00)
          ^
  /wrkdirs/usr/ports/sysutils/onefetch/work/onefetch-2.17.1/cargo-crates/libz-ng-sys-1.1.8/src/zlib-ng/functable.c:451:9: error: use of undeclared identifier 'power_cpu_has_arch_3_00'
      if (power_cpu_has_arch_3_00)
  • Loading branch information
pkubaj committed Jun 16, 2023
1 parent 9476f01 commit d4f7fe6
Show file tree
Hide file tree
Showing 3 changed files with 85 additions and 0 deletions.
@@ -0,0 +1,11 @@
--- cargo-crates/libz-ng-sys-1.1.8/src/zlib-ng/arch/power/chunkset_power8.c.orig 2022-12-29 16:08:43 UTC
+++ cargo-crates/libz-ng-sys-1.1.8/src/zlib-ng/arch/power/chunkset_power8.c
@@ -27,7 +27,7 @@ static inline void chunkmemset_4(uint8_t *from, chunk_
}

static inline void chunkmemset_8(uint8_t *from, chunk_t *chunk) {
- uint64_t tmp;
+ unsigned long long tmp;
zmemcpy_8(&tmp, from);
*chunk = (vector unsigned char)vec_splats(tmp);
}
@@ -0,0 +1,36 @@
--- cargo-crates/libz-ng-sys-1.1.8/src/zlib-ng/arch/power/power_features.c.orig 1973-11-29 21:33:09 UTC
+++ cargo-crates/libz-ng-sys-1.1.8/src/zlib-ng/arch/power/power_features.c
@@ -7,6 +7,9 @@
#ifdef HAVE_SYS_AUXV_H
# include <sys/auxv.h>
#endif
+#ifdef __FreeBSD__
+#include <machine/cpu.h>
+#endif
#include "../../zbuild.h"
#include "power_features.h"

@@ -17,7 +20,11 @@ Z_INTERNAL int power_cpu_has_arch_3_00 = 0;
void Z_INTERNAL power_check_features(void) {
#ifdef PPC_FEATURES
unsigned long hwcap;
+#ifdef __FreeBSD__
+ elf_aux_info(AT_HWCAP, &hwcap, sizeof(hwcap));
+#else
hwcap = getauxval(AT_HWCAP);
+#endif

if (hwcap & PPC_FEATURE_HAS_ALTIVEC)
power_cpu_has_altivec = 1;
@@ -25,7 +32,11 @@ void Z_INTERNAL power_check_features(void) {

#ifdef POWER_FEATURES
unsigned long hwcap2;
+#ifdef __FreeBSD__
+ elf_aux_info(AT_HWCAP2, &hwcap2, sizeof(hwcap2));
+#else
hwcap2 = getauxval(AT_HWCAP2);
+#endif

if (hwcap2 & PPC_FEATURE2_ARCH_2_07)
power_cpu_has_arch_2_07 = 1;
@@ -0,0 +1,38 @@
--- cargo-crates/libz-ng-sys-1.1.8/src/zlib-ng/cmake/detect-intrinsics.cmake.orig 1973-11-29 21:33:09 UTC
+++ cargo-crates/libz-ng-sys-1.1.8/src/zlib-ng/cmake/detect-intrinsics.cmake
@@ -280,8 +280,17 @@ macro(check_ppc_intrinsics)
set(CMAKE_REQUIRED_FLAGS "${PPCFLAGS} ${NATIVEFLAG}")
check_c_source_compiles(
"#include <sys/auxv.h>
+ #ifdef __FreeBSD__
+ #include <machine/cpu.h>
+ #endif
int main() {
+ #ifdef __FreeBSD__
+ unsigned long hwcap;
+ elf_aux_info(AT_HWCAP, &hwcap, sizeof(hwcap));
+ return (hwcap & PPC_FEATURE_HAS_ALTIVEC);
+ #else
return (getauxval(AT_HWCAP) & PPC_FEATURE_HAS_ALTIVEC);
+ #endif
}"
HAVE_VMX
)
@@ -298,8 +307,17 @@ macro(check_power8_intrinsics)
set(CMAKE_REQUIRED_FLAGS "${POWER8FLAG} ${NATIVEFLAG}")
check_c_source_compiles(
"#include <sys/auxv.h>
+ #ifdef __FreeBSD__
+ #include <machine/cpu.h>
+ #endif
int main() {
+ #ifdef __FreeBSD__
+ unsigned long hwcap;
+ elf_aux_info(AT_HWCAP2, &hwcap, sizeof(hwcap));
+ return (hwcap & PPC_FEATURE2_ARCH_2_07);
+ #else
return (getauxval(AT_HWCAP2) & PPC_FEATURE2_ARCH_2_07);
+ #endif
}"
HAVE_POWER8_INTRIN
)

0 comments on commit d4f7fe6

Please sign in to comment.