public inbox for git-commits@fedoraproject.org
help / color / mirror / Atom feed
* [rpms/chromium] epel9-next: fixed chromium FTBFS on RHEL7, error: undefined symbol: unsigned long cc::PaintOpWriter::SerializedSize<unsigned long>
@ 2026-08-07 16:05 Than Ngo
  0 siblings, 0 replies; only message in thread
From: Than Ngo @ 2026-08-07 16:05 UTC (permalink / raw)
  To: git-commits

A new commit has been pushed.

Repo   : rpms/chromium
Branch : epel9-next
Commit : d895b6172822e8b31e83c3a8cc578db954f70dbd
Author : Than Ngo <than@redhat.com>
Date   : 2023-08-16T22:52:58+02:00
Stats  : +67/-0 in 2 file(s)
URL    : https://src.fedoraproject.org/rpms/chromium/c/d895b6172822e8b31e83c3a8cc578db954f70dbd?branch=epel9-next

Log:
fixed chromium FTBFS on RHEL7, error: undefined symbol: unsigned long cc::PaintOpWriter::SerializedSize<unsigned long>

---
diff --git a/chromium-116-constexpr.patch b/chromium-116-constexpr.patch
new file mode 100644
index 0000000..08b5930
--- /dev/null
+++ b/chromium-116-constexpr.patch
@@ -0,0 +1,65 @@
+diff -up chromium-116.0.5845.96/cc/paint/paint_op_writer.h.me chromium-116.0.5845.96/cc/paint/paint_op_writer.h
+--- chromium-116.0.5845.96/cc/paint/paint_op_writer.h.me	2023-08-16 19:09:48.998173285 +0200
++++ chromium-116.0.5845.96/cc/paint/paint_op_writer.h	2023-08-16 21:13:44.442431527 +0200
+@@ -104,7 +104,16 @@ class CC_PAINT_EXPORT PaintOpWriter {
+ 
+  private:
+   template <typename T>
+-  static constexpr size_t SerializedSizeSimple();
++  static constexpr size_t SerializedSizeSimple() {
++    static_assert(!std::is_pointer_v<T>);
++    return base::bits::AlignUp(sizeof(T), kDefaultAlignment);
++  }
++  // size_t is always serialized as uint64_t to make the serialized result
++  // portable between 32bit and 64bit processes.
++  template <>
++  constexpr size_t SerializedSizeSimple<size_t>() {
++    return base::bits::AlignUp(sizeof(uint64_t), kDefaultAlignment);
++  }
+ 
+  public:
+   // SerializedSize() returns the maximum serialized size of the given type or
+@@ -115,7 +124,10 @@ class CC_PAINT_EXPORT PaintOpWriter {
+   // deserialization, and make it possible to allow dynamic sizing for some
+   // data types (see the specialized/overloaded functions).
+   template <typename T>
+-  static constexpr size_t SerializedSize();
++  static constexpr size_t SerializedSize() {
++    static_assert(std::is_arithmetic_v<T> || std::is_enum_v<T>);
++    return SerializedSizeSimple<T>();
++  }
+   template <typename T>
+   static constexpr size_t SerializedSize(const T& data);
+   static size_t SerializedSize(const PaintImage& image);
+@@ -360,19 +372,6 @@ class CC_PAINT_EXPORT PaintOpWriter {
+   const bool enable_security_constraints_;
+ };
+ 
+-template <typename T>
+-constexpr size_t PaintOpWriter::SerializedSizeSimple() {
+-  static_assert(!std::is_pointer_v<T>);
+-  return base::bits::AlignUp(sizeof(T), kDefaultAlignment);
+-}
+-
+-// size_t is always serialized as two uint32_ts to make the serialized result
+-// portable between 32bit and 64bit processes.
+-template <>
+-constexpr size_t PaintOpWriter::SerializedSizeSimple<size_t>() {
+-  return base::bits::AlignUp(2 * sizeof(uint32_t), kDefaultAlignment);
+-}
+-
+ template <>
+ constexpr size_t PaintOpWriter::SerializedSize<SkGainmapInfo>() {
+   return SerializedSizeSimple<SkColor4f>() +  // fGainmapRatioMin
+@@ -386,11 +385,6 @@ constexpr size_t PaintOpWriter::Serializ
+ }
+ 
+ template <typename T>
+-constexpr size_t PaintOpWriter::SerializedSize() {
+-  static_assert(std::is_arithmetic_v<T> || std::is_enum_v<T>);
+-  return SerializedSizeSimple<T>();
+-}
+-template <typename T>
+ constexpr size_t PaintOpWriter::SerializedSize(const T& data) {
+   return SerializedSizeSimple<T>();
+ }

diff --git a/chromium.spec b/chromium.spec
index a23f423..875cb73 100644
--- a/chromium.spec
+++ b/chromium.spec
@@ -324,6 +324,7 @@ Patch107: chromium-99.0.4844.51-el7-extra-operator.patch
 # workaround for clang bug on el7
 Patch109: chromium-114-wireless-el7.patch
 Patch110: chromium-115-buildflag-el7.patch
+Patch111: chromium-116-constexpr.patch
 
 # system ffmpeg
 Patch114: chromium-107-ffmpeg-duration.patch
@@ -947,6 +948,7 @@ udev.
 %patch -P107 -p1 -b .el7-extra-operator-equalequal
 %patch -P109 -p1 -b .wireless
 %patch -P110 -p1 -b .buildflag-el7
+%patch -P111 -p1 -b .constexpr
 %endif
 
 %if 0%{?rhel} == 9

^ permalink raw reply related	[flat|nested] only message in thread

only message in thread, other threads:[~2026-08-07 16:05 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2026-08-07 16:05 [rpms/chromium] epel9-next: fixed chromium FTBFS on RHEL7, error: undefined symbol: unsigned long cc::PaintOpWriter::SerializedSize<unsigned long> Than Ngo

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox