FreeBSD Bugzilla – Attachment 203376 Details for
Bug 236441
www/chromium: stops with unknown type name '__uint128_t' on arm64
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Help
|
New Account
|
Log In
Remember
[x]
|
Forgot Password
Login:
[x]
[patch]
patch
chromium.diff (text/plain), 6.89 KB, created by
Mikael Urankar
on 2019-04-04 13:03:05 UTC
(
hide
)
Description:
patch
Filename:
MIME Type:
Creator:
Mikael Urankar
Created:
2019-04-04 13:03:05 UTC
Size:
6.89 KB
patch
obsolete
>Index: files/patch-build_detect__host__arch.py >=================================================================== >--- files/patch-build_detect__host__arch.py (nonexistent) >+++ files/patch-build_detect__host__arch.py (working copy) >@@ -0,0 +1,11 @@ >+--- build/detect_host_arch.py.orig 2019-04-04 10:22:51.354518000 +0200 >++++ build/detect_host_arch.py 2019-04-04 10:23:07.641855000 +0200 >+@@ -19,6 +19,8 @@ def HostArch(): >+ host_arch = 'ia32' >+ elif host_arch in ['x86_64', 'amd64']: >+ host_arch = 'x64' >++ elif host_arch.startswith('arm64'): >++ host_arch = 'arm64' >+ elif host_arch.startswith('arm'): >+ host_arch = 'arm' >+ elif host_arch.startswith('aarch64'): > >Property changes on: files/patch-build_detect__host__arch.py >___________________________________________________________________ >Added: fbsd:nokeywords >## -0,0 +1 ## >+yes >\ No newline at end of property >Added: svn:eol-style >## -0,0 +1 ## >+native >\ No newline at end of property >Added: svn:mime-type >## -0,0 +1 ## >+text/plain >\ No newline at end of property >Index: files/patch-third__party_boringssl_src_crypto_cpu-aarch64-linux.c >=================================================================== >--- files/patch-third__party_boringssl_src_crypto_cpu-aarch64-linux.c (revision 497699) >+++ files/patch-third__party_boringssl_src_crypto_cpu-aarch64-linux.c (working copy) >@@ -1,54 +1,42 @@ >---- third_party/boringssl/src/crypto/cpu-aarch64-linux.c.orig 2018-08-08 21:13:09.000000000 +0200 >-+++ third_party/boringssl/src/crypto/cpu-aarch64-linux.c 2018-12-02 10:28:41.672362000 +0100 >-@@ -14,49 +14,7 @@ >+--- third_party/boringssl/src/crypto/cpu-aarch64-linux.c.orig 2019-03-02 05:16:23.000000000 +0100 >++++ third_party/boringssl/src/crypto/cpu-aarch64-linux.c 2019-04-04 14:11:36.609672000 +0200 >+@@ -26,7 +26,32 @@ > >- #include <openssl/cpu.h> >+ extern uint32_t OPENSSL_armcap_P; > >--#if defined(OPENSSL_AARCH64) && defined(OPENSSL_LINUX) && \ >-- !defined(OPENSSL_STATIC_ARMCAP) >-- >--#include <sys/auxv.h> >-- >--#include <openssl/arm_arch.h> >-- >--#include "internal.h" >-- >-- >--extern uint32_t OPENSSL_armcap_P; >-- >-+#ifdef __FreeBSD__ >++#if defined(__FreeBSD__) >++#include <sys/types.h> >++#include <machine/armreg.h> >++ > void OPENSSL_cpuid_setup(void) { >-- unsigned long hwcap = getauxval(AT_HWCAP); >-- >-- // See /usr/include/asm/hwcap.h on an aarch64 installation for the source of >-- // these values. >-- static const unsigned long kNEON = 1 << 1; >-- static const unsigned long kAES = 1 << 3; >-- static const unsigned long kPMULL = 1 << 4; >-- static const unsigned long kSHA1 = 1 << 5; >-- static const unsigned long kSHA256 = 1 << 6; >-- >-- if ((hwcap & kNEON) == 0) { >-- // Matching OpenSSL, if NEON is missing, don't report other features >-- // either. >-- return; >-- } >-- >-- OPENSSL_armcap_P |= ARMV7_NEON; >-- >-- if (hwcap & kAES) { >-- OPENSSL_armcap_P |= ARMV8_AES; >-- } >-- if (hwcap & kPMULL) { >-- OPENSSL_armcap_P |= ARMV8_PMULL; >-- } >-- if (hwcap & kSHA1) { >-- OPENSSL_armcap_P |= ARMV8_SHA1; >-- } >-- if (hwcap & kSHA256) { >-- OPENSSL_armcap_P |= ARMV8_SHA256; >-- } >++ uint64_t id_aa64isar0; >++ >++ id_aa64isar0 = READ_SPECIALREG(ID_AA64ISAR0_EL1); >++ >++ OPENSSL_armcap_P |= ARMV7_NEON; >++ >++ if (ID_AA64ISAR0_AES(id_aa64isar0) == ID_AA64ISAR0_AES_BASE) { >++ OPENSSL_armcap_P |= ARMV8_AES; >++ } >++ if (ID_AA64ISAR0_AES(id_aa64isar0) == ID_AA64ISAR0_AES_PMULL) { >++ OPENSSL_armcap_P |= ARMV8_PMULL; >++ } >++ if (ID_AA64ISAR0_SHA1(id_aa64isar0) == ID_AA64ISAR0_SHA1_BASE) { >++ OPENSSL_armcap_P |= ARMV8_SHA1; >++ } >++ if(ID_AA64ISAR0_SHA2(id_aa64isar0) == ID_AA64ISAR0_SHA2_BASE) { >++ OPENSSL_armcap_P |= ARMV8_SHA256; >++ } >++} >++#else // linux >++void OPENSSL_cpuid_setup(void) { >+ unsigned long hwcap = getauxval(AT_HWCAP); >+ >+ // See /usr/include/asm/hwcap.h on an aarch64 installation for the source of >+@@ -58,5 +83,6 @@ void OPENSSL_cpuid_setup(void) { >+ OPENSSL_armcap_P |= ARMV8_SHA256; >+ } > } >-- >--#endif // OPENSSL_AARCH64 && !OPENSSL_STATIC_ARMCAP > +#endif >+ >+ #endif // OPENSSL_AARCH64 && !OPENSSL_STATIC_ARMCAP >Index: files/patch-third_party_crc32c_src_src_crc32c__arm64__linux__check.h >=================================================================== >--- files/patch-third_party_crc32c_src_src_crc32c__arm64__linux__check.h (revision 497699) >+++ files/patch-third_party_crc32c_src_src_crc32c__arm64__linux__check.h (working copy) >@@ -1,19 +1,35 @@ >---- third_party/crc32c/src/src/crc32c_arm64_linux_check.h 2018-04-13 18:15:04 UTC >-+++ third_party/crc32c/src/src/crc32c_arm64_linux_check.h >-@@ -29,6 +29,8 @@ extern "C" unsigned long getauxval(unsigned long type) >- namespace crc32c { >+--- third_party/crc32c/src/src/crc32c_arm64_linux_check.h.orig 2019-03-02 05:16:23.000000000 +0100 >++++ third_party/crc32c/src/src/crc32c_arm64_linux_check.h 2019-04-04 14:12:55.066904000 +0200 >+@@ -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 >+ #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 > >- } // namespace crc32c >+ #endif // CRC32C_CRC32C_ARM_LINUX_CHECK_H_ >Index: files/patch-tools_gn_util_sys__info.cc >=================================================================== >--- files/patch-tools_gn_util_sys__info.cc (nonexistent) >+++ files/patch-tools_gn_util_sys__info.cc (working copy) >@@ -0,0 +1,11 @@ >+--- tools/gn/util/sys_info.cc.orig 2019-04-04 13:16:59.443413000 +0200 >++++ tools/gn/util/sys_info.cc 2019-04-04 13:17:14.281724000 +0200 >+@@ -28,6 +28,8 @@ std::string OperatingSystemArchitecture() { >+ arch = "x86"; >+ } else if (arch == "amd64") { >+ arch = "x86_64"; >++ } else if (arch == "arm64") { >++ arch = "aarch64"; >+ } else if (std::string(info.sysname) == "AIX") { >+ arch = "ppc64"; >+ } > >Property changes on: files/patch-tools_gn_util_sys__info.cc >___________________________________________________________________ >Added: fbsd:nokeywords >## -0,0 +1 ## >+yes >\ No newline at end of property >Added: svn:eol-style >## -0,0 +1 ## >+native >\ No newline at end of property >Added: svn:mime-type >## -0,0 +1 ## >+text/plain >\ No newline at end of property
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 236441
:
203376
|
203677
|
203682
|
203732