shells/starship: fix build on powerpc64le

This commit is contained in:
Piotr Kubaj 2022-12-29 16:48:07 +00:00
parent 4b3e565f38
commit 6affa4a86b
3 changed files with 85 additions and 0 deletions

View File

@ -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);
}

View File

@ -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;

View File

@ -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
)