diff --git a/chromium-111.0.5563.110-sql-relax-constraints-on-VirtualCursor-layout.patch b/chromium-111.0.5563.110-sql-relax-constraints-on-VirtualCursor-layout.patch new file mode 100644 index 0000000..d1e65ee --- /dev/null +++ b/chromium-111.0.5563.110-sql-relax-constraints-on-VirtualCursor-layout.patch @@ -0,0 +1,48 @@ +From 7d1394bd639e3bcf68082ac3fc33eeed6a00d2e6 Mon Sep 17 00:00:00 2001 +From: Elly Fong-Jones +Date: Thu, 2 Mar 2023 00:15:11 +0000 +Subject: [PATCH] sql: relax constraints on VirtualCursor layout + +VirtualCursor::FromSqliteCursor required that VirtualCursor had a +standard layout, but in fact VirtualCursor shouldn't have a standard +layout, and the fact that it does with libc++ is a deviation from the +C++ standard. This change: + +1. Relaxes the requirement that VirtualCursor has a standard layout, and +2. Relaxes the requirement that the sqlite_cursor_ field has to be at + offset 0 + +by use of offsetof() and pointer subtraction. This change both improves +standards compliance and makes this code build with libstdc++. + +Bug: 1380656 +Change-Id: I9c47abd9197b187da0360ca5619ccf7dadab4f33 +Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/4292313 +Reviewed-by: Austin Sullivan +Commit-Queue: Elly Fong-Jones +Cr-Commit-Position: refs/heads/main@{#1111925} +--- + sql/recover_module/cursor.h | 10 ++++------ + 1 file changed, 4 insertions(+), 6 deletions(-) + +diff --git a/sql/recover_module/cursor.h b/sql/recover_module/cursor.h +index 1970bdca8c6..4cb06557009 100644 +--- a/sql/recover_module/cursor.h ++++ b/sql/recover_module/cursor.h +@@ -63,12 +63,10 @@ class VirtualCursor { + // |sqlite_cursor| must have been returned by VirtualTable::SqliteCursor(). + static inline VirtualCursor* FromSqliteCursor( + sqlite3_vtab_cursor* sqlite_cursor) { +- static_assert(std::is_standard_layout::value, +- "needed for the reinterpret_cast below"); +- static_assert(offsetof(VirtualCursor, sqlite_cursor_) == 0, +- "sqlite_cursor_ must be the first member of the class"); +- VirtualCursor* result = reinterpret_cast(sqlite_cursor); +- DCHECK_EQ(sqlite_cursor, &result->sqlite_cursor_); ++ VirtualCursor* result = reinterpret_cast( ++ (reinterpret_cast(sqlite_cursor) - ++ offsetof(VirtualCursor, sqlite_cursor_))); ++ CHECK_EQ(sqlite_cursor, &result->sqlite_cursor_); + return result; + } + diff --git a/chromium.spec b/chromium.spec index da2a82e..35a7a31 100644 --- a/chromium.spec +++ b/chromium.spec @@ -1,8 +1,8 @@ %define MAJver %(echo %version | cut -d. -f1) -%define gcc_patchset 1 +%define gcc_patchset 2 Name: chromium Epoch: 3 -Version: 110.0.5481.177 +Version: 111.0.5563.110 Release: 1mamba Summary: An open-source browser project that aims to build a safer, faster, and more stable way to experience the web Group: Graphical Desktop/Applications/Internet @@ -56,6 +56,7 @@ Patch36: chromium-104.0.5112.79-tflite-system-zlib.patch Patch37: chromium-105.0.5195.102-angle-wayland-include-protocol.patch Patch38: chromium-109.0.5414.119-REVERT-roll-src-third_party-ffmpeg-m106.patch Patch39: chromium-110.0.5481.177-v8-move-the-Stack-object-from-ThreadLocalTop.patch +Patch40: chromium-111.0.5563.110-sql-relax-constraints-on-VirtualCursor-layout.patch License: BSD ## AUTOBUILDREQ-BEGIN BuildRequires: glibc-devel @@ -167,25 +168,26 @@ sed -i 's/OFFICIAL_BUILD/GOOGLE_CHROME_BUILD/' \ tools/generate_shim_headers/generate_shim_headers.py %ifarch %{ix86} -%patch3 -p1 +%patch 3 -p1 %endif -%patch7 -p1 -b .use-oauth2-client-switches-as-default +%patch 7 -p1 -b .use-oauth2-client-switches-as-default #%patch35 -p1 -b .remove-no-opaque-pointers-flag #%patch21 -p0 -b .unexpire-accelerated-video-decode-flag #%patch22 -Rp1 -b .add-a-TODO-about-a-missing-pnacl-flag #%patch18 -Rp1 -b .use-ffile-compilation-dir #%patch36 -p1 -b .tflite-system-zlib -%patch33 -Rp1 -b .roll-src-third_party-ffmpeg +%patch 33 -Rp1 -b .roll-src-third_party-ffmpeg #%patch12 -p1 -b .sql-make-VirtualCursor-standard-layout-type -%patch37 -p0 -b .angle-wayland-include-protocol -%patch38 -Rp1 -b .REVERT-roll-src-third_party-ffmpeg-m106 -%patch39 -p1 -d v8 -b .v8-move-the-Stack-object-from-ThreadLocalTop +%patch 37 -p0 -b .angle-wayland-include-protocol +%patch 38 -Rp1 -b .REVERT-roll-src-third_party-ffmpeg-m106 +#%patch 39 -p1 -d v8 -b .v8-move-the-Stack-object-from-ThreadLocalTop +%patch 40 -p1 -b .sql-relax-constraints-on-VirtualCursor-layout # Fixes for building with libstdc++ instead of libc++ -patch -Np1 -i patches/chromium-103-VirtualCursor-std-layout.patch -patch -Np1 -i patches/chromium-110-NativeThemeBase-fabs.patch -patch -Np1 -i patches/chromium-110-CredentialUIEntry-const.patch -patch -Np1 -i patches/chromium-110-DarkModeLABColorSpace-pow.patch +#patch -Np1 -i patches/chromium-103-VirtualCursor-std-layout.patch +#patch -Np1 -i patches/chromium-110-NativeThemeBase-fabs.patch +#patch -Np1 -i patches/chromium-110-CredentialUIEntry-const.patch +#patch -Np1 -i patches/chromium-110-DarkModeLABColorSpace-pow.patch # Force script incompatible with Python 3 to use /usr/bin/python2 sed -i '1s|python$|&2|' third_party/dom_distiller_js/protoc_plugins/*.py @@ -306,6 +308,7 @@ chromium_conf=( 'clang_use_chrome_plugins=false' 'is_official_build=true' # implies is_cfi=true on x86_64 'symbol_level=0' + 'chrome_pgo_phase=0' # needs newer clang to read the bundled PGO profile 'treat_warnings_as_errors=false' 'disable_fieldtrial_testing_config=true' 'blink_enable_generated_code_formatting=false' @@ -460,6 +463,9 @@ ln -s %{_libdir}/chromium/chromedriver %{buildroot}%{_bindir}/chromedriver %{_mandir}/man1/chromium.1* %changelog +* Mon Mar 27 2023 Automatic Build System 111.0.5563.110-1mamba +- automatic version update by autodist + * Thu Mar 02 2023 Automatic Build System 110.0.5481.177-1mamba - automatic version update by autodist