git: 16a3aa5cb9e7 - 2023Q2 - games/punchy: unbreak build on armv7
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Fri, 28 Apr 2023 20:46:12 UTC
The branch 2023Q2 has been updated by jbeich:
URL: https://cgit.FreeBSD.org/ports/commit/?id=16a3aa5cb9e71ff22cbdceb0bd56b1d61e4d53ce
commit 16a3aa5cb9e71ff22cbdceb0bd56b1d61e4d53ce
Author: Robert Clausecker <fuz@FreeBSD.org>
AuthorDate: 2023-04-26 00:36:30 +0000
Commit: Jan Beich <jbeich@FreeBSD.org>
CommitDate: 2023-04-28 20:45:57 +0000
games/punchy: unbreak build on armv7
Fix files/patch-v8 to compile on armv7 by refactoring it to use
ELF auxilliary vectors in the CPU detection code and by adding
some missing includes.
cargo-crates/v8-0.47.1/third_party/zlib/cpu_features.c:137:20: warning: implicit declaration of function 'READ_SPECIALREG' is invalid in C99 [-Wimplicit-function-declaration]
id_aa64isar0 = READ_SPECIALREG(id_aa64isar0_el1);
^
cargo-crates/v8-0.47.1/third_party/zlib/cpu_features.c:137:36: error: use of undeclared identifier 'id_aa64isar0_el1'; did you mean 'id_aa64isar0'?
id_aa64isar0 = READ_SPECIALREG(id_aa64isar0_el1);
^~~~~~~~~~~~~~~~
id_aa64isar0
cargo-crates/v8-0.47.1/third_party/zlib/cpu_features.c:136:14: note: 'id_aa64isar0' declared here
uint64_t id_aa64isar0;
^
cargo-crates/v8-0.47.1/third_party/zlib/cpu_features.c:138:9: warning: implicit declaration of function 'ID_AA64ISAR0_AES' is invalid in C99 [-Wimplicit-function-declaration]
if (ID_AA64ISAR0_AES_VAL(id_aa64isar0) == ID_AA64ISAR0_AES_PMULL)
^
cargo-crates/v8-0.47.1/third_party/zlib/cpu_features.c:42:30: note: expanded from macro 'ID_AA64ISAR0_AES_VAL'
#define ID_AA64ISAR0_AES_VAL ID_AA64ISAR0_AES
^
cargo-crates/v8-0.47.1/third_party/zlib/cpu_features.c:138:47: error: use of undeclared identifier 'ID_AA64ISAR0_AES_PMULL'; did you mean 'ID_AA64ISAR0_AES'?
if (ID_AA64ISAR0_AES_VAL(id_aa64isar0) == ID_AA64ISAR0_AES_PMULL)
^~~~~~~~~~~~~~~~~~~~~~
ID_AA64ISAR0_AES
cargo-crates/v8-0.47.1/third_party/zlib/cpu_features.c:138:9: note: 'ID_AA64ISAR0_AES' declared here
if (ID_AA64ISAR0_AES_VAL(id_aa64isar0) == ID_AA64ISAR0_AES_PMULL)
^
cargo-crates/v8-0.47.1/third_party/zlib/cpu_features.c:42:30: note: expanded from macro 'ID_AA64ISAR0_AES_VAL'
#define ID_AA64ISAR0_AES_VAL ID_AA64ISAR0_AES
^
cargo-crates/v8-0.47.1/third_party/zlib/cpu_features.c:140:9: warning: implicit declaration of function 'ID_AA64ISAR0_CRC32' is invalid in C99 [-Wimplicit-function-declaration]
if (ID_AA64ISAR0_CRC32_VAL(id_aa64isar0) == ID_AA64ISAR0_CRC32_BASE)
^
cargo-crates/v8-0.47.1/third_party/zlib/cpu_features.c:45:32: note: expanded from macro 'ID_AA64ISAR0_CRC32_VAL'
#define ID_AA64ISAR0_CRC32_VAL ID_AA64ISAR0_CRC32
^
cargo-crates/v8-0.47.1/third_party/zlib/cpu_features.c:140:49: error: use of undeclared identifier 'ID_AA64ISAR0_CRC32_BASE'; did you mean 'ID_AA64ISAR0_CRC32'?
if (ID_AA64ISAR0_CRC32_VAL(id_aa64isar0) == ID_AA64ISAR0_CRC32_BASE)
^~~~~~~~~~~~~~~~~~~~~~~
ID_AA64ISAR0_CRC32
cargo-crates/v8-0.47.1/third_party/zlib/cpu_features.c:140:9: note: 'ID_AA64ISAR0_CRC32' declared here
if (ID_AA64ISAR0_CRC32_VAL(id_aa64isar0) == ID_AA64ISAR0_CRC32_BASE)
^
cargo-crates/v8-0.47.1/third_party/zlib/cpu_features.c:45:32: note: expanded from macro 'ID_AA64ISAR0_CRC32_VAL'
#define ID_AA64ISAR0_CRC32_VAL ID_AA64ISAR0_CRC32
^
PR: 271076
Reported by: pkg-fallout
(cherry picked from commit 5acf5a02777bd9c6cce20980859c4316b267f6f2)
---
games/punchy/Makefile | 2 +-
games/punchy/files/patch-v8 | 50 +++++++++++++++++++++++++++++----------------
2 files changed, 33 insertions(+), 19 deletions(-)
diff --git a/games/punchy/Makefile b/games/punchy/Makefile
index edb9225e3163..705c36f9a357 100644
--- a/games/punchy/Makefile
+++ b/games/punchy/Makefile
@@ -1,7 +1,7 @@
PORTNAME= punchy
DISTVERSIONPREFIX= v
DISTVERSION= 0.3.0
-PORTREVISION= 2
+PORTREVISION= 3
CATEGORIES= games wayland
MAINTAINER= jbeich@FreeBSD.org
diff --git a/games/punchy/files/patch-v8 b/games/punchy/files/patch-v8
index 1b0bd8761916..c21a41bf51b8 100644
--- a/games/punchy/files/patch-v8
+++ b/games/punchy/files/patch-v8
@@ -424,7 +424,7 @@ error[E0308]: mismatched types
} else if (is_mac) {
--- cargo-crates/v8-0.47.1/third_party/zlib/cpu_features.c.orig 1970-01-01 00:00:00 UTC
+++ cargo-crates/v8-0.47.1/third_party/zlib/cpu_features.c
-@@ -31,11 +31,20 @@ int ZLIB_INTERNAL x86_cpu_enable_simd = 0;
+@@ -31,11 +31,13 @@ int ZLIB_INTERNAL x86_cpu_enable_simd = 0;
#ifndef CPU_NO_SIMD
@@ -435,19 +435,12 @@ error[E0308]: mismatched types
-#if defined(ARMV8_OS_ANDROID)
+#if defined(ARMV8_OS_FREEBSD)
-+#include <machine/armreg.h>
-+#include <sys/types.h>
-+#ifndef ID_AA64ISAR0_AES_VAL
-+#define ID_AA64ISAR0_AES_VAL ID_AA64ISAR0_AES
-+#endif
-+#ifndef ID_AA64ISAR0_CRC32_VAL
-+#define ID_AA64ISAR0_CRC32_VAL ID_AA64ISAR0_CRC32
-+#endif
++#include <sys/auxv.h>
+#elif defined(ARMV8_OS_ANDROID)
#include <cpu-features.h>
#elif defined(ARMV8_OS_LINUX)
#include <asm/hwcap.h>
-@@ -56,7 +65,7 @@ static void _cpu_check_features(void);
+@@ -56,7 +58,7 @@ static void _cpu_check_features(void);
static void _cpu_check_features(void);
#endif
@@ -456,17 +449,20 @@ error[E0308]: mismatched types
#if !defined(ARMV8_OS_MACOS)
// _cpu_check_features() doesn't need to do anything on mac/arm since all
// features are known at build time, so don't call it.
-@@ -123,6 +132,13 @@ static void _cpu_check_features(void)
+@@ -123,6 +125,16 @@ static void _cpu_check_features(void)
#elif defined(ARMV8_OS_WINDOWS)
arm_cpu_enable_crc32 = IsProcessorFeaturePresent(PF_ARM_V8_CRC32_INSTRUCTIONS_AVAILABLE);
arm_cpu_enable_pmull = IsProcessorFeaturePresent(PF_ARM_V8_CRYPTO_INSTRUCTIONS_AVAILABLE);
-+#elif defined(ARMV8_OS_FREEBSD)
-+ uint64_t id_aa64isar0;
-+ id_aa64isar0 = READ_SPECIALREG(id_aa64isar0_el1);
-+ if (ID_AA64ISAR0_AES_VAL(id_aa64isar0) == ID_AA64ISAR0_AES_PMULL)
-+ arm_cpu_enable_pmull = 1;
-+ if (ID_AA64ISAR0_CRC32_VAL(id_aa64isar0) == ID_AA64ISAR0_CRC32_BASE)
-+ arm_cpu_enable_crc32 = 1;
++#elif defined(ARMV8_OS_FREEBSD) && defined(__aarch64__)
++ unsigned long features;
++ elf_aux_info(AT_HWCAP, &features, sizeof features);
++ arm_cpu_enable_crc32 = !!(features & HWCAP_CRC32);
++ arm_cpu_enable_pmull = !!(features & HWCAP_PMULL);
++#elif defined(ARMV8_OS_FREEBSD) /* aarch32 */
++ unsigned long features;
++ elf_aux_info(AT_HWCAP2, &features, sizeof features);
++ arm_cpu_enable_crc32 = !!(features & HWCAP2_CRC32);
++ arm_cpu_enable_pmull = !!(features & HWCAP2_PMULL);
#endif
}
#endif
@@ -590,3 +586,21 @@ error[E0308]: mismatched types
// static
Stack::StackSlot Stack::GetStackStart() {
+--- cargo-crates/v8-0.47.1/v8/src/codegen/arm/cpu-arm.cc.orig 1970-01-01 00:00:00 UTC
++++ cargo-crates/v8-0.47.1/v8/src/codegen/arm/cpu-arm.cc
+@@ -2,12 +2,15 @@
+ // Use of this source code is governed by a BSD-style license that can be
+ // found in the LICENSE file.
+
++#include "include/v8config.h"
++
+ // CPU specific code for arm independent of OS goes here.
+ #ifdef __arm__
+ #ifdef __QNXNTO__
+ #include <sys/mman.h> // for cache flushing.
+ #undef MAP_TYPE
+ #elif V8_OS_FREEBSD
++#include <sys/cdefs.h>
+ #include <machine/sysarch.h> // for cache flushing
+ #include <sys/types.h>
+ #elif V8_OS_STARBOARD