commit 3480d852247a384ee89d5653e1b2773c8f50832a
Author: Leigh Scott <leigh123linux(a)gmail.com>
Date: Mon Sep 13 17:33:48 2021 +0100
Add patch to support old clang
chromium-clang-nomerge.patch | 43 +++++++++++++++++++++++++++++++++++++++++++
chromium-freeworld.spec | 2 ++
2 files changed, 45 insertions(+)
---
diff --git a/chromium-clang-nomerge.patch b/chromium-clang-nomerge.patch
new file mode 100644
index 0000000..b4513f2
--- /dev/null
+++ b/chromium-clang-nomerge.patch
@@ -0,0 +1,43 @@
+Upstream-status: Inapproriate
+
+Upstream suggests to use Chromium's hermetic clang
+instead.
+
+Signed-off-by: Maksim Sisov <msisov(a)igalia.com>
+---
+From bde3186ccba169391fb428fcc296b2236ada0010 Mon Sep 17 00:00:00 2001
+From: Maksim Sisov <msisov(a)igalia.com>
+Date: Wed, 5 May 2021 15:20:43 +0300
+Subject: [PATCH] nomerge attribute on declaration is only available since
+ clang 12
+
+This change fixes builds with older clangs that do not allow
+nomerge attributes on declaration. Otherwise, the following error
+is produced -
+
+build error: 'nomerge' attribute cannot be applied to a declaration
+
+See
https://reviews.llvm.org/D92800
+
+Change-Id: I32e1f7dc9049737d54d8a16de5308aa5aae1ced1
+---
+ base/compiler_specific.h | 3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+
+diff --git a/base/compiler_specific.h b/base/compiler_specific.h
+index 6693e9ea33e9..d3b425abe9ca 100644
+--- a/base/compiler_specific.h
++++ b/base/compiler_specific.h
+@@ -340,7 +340,8 @@ inline constexpr bool AnalyzerAssumeTrue(bool arg) {
+ #endif // defined(__clang_analyzer__)
+
+ // Use nomerge attribute to disable optimization of merging multiple same calls.
+-#if defined(__clang__) && __has_attribute(nomerge)
++#if defined(__clang__) && (__clang_major__ >= 12) && \
++ __has_attribute(nomerge) && !defined(OS_CHROMEOS)
+ #define NOMERGE [[clang::nomerge]]
+ #else
+ #define NOMERGE
+--
+2.25.1
+
diff --git a/chromium-freeworld.spec b/chromium-freeworld.spec
index 30a3ddf..ad3cea6 100644
--- a/chromium-freeworld.spec
+++ b/chromium-freeworld.spec
@@ -162,8 +162,10 @@ Patch201: chromium-93-EnumTable-crash.patch
# Arch Linux patches:
Patch226: chromium-93-ffmpeg-4.4.patch
+# Suse patches:
Patch231: remove-llvm13-warning-flags.patch
Patch232: chromium-91-sql-standard-layout-type.patch
+Patch233: chromium-clang-nomerge.patch
# Upstream patches:
Patch251: chromium-sandbox-syscall-broker-use-struct-kernel_stat.patch