mirror of
https://git.freebsd.org/ports.git
synced 2025-06-02 19:36:28 -04:00
www/qt5-webengine: fix build on armv7
The build system adds the bogus option --target=arm-linux-gnueabihf to the build when building on arm, causing all sorts of issues. Patch that out, then add some polyfill for API differences between ARM Linux and ARM FreeBSD. Approved by: portmgr (build fix blanket) MFH: 2025Q2
This commit is contained in:
parent
ae40dbd47c
commit
85ef7e6db8
5 changed files with 74 additions and 13 deletions
|
@ -19,7 +19,7 @@
|
|||
|
||||
PORTNAME= webengine
|
||||
PORTVERSION= ${QT5_VERSION}${QT5_KDE_PATCH}
|
||||
PORTREVISION= 1
|
||||
PORTREVISION= 2
|
||||
CATEGORIES= www
|
||||
PKGNAMEPREFIX= qt5-
|
||||
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
--- src/3rdparty/chromium/base/profiler/register_context.h.orig 2021-12-15 16:12:54 UTC
|
||||
--- src/3rdparty/chromium/base/profiler/register_context.h.orig 2025-03-06 09:26:10 UTC
|
||||
+++ src/3rdparty/chromium/base/profiler/register_context.h
|
||||
@@ -17,7 +17,7 @@
|
||||
#include <windows.h>
|
||||
|
@ -9,7 +9,7 @@
|
|||
#include <sys/ucontext.h>
|
||||
#endif
|
||||
|
||||
@@ -190,6 +190,48 @@ inline uintptr_t& RegisterContextInstructionPointer(mc
|
||||
@@ -190,6 +190,61 @@ inline uintptr_t& RegisterContextInstructionPointer(mc
|
||||
}
|
||||
|
||||
#endif // #if defined(ARCH_CPU_ARM_FAMILY) && defined(ARCH_CPU_32_BITS)
|
||||
|
@ -54,6 +54,19 @@
|
|||
+inline uintptr_t& RegisterContextInstructionPointer(mcontext_t* context) {
|
||||
+ return AsUintPtr(&context->mc_gpregs.gp_elr);
|
||||
+}
|
||||
+
|
||||
+#elif defined(ARCH_CPU_ARM_FAMILY) && defined(ARCH_CPU_32_BITS)
|
||||
+inline uintptr_t& RegisterContextStackPointer(mcontext_t* context) {
|
||||
+ return AsUintPtr(&context->__gregs[_REG_SP]);
|
||||
+}
|
||||
+
|
||||
+inline uintptr_t& RegisterContextFramePointer(mcontext_t* context) {
|
||||
+ return AsUintPtr(&context->__gregs[_REG_FP]);
|
||||
+}
|
||||
+
|
||||
+inline uintptr_t& RegisterContextInstructionPointer(mcontext_t* context) {
|
||||
+ return AsUintPtr(&context->__gregs[_REG_PC]);
|
||||
+}
|
||||
+#endif
|
||||
|
||||
#else // #if defined(OS_WIN)
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
--- src/3rdparty/chromium/build/config/compiler/BUILD.gn.orig 2023-11-09 11:32:20 UTC
|
||||
--- src/3rdparty/chromium/build/config/compiler/BUILD.gn.orig 2025-03-06 09:26:10 UTC
|
||||
+++ src/3rdparty/chromium/build/config/compiler/BUILD.gn
|
||||
@@ -134,7 +134,7 @@ declare_args() {
|
||||
#
|
||||
|
@ -53,7 +53,18 @@
|
|||
}
|
||||
}
|
||||
|
||||
@@ -796,7 +797,7 @@ config("compiler_cpu_abi") {
|
||||
@@ -782,10 +783,6 @@ config("compiler_cpu_abi") {
|
||||
]
|
||||
}
|
||||
} else if (current_cpu == "arm") {
|
||||
- if (is_clang && !is_android && !is_nacl) {
|
||||
- cflags += [ "--target=arm-linux-gnueabihf" ]
|
||||
- ldflags += [ "--target=arm-linux-gnueabihf" ]
|
||||
- }
|
||||
if (!is_nacl) {
|
||||
cflags += [
|
||||
"-march=$arm_arch",
|
||||
@@ -796,7 +793,7 @@ config("compiler_cpu_abi") {
|
||||
cflags += [ "-mtune=$arm_tune" ]
|
||||
}
|
||||
} else if (current_cpu == "arm64") {
|
||||
|
@ -62,7 +73,7 @@
|
|||
cflags += [ "--target=aarch64-linux-gnu" ]
|
||||
ldflags += [ "--target=aarch64-linux-gnu" ]
|
||||
}
|
||||
@@ -1149,7 +1150,7 @@ config("compiler_deterministic") {
|
||||
@@ -1149,7 +1146,7 @@ config("compiler_deterministic") {
|
||||
"-Xclang",
|
||||
".",
|
||||
]
|
||||
|
@ -71,7 +82,7 @@
|
|||
# We don't use clang -cc1as on Windows (yet? https://crbug.com/762167)
|
||||
asmflags = [ "-Wa,-fdebug-compilation-dir,." ]
|
||||
}
|
||||
@@ -1535,6 +1536,10 @@ config("default_warnings") {
|
||||
@@ -1535,6 +1532,10 @@ config("default_warnings") {
|
||||
# which we no longer use. Check if it makes sense to remove
|
||||
# this as well. http://crbug.com/316352
|
||||
"-Wno-unneeded-internal-declaration",
|
||||
|
@ -82,7 +93,7 @@
|
|||
]
|
||||
|
||||
# use_xcode_clang only refers to the iOS toolchain, host binaries use
|
||||
@@ -1551,7 +1556,7 @@ config("default_warnings") {
|
||||
@@ -1551,7 +1552,7 @@ config("default_warnings") {
|
||||
cflags += [ "-Wno-nonportable-include-path" ]
|
||||
}
|
||||
|
||||
|
@ -91,7 +102,7 @@
|
|||
# Flags NaCl (Clang 3.7) and Xcode 9.2 (Clang clang-900.0.39.2) do not
|
||||
# recognize.
|
||||
cflags += [
|
||||
@@ -1725,7 +1730,7 @@ config("no_chromium_code") {
|
||||
@@ -1725,7 +1726,7 @@ config("no_chromium_code") {
|
||||
# suppressing them individually, we just blanket suppress them here.
|
||||
"-Wno-unused-variable",
|
||||
]
|
||||
|
@ -100,7 +111,7 @@
|
|||
cflags += [
|
||||
# TODO(https://crbug.com/1031169): Clean up and enable.
|
||||
"-Wno-misleading-indentation",
|
||||
@@ -1803,7 +1808,7 @@ config("thin_archive") {
|
||||
@@ -1803,7 +1804,7 @@ config("thin_archive") {
|
||||
# Mac and iOS use the mac-specific "libtool" command, not ar, which doesn't
|
||||
# have a "thin archive" mode (it does accept -T, but it means truncating
|
||||
# archive names to 16 characters, which is not what we want).
|
||||
|
@ -109,7 +120,7 @@
|
|||
arflags = [ "-T" ]
|
||||
} else if (is_win && use_lld) {
|
||||
arflags = [ "/llvmlibthin" ]
|
||||
@@ -2344,7 +2349,7 @@ config("symbols") {
|
||||
@@ -2344,7 +2345,7 @@ config("symbols") {
|
||||
# flag, so we can use use -g1 for pnacl and nacl-clang compiles.
|
||||
# gcc nacl is is_nacl && !is_clang, pnacl and nacl-clang are && is_clang.
|
||||
if (!is_nacl || is_clang) {
|
||||
|
@ -118,7 +129,7 @@
|
|||
}
|
||||
|
||||
# TODO(https://crbug.com/1050118): Investigate missing debug info on mac.
|
||||
@@ -2386,7 +2391,7 @@ config("symbols") {
|
||||
@@ -2386,7 +2387,7 @@ config("symbols") {
|
||||
# DWARF info may be corrupt; offsets in a range list entry are in different
|
||||
# sections" there. Maybe just a bug in nacl_switch_32.S.
|
||||
if (!is_apple && !is_nacl && current_cpu != "x86" &&
|
||||
|
|
|
@ -0,0 +1,14 @@
|
|||
--- src/3rdparty/chromium/third_party/dav1d/libdav1d/src/arm/cpu.c.orig 2025-04-26 20:32:56 UTC
|
||||
+++ src/3rdparty/chromium/third_party/dav1d/libdav1d/src/arm/cpu.c
|
||||
@@ -84,10 +84,7 @@ COLD unsigned dav1d_get_cpu_flags_arm(void) {
|
||||
unsigned flags = 0;
|
||||
#if defined(__ARM_NEON) || defined(__APPLE__) || defined(_WIN32) || ARCH_AARCH64
|
||||
flags |= DAV1D_ARM_CPU_FLAG_NEON;
|
||||
-#elif defined(HAVE_GETAUXVAL) && ARCH_ARM
|
||||
- unsigned long hw_cap = getauxval(AT_HWCAP);
|
||||
- flags |= (hw_cap & NEON_HWCAP) ? DAV1D_ARM_CPU_FLAG_NEON : 0;
|
||||
-#elif defined(HAVE_ELF_AUX_INFO) && ARCH_ARM
|
||||
+#elif defined(__FreeBSD__) && ARCH_ARM
|
||||
unsigned long hw_cap = 0;
|
||||
elf_aux_info(AT_HWCAP, &hw_cap, sizeof(hw_cap));
|
||||
flags |= (hw_cap & NEON_HWCAP) ? DAV1D_ARM_CPU_FLAG_NEON : 0;
|
|
@ -1,4 +1,4 @@
|
|||
--- src/3rdparty/chromium/third_party/skia/src/core/SkCpu.cpp.orig 2021-12-15 16:12:54 UTC
|
||||
--- src/3rdparty/chromium/third_party/skia/src/core/SkCpu.cpp.orig 2025-03-06 09:26:10 UTC
|
||||
+++ src/3rdparty/chromium/third_party/skia/src/core/SkCpu.cpp
|
||||
@@ -72,6 +72,23 @@
|
||||
return features;
|
||||
|
@ -24,3 +24,26 @@
|
|||
#elif defined(SK_CPU_ARM64) && __has_include(<sys/auxv.h>)
|
||||
#include <sys/auxv.h>
|
||||
|
||||
@@ -110,6 +127,22 @@
|
||||
|| 0 == memcmp(kMongoose3, buf, SK_ARRAY_COUNT(buf))) {
|
||||
features &= ~(SkCpu::ASIMDHP);
|
||||
}
|
||||
+ }
|
||||
+ return features;
|
||||
+ }
|
||||
+
|
||||
+#elif defined(SK_CPU_ARM32) && defined(__FreeBSD__)
|
||||
+ #include <sys/auxv.h>
|
||||
+
|
||||
+ static uint32_t read_cpu_features() {
|
||||
+ uint32_t features = 0;
|
||||
+ unsigned long hwcaps = 0;
|
||||
+
|
||||
+ elf_aux_info(AT_HWCAP, &hwcaps, sizeof hwcaps);
|
||||
+
|
||||
+ if (hwcaps & HWCAP_NEON ) {
|
||||
+ features |= SkCpu::NEON;
|
||||
+ if (hwcaps & HWCAP_VFPv4) { features |= SkCpu::NEON_FMA|SkCpu::VFP_FP16; }
|
||||
}
|
||||
return features;
|
||||
}
|
||||
|
|
Loading…
Add table
Reference in a new issue