From 1d9acb4d8b69531397e3224491dae48f1404b9a5 Mon Sep 17 00:00:00 2001 From: Tom Callaway Date: Aug 14 2018 20:32:41 +0000 Subject: fix aarch64 compile --- diff --git a/0001-vpx_sum_squares_2d_i16_neon-Make-s2-a-uint64x1_t.patch b/0001-vpx_sum_squares_2d_i16_neon-Make-s2-a-uint64x1_t.patch new file mode 100644 index 0000000..f73ded3 --- /dev/null +++ b/0001-vpx_sum_squares_2d_i16_neon-Make-s2-a-uint64x1_t.patch @@ -0,0 +1,54 @@ +Upstream-Status: Submitted + +GCC aarch64 build fix [this is actually a libvpx patch, not a Chromium one] + +Sent to: https://chromium-review.googlesource.com/c/webm/libvpx/+/1136449 + +Signed-off-by: Raphael Kubo da Costa +--- +From c20bd394f18c47bf133b51d6a40399273c3f24e0 Mon Sep 17 00:00:00 2001 +From: Raphael Kubo da Costa +Date: Fri, 13 Jul 2018 14:29:09 +0200 +Subject: [PATCH] vpx_sum_squares_2d_i16_neon(): Make |s2| a uint64x1_t. + +This fixes the build with at least GCC 7.3, where it was previously failing +with: + +../../third_party/libvpx/source/libvpx/vpx_dsp/arm/sum_squares_neon.c: In function 'vpx_sum_squares_2d_i16_neon': +../../third_party/libvpx/source/libvpx/vpx_dsp/arm/sum_squares_neon.c:34:5: note: use -flax-vector-conversions to permit conversions between vectors with differing element types or numbers of subparts + s2 = vpaddl_u32(s1); + ^~ +../../third_party/libvpx/source/libvpx/vpx_dsp/arm/sum_squares_neon.c:34:8: error: incompatible types when assigning to type 'int64x1_t' from type 'uint64x1_t' + s2 = vpaddl_u32(s1); + ^ +../../third_party/libvpx/source/libvpx/vpx_dsp/arm/sum_squares_neon.c:81:8: error: incompatible types when assigning to type 'int64x1_t' from type 'uint64x1_t' + s2 = vadd_u64(vget_low_u64(s1), vget_high_u64(s1)); + ^ +../../third_party/libvpx/source/libvpx/vpx_dsp/arm/sum_squares_neon.c:84:24: error: incompatible type for argument 1 of 'vget_lane_u64' + return vget_lane_u64(s2, 0); + ^~ + +The generated assembly was verified to remain identical with both GCC and +LLVM. + +Change-Id: I2778428ee1fee0a674d0d4910347c2a717de21ac +--- + vpx_dsp/arm/sum_squares_neon.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/vpx_dsp/arm/sum_squares_neon.c b/vpx_dsp/arm/sum_squares_neon.c +index 8942ba83b..cfefad993 100644 +--- a/third_party/libvpx/source/libvpx/vpx_dsp/arm/sum_squares_neon.c ++++ b/third_party/libvpx/source/libvpx/vpx_dsp/arm/sum_squares_neon.c +@@ -14,7 +14,7 @@ + #include "./vpx_dsp_rtcd.h" + + uint64_t vpx_sum_squares_2d_i16_neon(const int16_t *src, int stride, int size) { +- int64x1_t s2; ++ uint64x1_t s2; + + if (size == 4) { + int16x4_t s[4]; +-- +2.14.4 + diff --git a/chromium.spec b/chromium.spec index a36d54d..2ec53dc 100644 --- a/chromium.spec +++ b/chromium.spec @@ -275,6 +275,8 @@ Patch106: chromium-68.0.3440.84-libjpeg.patch Patch107: chromium-68.0.3440.84-libwebp-shim.patch # GCC: do not std::move unique ptr of forward declared UrlIndex Patch108: chromium-68.0.3440.84-move-unique-ptr.patch +# https://github.com/OSSystems/meta-browser/blob/master/recipes-browser/chromium/files/0001-vpx_sum_squares_2d_i16_neon-Make-s2-a-uint64x1_t.patch +Patch109: 0001-vpx_sum_squares_2d_i16_neon-Make-s2-a-uint64x1_t.patch # Use chromium-latest.py to generate clean tarball from released build tarballs, found here: # http://build.chromium.org/buildbot/official/ @@ -801,6 +803,7 @@ udev. %patch106 -p1 -b .libjpeg %patch107 -p1 -b .webp %patch108 -p1 -b .move-unique-ptr +%patch109 -p1 -b .aarch64-int64x1_t # Change shebang in all relevant files in this directory and all subdirectories