diff --git a/chromium-88.0.4324.182-gcc-fix-swiftshader-libEGL-visibility.patch b/chromium-88.0.4324.182-gcc-fix-swiftshader-libEGL-visibility.patch new file mode 100644 index 00000000..d1bbe88a --- /dev/null +++ b/chromium-88.0.4324.182-gcc-fix-swiftshader-libEGL-visibility.patch @@ -0,0 +1,26 @@ +diff -up chromium-88.0.4324.182/third_party/swiftshader/src/OpenGL/libEGL/BUILD.gn.gcc-swiftshader-visibility chromium-88.0.4324.182/third_party/swiftshader/src/OpenGL/libEGL/BUILD.gn +--- chromium-88.0.4324.182/third_party/swiftshader/src/OpenGL/libEGL/BUILD.gn.gcc-swiftshader-visibility 2021-02-25 16:31:51.929335783 +0000 ++++ chromium-88.0.4324.182/third_party/swiftshader/src/OpenGL/libEGL/BUILD.gn 2021-02-25 16:31:51.929335783 +0000 +@@ -42,7 +42,8 @@ config("swiftshader_libEGL_private_confi + } else if (is_clang) { + defines += [ "EGLAPI=__attribute__((visibility(\"protected\"))) __attribute__((no_sanitize(\"function\")))" ] + } else { +- defines += [ "EGLAPI= " ] ++ cflags += [ "-fvisibility=protected" ] ++ defines += [ "EGLAPI=__attribute__((visibility(\"protected\")))" ] + } + } + } +diff -up chromium-88.0.4324.182/third_party/swiftshader/src/OpenGL/libGLESv2/BUILD.gn.gcc-swiftshader-visibility chromium-88.0.4324.182/third_party/swiftshader/src/OpenGL/libGLESv2/BUILD.gn +--- chromium-88.0.4324.182/third_party/swiftshader/src/OpenGL/libGLESv2/BUILD.gn.gcc-swiftshader-visibility 2021-02-25 18:16:28.576901417 +0000 ++++ chromium-88.0.4324.182/third_party/swiftshader/src/OpenGL/libGLESv2/BUILD.gn 2021-02-25 18:17:50.356567690 +0000 +@@ -57,7 +57,8 @@ config("swiftshader_libGLESv2_private_co + } else if (is_clang) { + defines += [ "GL_APICALL=__attribute__((visibility(\"protected\"))) __attribute__((no_sanitize(\"function\")))" ] + } else { +- defines += [ "GL_APICALL= " ] ++ cflags += [ "-fvisibility=protected" ] ++ defines += [ "GL_APICALL=__attribute__((visibility(\"protected\")))" ] + } + } + } diff --git a/chromium-88.0.4324.182-rawhide-gcc-std-max-fix.patch b/chromium-88.0.4324.182-rawhide-gcc-std-max-fix.patch new file mode 100644 index 00000000..d63c00ad --- /dev/null +++ b/chromium-88.0.4324.182-rawhide-gcc-std-max-fix.patch @@ -0,0 +1,24 @@ +diff -up chromium-88.0.4324.182/third_party/abseil-cpp/absl/debugging/failure_signal_handler.cc.stdmaxfix chromium-88.0.4324.182/third_party/abseil-cpp/absl/debugging/failure_signal_handler.cc +--- chromium-88.0.4324.182/third_party/abseil-cpp/absl/debugging/failure_signal_handler.cc.stdmaxfix 2021-02-17 13:16:27.120283969 -0500 ++++ chromium-88.0.4324.182/third_party/abseil-cpp/absl/debugging/failure_signal_handler.cc 2021-02-17 13:17:37.951617295 -0500 +@@ -135,7 +135,7 @@ static bool SetupAlternateStackOnce() { + #else + const size_t page_mask = sysconf(_SC_PAGESIZE) - 1; + #endif +- size_t stack_size = (std::max(SIGSTKSZ, 65536) + page_mask) & ~page_mask; ++ size_t stack_size = (std::max(SIGSTKSZ, static_cast(65536)) + page_mask) & ~page_mask; + #if defined(ABSL_HAVE_ADDRESS_SANITIZER) || \ + defined(ABSL_HAVE_MEMORY_SANITIZER) || defined(ABSL_HAVE_THREAD_SANITIZER) + // Account for sanitizer instrumentation requiring additional stack space. +diff -up chromium-88.0.4324.182/third_party/breakpad/breakpad/src/client/linux/handler/exception_handler.cc.stdmaxfix chromium-88.0.4324.182/third_party/breakpad/breakpad/src/client/linux/handler/exception_handler.cc +--- chromium-88.0.4324.182/third_party/breakpad/breakpad/src/client/linux/handler/exception_handler.cc.stdmaxfix 2021-02-17 14:39:04.556382532 -0500 ++++ chromium-88.0.4324.182/third_party/breakpad/breakpad/src/client/linux/handler/exception_handler.cc 2021-02-17 14:39:34.002519173 -0500 +@@ -138,7 +138,7 @@ void InstallAlternateStackLocked() { + // SIGSTKSZ may be too small to prevent the signal handlers from overrunning + // the alternative stack. Ensure that the size of the alternative stack is + // large enough. +- static const unsigned kSigStackSize = std::max(16384, SIGSTKSZ); ++ static const unsigned kSigStackSize = std::max(static_cast(16384), SIGSTKSZ); + + // Only set an alternative stack if there isn't already one, or if the current + // one is too small. diff --git a/chromium.spec b/chromium.spec index 3fe560d2..dc0ff4c7 100644 --- a/chromium.spec +++ b/chromium.spec @@ -216,7 +216,7 @@ Name: chromium%{chromium_channel}%{nsuffix} Name: chromium%{chromium_channel} %endif Version: %{majorversion}.0.4324.182 -Release: 1%{?dist} +Release: 2%{?dist} %if %{?freeworld} %if %{?shared} # chromium-libs-media-freeworld @@ -313,6 +313,10 @@ Patch74: chromium-88-StringPool-include.patch # Fix sandbox code to properly handle the new way that glibc handles fstat in Fedora 34+ # Thanks to Kevin Kofler for the fix. Patch75: chromium-88.0.4324.96-fstatfix.patch +# Rawhide (f35) glibc defines SIGSTKSZ as a long instead of a constant +Patch76: chromium-88.0.4324.182-rawhide-gcc-std-max-fix.patch +# Fix symbol visibility with gcc on swiftshader's libEGL +Patch77: chromium-88.0.4324.182-gcc-fix-swiftshader-libEGL-visibility.patch # Use lstdc++ on EPEL7 only Patch101: chromium-75.0.3770.100-epel7-stdc++.patch @@ -938,6 +942,10 @@ udev. %patch73 -p1 -b .ityp-include %patch74 -p1 -b .StringPool-include %patch75 -p1 -b .fstatfix +%if 0%{?fedora} >= 35 +%patch76 -p1 -b .sigstkszfix +%endif +%patch77 -p1 -b .gcc-swiftshader-visibility # Fedora branded user agent %if 0%{?fedora} @@ -1986,6 +1994,9 @@ getent group chrome-remote-desktop >/dev/null || groupadd -r chrome-remote-deskt %changelog +* Thu Feb 25 2021 Tom Callaway - 88.0.4234.182-2 +- fix swiftshader symbols in libEGL/libGLESv2 with gcc + * Wed Feb 17 2021 Tom Callaway - 88.0.4234.182-1 - update to 88.0.4234.182