From 5cbc3dd135bf2caa310a6cfafd85a72f5b89f959 Mon Sep 17 00:00:00 2001 From: Tom Callaway Date: Wed, 16 Oct 2019 11:03:38 -0400 Subject: [PATCH] upstream fix for zlib symbol exports with gcc --- ...5.120-gcc-fix-zlib-symbol-visibility.patch | 36 +++++++++++++++++++ chromium.spec | 9 ++++- 2 files changed, 44 insertions(+), 1 deletion(-) create mode 100644 chromium-77.0.3865.120-gcc-fix-zlib-symbol-visibility.patch diff --git a/chromium-77.0.3865.120-gcc-fix-zlib-symbol-visibility.patch b/chromium-77.0.3865.120-gcc-fix-zlib-symbol-visibility.patch new file mode 100644 index 00000000..47fd97d5 --- /dev/null +++ b/chromium-77.0.3865.120-gcc-fix-zlib-symbol-visibility.patch @@ -0,0 +1,36 @@ +From 9c3aed099b010a75594a0efd523774c4c9a5e3d2 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?J=C3=BCri=20Valdmann?= +Date: Tue, 15 Oct 2019 12:10:55 +0000 +Subject: [PATCH] GCC: Fix zlib symbol visibility macro + +GCC parses the function __attribute__ syntax a bit differently from Clang, +associating the attribute with the return type instead of the function if the +return type is a pointer. This leads to certain zlib symbols, such as +Cr_z_zError, to fail to be properly exported from the shared library. Fix by +using ZEXTERN instead of ZEXPORT for the attribute which works the same for both +GCC and Clang. + +Bug: 819294 +Change-Id: I5707d1b0627a503df08df9ac0bb65fda69453989 +Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1859788 +Reviewed-by: Thomas Anderson +Reviewed-by: Nico Weber +Commit-Queue: Nico Weber +Cr-Commit-Position: refs/heads/master@{#705917} +--- + third_party/zlib/chromeconf.h | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/third_party/zlib/chromeconf.h b/third_party/zlib/chromeconf.h +index e9aa3867d8512..666093d696a58 100644 +--- a/third_party/zlib/chromeconf.h ++++ b/third_party/zlib/chromeconf.h +@@ -13,7 +13,7 @@ + #define ZEXTERN __declspec(dllimport) + #endif + #elif defined(ZLIB_IMPLEMENTATION) +-#define ZEXPORT __attribute__((visibility("default"))) ++#define ZEXTERN __attribute__((visibility("default"))) + #endif + #endif + diff --git a/chromium.spec b/chromium.spec index f6a58735..8994527e 100644 --- a/chromium.spec +++ b/chromium.spec @@ -162,7 +162,7 @@ Name: chromium%{chromium_channel}%{?freeworld:-freeworld} Name: chromium%{chromium_channel} %endif Version: %{majorversion}.0.3865.120 -Release: 3%{?dist} +Release: 4%{?dist} Summary: A WebKit (Blink) powered web browser Url: http://www.chromium.org/Home License: BSD and LGPLv2+ and ASL 2.0 and IJG and MIT and GPLv2+ and ISC and OpenSSL and (MPLv1.1 or GPLv2 or LGPLv2) @@ -225,6 +225,9 @@ Patch60: chromium-77.0.3865.75-missing-limits.patch Patch61: chromium-77.0.3865.90-linked-hash-set.patch # https://chromium.googlesource.com/chromium/src/+/e79d9d0e06b825d2e62b38db03248c0e6ceec7e4 Patch62: chromium-77.0.3865.120-silence-outdated-build-noise.patch +# https://chromium.googlesource.com/chromium/src/+/9c3aed099b010a75594a0efd523774c4c9a5e3d2 +Patch63: chromium-77.0.3865.120-gcc-fix-zlib-symbol-visibility.patch + # Use lstdc++ on EPEL7 only Patch101: chromium-75.0.3770.100-epel7-stdc++.patch @@ -751,6 +754,7 @@ udev. %patch60 -p1 -b .missing-limits %patch61 -p1 -b .linked-hash-set %patch62 -p1 -b .silence-outdated-build-noise +%patch63 -p1 -b .gcc-fix-zlib-symbol-visibility # Fedora branded user agent %if 0%{?fedora} @@ -1665,6 +1669,9 @@ getent group chrome-remote-desktop >/dev/null || groupadd -r chrome-remote-deskt %changelog +* Wed Oct 16 2019 Tom Callaway - 77.0.3865.120-4 +- upstream fix for zlib symbol exports with gcc + * Wed Oct 16 2019 Tom Callaway - 77.0.3865.120-3 - silence outdated build noise (bz1745745)