From c59938463c4323e14e7533eaceb08fc16555b792 Mon Sep 17 00:00:00 2001 From: Tom Callaway Date: Wed, 22 Jul 2020 15:41:48 -0400 Subject: [PATCH] fix compile fail on el8 aarch64 --- ....0.4147.89-el8-arm-incompatible-ints.patch | 32 +++++++++++++++++++ chromium.spec | 8 +++++ 2 files changed, 40 insertions(+) create mode 100644 chromium-84.0.4147.89-el8-arm-incompatible-ints.patch diff --git a/chromium-84.0.4147.89-el8-arm-incompatible-ints.patch b/chromium-84.0.4147.89-el8-arm-incompatible-ints.patch new file mode 100644 index 0000000..3c6de8f --- /dev/null +++ b/chromium-84.0.4147.89-el8-arm-incompatible-ints.patch @@ -0,0 +1,32 @@ +diff -up chromium-84.0.4147.89/third_party/libjpeg_turbo/simd/arm/common/jidctfst-neon.c.arm-incompatible-ints chromium-84.0.4147.89/third_party/libjpeg_turbo/simd/arm/common/jidctfst-neon.c +--- chromium-84.0.4147.89/third_party/libjpeg_turbo/simd/arm/common/jidctfst-neon.c.arm-incompatible-ints 2020-07-22 15:17:07.171430022 -0400 ++++ chromium-84.0.4147.89/third_party/libjpeg_turbo/simd/arm/common/jidctfst-neon.c 2020-07-22 15:31:40.068296015 -0400 +@@ -84,8 +84,8 @@ void jsimd_idct_ifast_neon(void *dct_tab + bitmap = vorrq_s16(bitmap, row6); + bitmap = vorrq_s16(bitmap, row7); + +- int64_t left_ac_bitmap = vreinterpret_s64_s16(vget_low_s16(bitmap)); +- int64_t right_ac_bitmap = vreinterpret_s64_s16(vget_high_s16(bitmap)); ++ int64x1_t left_ac_bitmap = vreinterpret_s64_s16(vget_low_s16(bitmap)); ++ int64x1_t right_ac_bitmap = vreinterpret_s64_s16(vget_high_s16(bitmap)); + + if (left_ac_bitmap == 0 && right_ac_bitmap == 0) { + /* All AC coefficients are zero. */ +@@ -405,13 +405,13 @@ void jsimd_idct_ifast_neon(void *dct_tab + vqshrn_n_s16(col7, PASS1_BITS + 3)); + /* Clamp to range [0-255]. */ + uint8x16_t cols_01 = vreinterpretq_u8_s8( +- vaddq_s8(cols_01_s8, vdupq_n_u8(CENTERJSAMPLE))); ++ vaddq_s8(cols_01_s8, (int8x16_t)vdupq_n_u8(CENTERJSAMPLE))); + uint8x16_t cols_45 = vreinterpretq_u8_s8( +- vaddq_s8(cols_45_s8, vdupq_n_u8(CENTERJSAMPLE))); ++ vaddq_s8(cols_45_s8, (int8x16_t)vdupq_n_u8(CENTERJSAMPLE))); + uint8x16_t cols_23 = vreinterpretq_u8_s8( +- vaddq_s8(cols_23_s8, vdupq_n_u8(CENTERJSAMPLE))); ++ vaddq_s8(cols_23_s8, (int8x16_t)vdupq_n_u8(CENTERJSAMPLE))); + uint8x16_t cols_67 = vreinterpretq_u8_s8( +- vaddq_s8(cols_67_s8, vdupq_n_u8(CENTERJSAMPLE))); ++ vaddq_s8(cols_67_s8, (int8x16_t)vdupq_n_u8(CENTERJSAMPLE))); + + /* Transpose block ready for store. */ + uint32x4x2_t cols_0415 = vzipq_u32(vreinterpretq_u32_u8(cols_01), diff --git a/chromium.spec b/chromium.spec index a48a394..1de33dc 100644 --- a/chromium.spec +++ b/chromium.spec @@ -301,6 +301,10 @@ Patch104: chromium-84.0.4147.89-epel7-old-cups.patch Patch105: chromium-84.0.4147.89-el-constexpr.patch # Still not wrong, but it seems like only EL needs it Patch106: chromium-77-clang.patch +# ARM failures on el8 related to int clashes +# error: incompatible types when initializing type 'int64_t' {aka 'long int'} using type 'int64x1_t' +# note: expected 'int8x16_t' but argument is of type 'uint8x16_t' +Patch107: chromium-84.0.4147.89-el8-arm-incompatible-ints.patch # Enable VAAPI support on Linux # NOTE: This patch will never land upstream @@ -916,6 +920,10 @@ udev. %endif %endif +%if 0%{?rhel} == 8 +%patch107 -p1 -b .el8-arm-incompatible-ints +%endif + # Feature specific patches %if %{use_vaapi} %patch202 -p1 -b .vaapi