Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 29 Nov 2018 17:26:30 +0000 (UTC)
From:      Emmanuel Vadot <manu@FreeBSD.org>
To:        ports-committers@freebsd.org, svn-ports-all@freebsd.org, svn-ports-head@freebsd.org
Subject:   svn commit: r486198 - in head/www/chromium: . files
Message-ID:  <201811291726.wATHQUmJ058821@repo.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: manu
Date: Thu Nov 29 17:26:30 2018
New Revision: 486198
URL: https://svnweb.freebsd.org/changeset/ports/486198

Log:
  www/chromium: Fix build on aarch64
  
  arm64 doesn't have elf_aux_info and FreeBSD doesn't support getauxval.
  For both boringssl and zlib disable the feature checking until we have
  a way to expose those feature to the user.
  Remove a patch (patch-third__party_boringssl_src_crypto_cpu-aarch64-linux.c) which is a no op
  as all the code in under OPENSSL_LINUX which isn't defined.
  
  Reviewed by:	cpm (earier version), bapt (earlier version)
  Approved by:	bapt (mentor, implicit)

Added:
  head/www/chromium/files/patch-third__party_zlib_arm__features.c   (contents, props changed)
Modified:
  head/www/chromium/Makefile
  head/www/chromium/files/patch-third__party_boringssl_src_crypto_cpu-aarch64-linux.c
  head/www/chromium/files/patch-third__party_zlib_BUILD.gn
  head/www/chromium/pkg-plist

Modified: head/www/chromium/Makefile
==============================================================================
--- head/www/chromium/Makefile	Thu Nov 29 16:55:34 2018	(r486197)
+++ head/www/chromium/Makefile	Thu Nov 29 17:26:30 2018	(r486198)
@@ -204,6 +204,13 @@ TEST_DISTFILES=		${PORTNAME}-${DISTVERSION}-testdata${
 
 .include <bsd.port.options.mk>
 
+# swiftshader/lib/{libEGL.so,libGLESv2.so} is x86 only
+.if ${ARCH} == aarch64
+PLIST_SUB+=    NOT_AARCH64="@comment "
+.else
+PLIST_SUB+=	NOT_AARCH64=""
+.endif
+
 BUILD_DEPENDS+=	${LOCALBASE}/bin/ar:devel/binutils
 EXTRA_PATCHES+=	${FILESDIR}/extra-patch-llvm-base
 
@@ -297,11 +304,13 @@ do-install:
 .endfor
 
 	# SwiftShader
+.if ${ARCH} != aarch64
 	@${MKDIR} ${STAGEDIR}${DATADIR}/swiftshader
 .for g in libEGL.so libGLESv2.so
 	${INSTALL_LIB} ${WRKSRC}/out/${BUILDTYPE}/swiftshader/${g} \
 		${STAGEDIR}${DATADIR}/swiftshader
 .endfor
+.endif
 
 post-install-DEBUG-on:
 	${INSTALL_LIB} ${WRKSRC}/out/${BUILDTYPE}/*.so \

Modified: head/www/chromium/files/patch-third__party_boringssl_src_crypto_cpu-aarch64-linux.c
==============================================================================
--- head/www/chromium/files/patch-third__party_boringssl_src_crypto_cpu-aarch64-linux.c	Thu Nov 29 16:55:34 2018	(r486197)
+++ head/www/chromium/files/patch-third__party_boringssl_src_crypto_cpu-aarch64-linux.c	Thu Nov 29 17:26:30 2018	(r486198)
@@ -1,40 +1,11 @@
---- third_party/boringssl/src/crypto/cpu-aarch64-linux.c.orig	2017-09-11 03:00:27.842983000 +0200
-+++ third_party/boringssl/src/crypto/cpu-aarch64-linux.c	2017-09-11 03:02:56.830632000 +0200
-@@ -16,7 +16,9 @@
- 
- #if defined(OPENSSL_AARCH64) && !defined(OPENSSL_STATIC_ARMCAP)
- 
-+#if defined(OPENSSL_LINUX)
- #include <sys/auxv.h>
-+#endif
- 
- #include <openssl/arm_arch.h>
- 
-@@ -26,6 +28,7 @@
- extern uint32_t OPENSSL_armcap_P;
- 
- void OPENSSL_cpuid_setup(void) {
-+#if defined(OPENSSL_LINUX)
-   unsigned long hwcap = getauxval(AT_HWCAP);
- 
-   /* See /usr/include/asm/hwcap.h on an aarch64 installation for the source of
-@@ -41,9 +44,11 @@
-      * either. */
-     return;
-   }
-+#endif
- 
-   OPENSSL_armcap_P |= ARMV7_NEON;
- 
-+#if defined(OPENSSL_LINUX)
-   if (hwcap & kAES) {
-     OPENSSL_armcap_P |= ARMV8_AES;
-   }
-@@ -56,6 +61,7 @@
-   if (hwcap & kSHA256) {
-     OPENSSL_armcap_P |= ARMV8_SHA256;
-   }
-+#endif
+--- third_party/boringssl/src/crypto/cpu-aarch64-linux.c.orig	2018-09-11 22:58:51 UTC
++++ third_party/boringssl/src/crypto/cpu-aarch64-linux.c
+@@ -60,3 +60,8 @@ void OPENSSL_cpuid_setup(void) {
  }
  
- #endif /* OPENSSL_AARCH64 && !OPENSSL_STATIC_ARMCAP */
+ #endif  // OPENSSL_AARCH64 && !OPENSSL_STATIC_ARMCAP
++
++#ifdef __FreeBSD__
++void OPENSSL_cpuid_setup(void) {
++}
++#endif

Modified: head/www/chromium/files/patch-third__party_zlib_BUILD.gn
==============================================================================
--- head/www/chromium/files/patch-third__party_zlib_BUILD.gn	Thu Nov 29 16:55:34 2018	(r486197)
+++ head/www/chromium/files/patch-third__party_zlib_BUILD.gn	Thu Nov 29 17:26:30 2018	(r486198)
@@ -1,5 +1,14 @@
---- third_party/zlib/BUILD.gn.orig	2018-06-13 00:11:08.000000000 +0200
-+++ third_party/zlib/BUILD.gn	2018-07-19 21:36:13.071700000 +0200
+--- third_party/zlib/BUILD.gn.orig	2018-08-08 21:11:58.000000000 +0200
++++ third_party/zlib/BUILD.gn	2018-09-12 01:00:34.445630000 +0200
+@@ -68,7 +68,7 @@
+       if (is_android) {
+         defines += [ "ARMV8_OS_ANDROID" ]
+       } else if (is_linux || is_chromeos) {
+-        defines += [ "ARMV8_OS_LINUX" ]
++#        defines += [ "ARMV8_OS_LINUX" ]
+       }
+     }
+   }
 @@ -327,7 +327,7 @@
      ]
    }

Added: head/www/chromium/files/patch-third__party_zlib_arm__features.c
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/www/chromium/files/patch-third__party_zlib_arm__features.c	Thu Nov 29 17:26:30 2018	(r486198)
@@ -0,0 +1,29 @@
+--- third_party/zlib/arm_features.c.orig	2018-09-11 22:58:25 UTC
++++ third_party/zlib/arm_features.c
+@@ -16,12 +16,13 @@
+ #include <asm/hwcap.h>
+ #include <sys/auxv.h>
+ #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;
+ 
++#ifdef ARMV8_OS_LINUX
+ 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)
+     if (capabilities & flag_pmull)
+         arm_cpu_enable_pmull = 1;
+ }
++#endif
+ 
+ void ZLIB_INTERNAL arm_check_features(void)
+ {
++#ifdef ARMV8_OS_LINUX
+     pthread_once(&cpu_check_inited_once, init_arm_features);
++#endif
+ }

Modified: head/www/chromium/pkg-plist
==============================================================================
--- head/www/chromium/pkg-plist	Thu Nov 29 16:55:34 2018	(r486197)
+++ head/www/chromium/pkg-plist	Thu Nov 29 17:26:30 2018	(r486198)
@@ -313,8 +313,8 @@ bin/chrome
 %%DATADIR%%/resources/inspector/worker_app.js
 %%DATADIR%%/resources/inspector/workspace_diff/workspace_diff_module.js
 %%DATADIR%%/snapshot_blob.bin
-%%DATADIR%%/swiftshader/libEGL.so
-%%DATADIR%%/swiftshader/libGLESv2.so
+%%NOT_AARCH64%%%%DATADIR%%/swiftshader/libEGL.so
+%%NOT_AARCH64%%%%DATADIR%%/swiftshader/libGLESv2.so
 %%DATADIR%%/v8_context_snapshot.bin
 %%DATADIR%%/views_mus_resources.pak
 %%DEBUG%%%%DATADIR%%/character_data_generator



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