X-Git-Url: https://gerrit.automotivelinux.org/gerrit/gitweb?a=blobdiff_plain;f=recipes-wam%2Fcef%2Ffiles%2Fchromium%2F0018-meta-browser-Fix-undefined-symbol-PaintOpWriter-Seri.patch;fp=recipes-wam%2Fcef%2Ffiles%2Fchromium%2F0018-meta-browser-Fix-undefined-symbol-PaintOpWriter-Seri.patch;h=2c953d3b0a47d0cf5bc69996bfa76778946fbe8a;hb=4a1b172ebda54d587db7ecfc61af5443d0c11d0d;hp=0000000000000000000000000000000000000000;hpb=bcbfd0131bce06c11197d2eee84300897c1680a9;p=AGL%2Fmeta-agl-demo.git diff --git a/recipes-wam/cef/files/chromium/0018-meta-browser-Fix-undefined-symbol-PaintOpWriter-Seri.patch b/recipes-wam/cef/files/chromium/0018-meta-browser-Fix-undefined-symbol-PaintOpWriter-Seri.patch new file mode 100644 index 000000000..2c953d3b0 --- /dev/null +++ b/recipes-wam/cef/files/chromium/0018-meta-browser-Fix-undefined-symbol-PaintOpWriter-Seri.patch @@ -0,0 +1,49 @@ +From 1b8ee706e8bb16a9b6c59c832d33b56915d1f410 Mon Sep 17 00:00:00 2001 +From: Max Ihlenfeldt +Date: Tue, 5 Sep 2023 09:51:38 +0000 +Subject: [PATCH 18/33] [meta-browser] Fix "undefined symbol: + PaintOpWriter::SerializedSize()" + +For some reason, clang 14 (currently used on dunfell and kirkstone) +seems to fail to correctly generate a needed instantiation of +`cc::PaintOpWriter::SerializedSize()`, and thus the final linking +step fails with an "undefined symbol" error. + +We can fix this by explicitly providing a specialization, which does the +same thing as the generic implementation. + +Upstream-Status: Inappropriate [specific to older versions of clang] +Signed-off-by: Max Ihlenfeldt +--- + cc/paint/paint_op_writer.h | 8 ++++++++ + 1 file changed, 8 insertions(+) + +diff --git a/cc/paint/paint_op_writer.h b/cc/paint/paint_op_writer.h +index 70153c0aa64ac..f47eb934c1eb1 100644 +--- a/cc/paint/paint_op_writer.h ++++ b/cc/paint/paint_op_writer.h +@@ -122,6 +122,9 @@ class CC_PAINT_EXPORT PaintOpWriter { + static size_t SerializedSize(const PaintRecord& record); + static size_t SerializedSize(const SkHighContrastConfig& config); + ++ template<> ++ constexpr size_t SerializedSize(); ++ + // Serialization of raw/smart pointers is not supported by default. + template + static inline size_t SerializedSize(const T* p); +@@ -385,6 +388,11 @@ constexpr size_t PaintOpWriter::SerializedSize() { + SerializedSizeSimple(); // fBaseImageType + } + ++template<> ++constexpr size_t PaintOpWriter::SerializedSize() { ++ return SerializedSizeSimple(); ++} ++ + template + constexpr size_t PaintOpWriter::SerializedSize() { + static_assert(std::is_arithmetic_v || std::is_enum_v); +-- +2.42.1 +