FreeBSD Bugzilla – Attachment 203348 Details for
Bug 236855
www/qt5-webengine: fails to build on aarch64 and armv7 after 5.12 update
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Help
|
New Account
|
Log In
Remember
[x]
|
Forgot Password
Login:
[x]
[patch]
aarch64 fixes
qt5-webengine.aarch64.diff (text/plain), 7.54 KB, created by
Jan Beich
on 2019-04-03 14:47:54 UTC
(
hide
)
Description:
aarch64 fixes
Filename:
MIME Type:
Creator:
Jan Beich
Created:
2019-04-03 14:47:54 UTC
Size:
7.54 KB
patch
obsolete
>From a2d5266b51222f52ac4bdbf3cfc61b5d3c3844ca Mon Sep 17 00:00:00 2001 >From: Jan Beich <jbeich@FreeBSD.org> >Date: Mon, 1 Apr 2019 10:21:35 +0000 >Subject: [PATCH] www/qt5-webengine: unbreak on aarch64 after r496989 >MIME-Version: 1.0 >Content-Type: text/plain; charset=UTF-8 >Content-Transfer-Encoding: 8bit > >In file included from ../../../../qtwebengine-everywhere-src-5.12.1/src/3rdparty/chromium/third_party/crc32c/src/src/crc32c.cc:11: >../../../../qtwebengine-everywhere-src-5.12.1/src/3rdparty/chromium/third_party/crc32c/src/src/./crc32c_arm64_linux_check.h:20:10: fatal error: 'sys/auxv.h' file not found > #include <sys/auxv.h> > ^~~~~~~~~~~~ >../../../../qtwebengine-everywhere-src-5.12.1/src/3rdparty/chromium/third_party/zlib/arm_features.c:16:10: fatal error: 'asm/hwcap.h' file not found > #include <asm/hwcap.h> > ^~~~~~~~~~~~~ >In file included from ../../../../qtwebengine-everywhere-src-5.12.1/src/3rdparty/chromium/third_party/skia/src/core/SkOpts.cpp:43: >../../../../qtwebengine-everywhere-src-5.12.1/src/3rdparty/chromium/third_party/skia/src/opts/SkRasterPipeline_opts.h:683:19: error: functional-style cast from 'neon::F' (aka 'V<float>') to '__fp16' is not allowed > __fp16 fp16 = __fp16(f); > ^~~~~~~~ > >PR: 236855 >Reported by: pkg-fallout >Submitted by: Mikaël Urankar >Approved by: kde (???) OR portmgr blanket >--- > ...c32c_src_src_crc32c__arm64__linux__check.h | 46 +++++++++++----- > ...rty_skia_src_opts_SkRasterPipeline__opts.h | 25 +++++++++ > ...chromium_third__party_zlib_arm__features.c | 55 ++++++++++++++----- > 3 files changed, 96 insertions(+), 30 deletions(-) > create mode 100644 www/qt5-webengine/files/patch-src_3rdparty_chromium_third__party_skia_src_opts_SkRasterPipeline__opts.h > >diff --git a/www/qt5-webengine/files/patch-src_3rdparty_chromium_third__party_crc32c_src_src_crc32c__arm64__linux__check.h b/www/qt5-webengine/files/patch-src_3rdparty_chromium_third__party_crc32c_src_src_crc32c__arm64__linux__check.h >index 7f93236f6b68..a9df631df242 100644 >--- a/www/qt5-webengine/files/patch-src_3rdparty_chromium_third__party_crc32c_src_src_crc32c__arm64__linux__check.h >+++ b/www/qt5-webengine/files/patch-src_3rdparty_chromium_third__party_crc32c_src_src_crc32c__arm64__linux__check.h >@@ -1,19 +1,35 @@ >---- src/3rdparty/chromium/third_party/crc32c/src/src/crc32c_arm64_linux_check.h.orig 2018-11-13 18:25:11 UTC >+--- src/3rdparty/chromium/third_party/crc32c/src/src/crc32c_arm64_linux_check.h.orig 2019-01-16 11:59:47 UTC > +++ src/3rdparty/chromium/third_party/crc32c/src/src/crc32c_arm64_linux_check.h >-@@ -29,6 +29,8 @@ extern "C" unsigned long getauxval(unsigned long type) >- namespace crc32c { >+@@ -16,6 +16,24 @@ > >- inline bool CanUseArm64Linux() { >-+return false; >-+#if 0 >- #if HAVE_STRONG_GETAUXVAL || HAVE_WEAK_GETAUXVAL >- // From 'arch/arm64/include/uapi/asm/hwcap.h' in Linux kernel source code. >- constexpr unsigned long kHWCAP_PMULL = 1 << 4; >-@@ -39,6 +41,7 @@ inline bool CanUseArm64Linux() { >- #else >- return false; >- #endif // HAVE_STRONG_GETAUXVAL || HAVE_WEAK_GETAUXVAL >-+#endif >- } >+ #if HAVE_ARM64_CRC32C >+ >++#if defined(__FreeBSD__) >++#include <machine/armreg.h> >++#include <sys/types.h> >++namespace crc32c { >++ >++inline bool CanUseArm64Linux() { >++ uint64_t id_aa64isar0; >++ >++ id_aa64isar0 = READ_SPECIALREG(ID_AA64ISAR0_EL1); >++ if ((ID_AA64ISAR0_AES(id_aa64isar0) == ID_AA64ISAR0_AES_PMULL) && \ >++ (ID_AA64ISAR0_CRC32(id_aa64isar0) == ID_AA64ISAR0_CRC32_BASE)) >++ return true; >++ return false; >++} >++ >++} // namespace crc32c >++ >++#elif defined(__linux__) >+ #if HAVE_STRONG_GETAUXVAL >+ #include <sys/auxv.h> >+ #elif HAVE_WEAK_GETAUXVAL >+@@ -43,6 +61,7 @@ inline bool CanUseArm64Linux() { > > } // namespace crc32c >+ >++#endif >+ #endif // HAVE_ARM64_CRC32C >+ >+ #endif // CRC32C_CRC32C_ARM_LINUX_CHECK_H_ >diff --git a/www/qt5-webengine/files/patch-src_3rdparty_chromium_third__party_skia_src_opts_SkRasterPipeline__opts.h b/www/qt5-webengine/files/patch-src_3rdparty_chromium_third__party_skia_src_opts_SkRasterPipeline__opts.h >new file mode 100644 >index 000000000000..10eeb82293e6 >--- /dev/null >+++ b/www/qt5-webengine/files/patch-src_3rdparty_chromium_third__party_skia_src_opts_SkRasterPipeline__opts.h >@@ -0,0 +1,25 @@ >+--- src/3rdparty/chromium/third_party/skia/src/opts/SkRasterPipeline_opts.h.orig 2019-01-16 10:59:47 UTC >++++ src/3rdparty/chromium/third_party/skia/src/opts/SkRasterPipeline_opts.h >+@@ -658,9 +658,7 @@ SI F approx_powf(F x, F y) { >+ >+ SI F from_half(U16 h) { >+ #if defined(__ARM_FP16_FORMAT_IEEE) >+- __fp16 fp16; >+- memcpy(&fp16, &h, sizeof(U16)); >+- return float(fp16); >++ return vcvt_f32_f16(h); >+ >+ #elif defined(JUMPER_IS_HSW) || defined(JUMPER_IS_AVX512) >+ return _mm256_cvtph_ps(h); >+@@ -680,10 +678,7 @@ SI F from_half(U16 h) { >+ >+ SI U16 to_half(F f) { >+ #if defined(__ARM_FP16_FORMAT_IEEE) >+- __fp16 fp16 = __fp16(f); >+- U16 u16; >+- memcpy(&u16, &fp16, sizeof(U16)); >+- return u16; >++ return vcvt_f16_f32(f); >+ >+ #elif defined(JUMPER_IS_HSW) || defined(JUMPER_IS_AVX512) >+ return _mm256_cvtps_ph(f, _MM_FROUND_CUR_DIRECTION); >diff --git a/www/qt5-webengine/files/patch-src_3rdparty_chromium_third__party_zlib_arm__features.c b/www/qt5-webengine/files/patch-src_3rdparty_chromium_third__party_zlib_arm__features.c >index e9aa60902f76..78038610a96f 100644 >--- a/www/qt5-webengine/files/patch-src_3rdparty_chromium_third__party_zlib_arm__features.c >+++ b/www/qt5-webengine/files/patch-src_3rdparty_chromium_third__party_zlib_arm__features.c >@@ -1,29 +1,54 @@ >---- src/3rdparty/chromium/third_party/zlib/arm_features.c.orig 2018-11-13 18:25:11 UTC >+--- src/3rdparty/chromium/third_party/zlib/arm_features.c.orig 2019-01-16 11:59:47 UTC > +++ src/3rdparty/chromium/third_party/zlib/arm_features.c >-@@ -16,12 +16,13 @@ >+@@ -10,20 +10,33 @@ >+ #include <pthread.h> >+ #include <stdint.h> >+ >+-#if defined(ARMV8_OS_ANDROID) >++int ZLIB_INTERNAL arm_cpu_enable_crc32 = 0; >++int ZLIB_INTERNAL arm_cpu_enable_pmull = 0; >++ >++static pthread_once_t cpu_check_inited_once = PTHREAD_ONCE_INIT; >++ >++#if defined (__FreeBSD__) >++#include <machine/armreg.h> >++#include <sys/types.h> >++static void init_arm_features(void) >++{ >++#if defined (__aarch64__) >++ uint64_t id_aa64isar0; >++ >++ id_aa64isar0 = READ_SPECIALREG(ID_AA64ISAR0_EL1); >++ if (ID_AA64ISAR0_AES(id_aa64isar0) == ID_AA64ISAR0_AES_PMULL) >++ arm_cpu_enable_pmull = 1; >++ if (ID_AA64ISAR0_CRC32(id_aa64isar0) == ID_AA64ISAR0_CRC32_BASE) >++ arm_cpu_enable_crc32 = 1; >++#endif >++} >++#elif defined(ARMV8_OS_ANDROID) >+ #include <cpu-features.h> >+ #elif defined(ARMV8_OS_LINUX) > #include <asm/hwcap.h> > #include <sys/auxv.h> >- #else >+-#else > -#error ### No ARM CPU features detection in your platform/OS >-+/* #error ### No ARM CPU features detection in your platform/OS */ >- #endif >- >- int ZLIB_INTERNAL arm_cpu_enable_crc32 = 0; >- int ZLIB_INTERNAL arm_cpu_enable_pmull = 0; >+-#endif > >-+#ifdef ARMV8_OS_LINUX >- static pthread_once_t cpu_check_inited_once = PTHREAD_ONCE_INIT; >+-int ZLIB_INTERNAL arm_cpu_enable_crc32 = 0; >+-int ZLIB_INTERNAL arm_cpu_enable_pmull = 0; > >+-static pthread_once_t cpu_check_inited_once = PTHREAD_ONCE_INIT; >+- > static void init_arm_features(void) >-@@ -53,8 +54,11 @@ static void init_arm_features(void) >+ { >+ uint64_t flag_crc32 = 0, flag_pmull = 0, capabilities = 0; >+@@ -53,6 +66,9 @@ static void init_arm_features(void) > if (capabilities & flag_pmull) > arm_cpu_enable_pmull = 1; > } >++#else >++#error ### No ARM CPU features detection in your platform/OS > +#endif > > void ZLIB_INTERNAL arm_check_features(void) > { >-+#ifdef ARMV8_OS_LINUX >- pthread_once(&cpu_check_inited_once, init_arm_features); >-+#endif >- }
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
Attachments on
bug 236855
:
203288
|
203289
|
203292
|
203301
|
203348
|
203356