Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 23 Dec 2020 16:11:00 +0000 (UTC)
From:      Mikael Urankar <mikael@FreeBSD.org>
To:        ports-committers@freebsd.org, svn-ports-all@freebsd.org, svn-ports-head@freebsd.org
Subject:   svn commit: r559002 - head/lang/v8/files
Message-ID:  <202012231611.0BNGB0bA099721@repo.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: mikael
Date: Wed Dec 23 16:11:00 2020
New Revision: 559002
URL: https://svnweb.freebsd.org/changeset/ports/559002

Log:
  lang/v8: Fix build on aarch64
  
  Approved by:	portmgr (tier-2 blanket)

Added:
  head/lang/v8/files/patch-third__party_zlib_BUILD.gn   (contents, props changed)
  head/lang/v8/files/patch-third__party_zlib_cpu__features.c   (contents, props changed)

Added: head/lang/v8/files/patch-third__party_zlib_BUILD.gn
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/lang/v8/files/patch-third__party_zlib_BUILD.gn	Wed Dec 23 16:11:00 2020	(r559002)
@@ -0,0 +1,11 @@
+--- third_party/zlib/BUILD.gn.orig	2020-11-16 14:31:04 UTC
++++ third_party/zlib/BUILD.gn
+@@ -108,6 +108,8 @@ if (use_arm_neon_optimizations) {
+       defines = [ "CRC32_ARMV8_CRC32" ]
+       if (is_android) {
+         defines += [ "ARMV8_OS_ANDROID" ]
++      } else if (is_bsd) {
++        defines += [ "ARMV8_OS_FREEBSD" ]
+       } else if (is_linux || is_chromeos) {
+         defines += [ "ARMV8_OS_LINUX" ]
+       } else if (is_mac) {

Added: head/lang/v8/files/patch-third__party_zlib_cpu__features.c
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/lang/v8/files/patch-third__party_zlib_cpu__features.c	Wed Dec 23 16:11:00 2020	(r559002)
@@ -0,0 +1,48 @@
+--- third_party/zlib/cpu_features.c.orig	2020-11-16 14:31:04 UTC
++++ third_party/zlib/cpu_features.c
+@@ -31,11 +31,20 @@ int ZLIB_INTERNAL x86_cpu_enable_simd = 0;
+ 
+ #ifndef CPU_NO_SIMD
+ 
+-#if defined(ARMV8_OS_ANDROID) || defined(ARMV8_OS_LINUX) || defined(ARMV8_OS_FUCHSIA)
++#if defined(ARMV8_OS_ANDROID) || defined(ARMV8_OS_LINUX) || defined(ARMV8_OS_FUCHSIA) || defined(ARMV8_OS_FREEBSD)
+ #include <pthread.h>
+ #endif
+ 
+-#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
++#elif defined(ARMV8_OS_ANDROID)
+ #include <cpu-features.h>
+ #elif defined(ARMV8_OS_LINUX)
+ #include <asm/hwcap.h>
+@@ -56,7 +65,7 @@ int ZLIB_INTERNAL x86_cpu_enable_simd = 0;
+ static void _cpu_check_features(void);
+ #endif
+ 
+-#if defined(ARMV8_OS_ANDROID) || defined(ARMV8_OS_LINUX) || defined(ARMV8_OS_MACOS) || defined(ARMV8_OS_FUCHSIA) || defined(X86_NOT_WINDOWS)
++#if defined(ARMV8_OS_ANDROID) || defined(ARMV8_OS_LINUX) || defined(ARMV8_OS_MACOS) || defined(ARMV8_OS_FUCHSIA) || defined(X86_NOT_WINDOWS) || defined(ARMV8_OS_FREEBSD)
+ #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)
+ #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;
+ #endif
+ }
+ #endif



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?202012231611.0BNGB0bA099721>