The latest spin of arm64/armhf support for chromium. My arm64 patches
are now upstream, but a new patch is needed for chrome 51 (included
and also submitted upstream). 

Riku

diff -Nru chromium-browser-51.0.2704.63/debian/changelog chromium-browser-51.0.2704.63/debian/changelog
--- chromium-browser-51.0.2704.63/debian/changelog	2016-05-29 01:43:34.000000000 +0000
+++ chromium-browser-51.0.2704.63/debian/changelog	2016-06-02 18:21:00.000000000 +0000
@@ -1,3 +1,10 @@
+chromium-browser (51.0.2704.63-2.1) unstable; urgency=medium
+
+  * Non-maintainer upload.
+  * Add arm64/armhf builds
+
+ -- Riku Voipio <riku.voi...@linaro.org>  Thu, 02 Jun 2016 21:20:42 +0300
+
 chromium-browser (51.0.2704.63-2) unstable; urgency=medium
 
   * Fix libspeechd build error.
diff -Nru chromium-browser-51.0.2704.63/debian/control chromium-browser-51.0.2704.63/debian/control
--- chromium-browser-51.0.2704.63/debian/control	2016-05-29 03:56:21.000000000 +0000
+++ chromium-browser-51.0.2704.63/debian/control	2016-06-02 18:14:14.000000000 +0000
@@ -84,7 +84,7 @@
 Standards-Version: 3.9.7
 
 Package: chromium
-Architecture: i386 amd64
+Architecture: i386 amd64 armhf arm64
 Built-Using: ${Built-Using}
 Depends:
  ${misc:Depends},
@@ -122,7 +122,7 @@
  ro, ru, sk, sl, sr, sv, sw, ta, te, th, tr, uk, vi, zh-CN, zh-TW
 
 Package: chromedriver
-Architecture: i386 amd64
+Architecture: i386 amd64 armhf arm64
 Depends:
  ${misc:Depends},
  ${shlibs:Depends},
diff -Nru chromium-browser-51.0.2704.63/debian/patches/aarch64-fix-sigsys.patch chromium-browser-51.0.2704.63/debian/patches/aarch64-fix-sigsys.patch
--- chromium-browser-51.0.2704.63/debian/patches/aarch64-fix-sigsys.patch	1970-01-01 00:00:00.000000000 +0000
+++ chromium-browser-51.0.2704.63/debian/patches/aarch64-fix-sigsys.patch	2016-06-02 18:24:16.000000000 +0000
@@ -0,0 +1,25 @@
+Ddescription: Fix build on arm64
+Author: Riku Voipio <riku.voi...@linaro.org>
+Forwarded: https://codereview.chromium.org/2033733002/
+
+Index: chromium-browser-50.0.2661.94/mojo/shell/runner/host/linux_sandbox.cc
+===================================================================
+--- chromium-browser-50.0.2661.94.orig/mojo/shell/runner/host/linux_sandbox.cc
++++ chromium-browser-50.0.2661.94/mojo/shell/runner/host/linux_sandbox.cc
+@@ -39,12 +39,16 @@ intptr_t SandboxSIGSYSHandler(const stru
+   const sandbox::syscall_broker::BrokerProcess* broker_process =
+       static_cast<const sandbox::syscall_broker::BrokerProcess*>(aux);
+   switch (args.nr) {
++#if defined(__NR_access)
+     case __NR_access:
+       return broker_process->Access(reinterpret_cast<const char*>(args.args[0]),
+                                     static_cast<int>(args.args[1]));
++#endif
++#if defined(__NR_open)
+     case __NR_open:
+       return broker_process->Open(reinterpret_cast<const char*>(args.args[0]),
+                                   static_cast<int>(args.args[1]));
++#endif
+     case __NR_faccessat:
+       if (static_cast<int>(args.args[0]) == AT_FDCWD) {
+         return broker_process->Access(
diff -Nru chromium-browser-51.0.2704.63/debian/patches/series chromium-browser-51.0.2704.63/debian/patches/series
--- chromium-browser-51.0.2704.63/debian/patches/series	2016-05-29 01:27:17.000000000 +0000
+++ chromium-browser-51.0.2704.63/debian/patches/series	2016-06-02 18:21:25.000000000 +0000
@@ -19,3 +19,4 @@
 
 webui.patch
 system/speechd.patch
+aarch64-fix-sigsys.patch
diff -Nru chromium-browser-51.0.2704.63/debian/rules chromium-browser-51.0.2704.63/debian/rules
--- chromium-browser-51.0.2704.63/debian/rules	2016-05-29 05:43:33.000000000 +0000
+++ chromium-browser-51.0.2704.63/debian/rules	2016-06-02 18:25:23.000000000 +0000
@@ -5,6 +5,7 @@
 
 # enable all build hardening flags
 export DEB_BUILD_MAINT_OPTIONS=hardening=+all
+DEB_HOST_ARCH ?= $(shell dpkg-architecture -qDEB_HOST_ARCH)
 
 # linker flags to avoid memory allocation issues on i386
 export LDFLAGS+=-Wl,--no-keep-memory -Wl,--reduce-memory-overheads -Wl,--hash-size=7919
@@ -19,6 +20,22 @@
 # treat all warnings as errors
 defines=werror=
 
+ifeq (arm64,$(DEB_HOST_ARCH))
+defines += \
+        target_arch=arm64
+endif
+
+ifeq (armhf,$(DEB_HOST_ARCH))
+defines += \
+        arm_neon=0 \
+        arm_use_neon=0 \
+        v8_use_arm_eabi_hardfloat=true \
+        arm_float_abi=hard \
+        arm_thumb=1 \
+        armv7=1 \
+        arm_version=7
+endif
+
 # build with gcc instead of clang
 defines+=clang=0
 defines+=clang_use_chrome_plugins=
diff -Nru chromium-browser-51.0.2704.63/debian/scripts/chromium chromium-browser-51.0.2704.63/debian/scripts/chromium
--- chromium-browser-51.0.2704.63/debian/scripts/chromium	2016-02-12 02:52:44.000000000 +0000
+++ chromium-browser-51.0.2704.63/debian/scripts/chromium	2016-06-02 18:20:36.000000000 +0000
@@ -30,11 +30,15 @@
 For more information, please read and possibly provide input to their
 bug tracking system at http://crbug.com/348761.";
 
-# Check whether this system supports sse2
-if test -z "$(grep sse2 /proc/cpuinfo)"; then
-  xmessage "$nosse2"
-  exit 1
-fi
+case `uname -m` in
+    i386|i586|i686|x86_64)
+        # Check whether this system supports sse2
+        if ! grep -q sse2 /proc/cpuinfo; then
+            xmessage "$nosse2"
+            exit 1
+        fi
+        ;;
+esac
 
 # Source additional settings
 for file in /etc/chromium.d/*; do

Reply via email to