git: c8e178516dc9 - 2024Q1 - www/qt6-webengine: Fix build on armv7 (hopefully)

From: Jason E. Hale <jhale_at_FreeBSD.org>
Date: Mon, 15 Jan 2024 03:07:51 UTC
The branch 2024Q1 has been updated by jhale:

URL: https://cgit.FreeBSD.org/ports/commit/?id=c8e178516dc93033187ceca9e30635069b847247

commit c8e178516dc93033187ceca9e30635069b847247
Author:     Jason E. Hale <jhale@FreeBSD.org>
AuthorDate: 2024-01-15 02:33:30 +0000
Commit:     Jason E. Hale <jhale@FreeBSD.org>
CommitDate: 2024-01-15 03:07:42 +0000

    www/qt6-webengine: Fix build on armv7 (hopefully)
    
    I accidentally removed parts of certain patches meant to fix build
    on armv7 in [1] which were introduced in [2]. QtWebEngine was building
    at the tail end of 6.5.3 on armv7, but I seem to have regressed it with
    the update to 6.6.0.
    
    [1] https://cgit.freebsd.org/ports/commit/?id=1d76bdf62dffad91834699701f41d3374dfb6a3a
    [2] https://cgit.freebsd.org/ports/commit/?id=dd2c7b778901a7b310d37f044c0018de1603c37f
    
    MFH:            2024Q1
    (cherry picked from commit 6fbf33981764df19398eab41edbc688f767d1e8b)
---
 ...y_chromium_third__party_skia_src_core_SkCpu.cpp | 26 +++++++++++++++++++++-
 ...romium_v8_src_base_platform_platform-freebsd.cc |  4 ++--
 2 files changed, 27 insertions(+), 3 deletions(-)

diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_skia_src_core_SkCpu.cpp b/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_skia_src_core_SkCpu.cpp
index d36141b5240f..85318d909ea7 100644
--- a/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_skia_src_core_SkCpu.cpp
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_skia_src_core_SkCpu.cpp
@@ -1,4 +1,4 @@
---- src/3rdparty/chromium/third_party/skia/src/core/SkCpu.cpp.orig	2022-04-21 18:48:31 UTC
+--- src/3rdparty/chromium/third_party/skia/src/core/SkCpu.cpp.orig	2023-11-20 16:08:07 UTC
 +++ src/3rdparty/chromium/third_party/skia/src/core/SkCpu.cpp
 @@ -73,6 +73,42 @@
          return features;
@@ -43,3 +43,27 @@
  #elif defined(SK_CPU_ARM64) && __has_include(<sys/auxv.h>)
      #include <sys/auxv.h>
  
+@@ -110,6 +146,23 @@
+             if (std::size(buf) != midr_el1.read(buf, std::size(buf))
+                           || 0 == memcmp(kMongoose3, buf, std::size(buf))) {
+                 features &= ~(SkCpu::ASIMDHP);
++            }
++        }
++        return features;
++    }
++
++#elif defined(SK_CPU_ARM32) && defined(__FreeBSD__)
++    #include <sys/auxv.h>
++
++    static uint32_t read_cpu_features() {
++        unsigned long hwcaps = 0;
++        uint32_t features = 0;
++
++        elf_aux_info(AT_HWCAP, (void *)&hwcaps, sizeof hwcaps);
++        if (hwcaps & HWCAP_NEON) {
++            features |= SkCpu::NEON;
++            if (hwcaps & HWCAP_VFPv4) {
++                features |= SkCpu::NEON_FMA|SkCpu::VFP_FP16;
+             }
+         }
+         return features;
diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_v8_src_base_platform_platform-freebsd.cc b/www/qt6-webengine/files/patch-src_3rdparty_chromium_v8_src_base_platform_platform-freebsd.cc
index 3c3165a63310..e03d9e35b45c 100644
--- a/www/qt6-webengine/files/patch-src_3rdparty_chromium_v8_src_base_platform_platform-freebsd.cc
+++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_v8_src_base_platform_platform-freebsd.cc
@@ -1,4 +1,4 @@
---- src/3rdparty/chromium/v8/src/base/platform/platform-freebsd.cc.orig	2022-02-07 13:39:41 UTC
+--- src/3rdparty/chromium/v8/src/base/platform/platform-freebsd.cc.orig	2023-11-20 16:08:07 UTC
 +++ src/3rdparty/chromium/v8/src/base/platform/platform-freebsd.cc
 @@ -43,14 +43,10 @@ TimezoneCache* OS::CreateTimezoneCache() {
    return new PosixDefaultTimezoneCache();
@@ -20,7 +20,7 @@
              lib_name = std::string(path);
            }
            result.push_back(SharedLibraryAddress(
-+#if defined(__i386__) || defined(OS_FREEBSD)
++#if defined(__i386__) || defined(__arm__) || defined(OS_FREEBSD)
 +              lib_name, static_cast<uintptr_t>(map->kve_start),
 +              static_cast<uintptr_t>(map->kve_end)));
 +#else