summaryrefslogtreecommitdiff
path: root/www-client/chromium
diff options
context:
space:
mode:
authorV3n3RiX <venerix@redcorelinux.org>2021-05-31 20:59:14 +0100
committerV3n3RiX <venerix@redcorelinux.org>2021-05-31 20:59:14 +0100
commite748ba9741f6540f4675c23e3e37b73e822c13a4 (patch)
tree23dece8beabb3a3d7c6c0273b0eb40b21c62a889 /www-client/chromium
parent908778078736bd36f7a60a2d576d415cb8e000fa (diff)
gentoo resync : 31.05.2021
Diffstat (limited to 'www-client/chromium')
-rw-r--r--www-client/chromium/Manifest15
-rw-r--r--www-client/chromium/chromium-91.0.4472.77.ebuild (renamed from www-client/chromium/chromium-91.0.4472.69.ebuild)32
-rw-r--r--www-client/chromium/chromium-92.0.4515.20.ebuild (renamed from www-client/chromium/chromium-92.0.4503.0.ebuild)24
-rw-r--r--www-client/chromium/files/chromium-92-EnumTable-crash.patch71
4 files changed, 124 insertions, 18 deletions
diff --git a/www-client/chromium/Manifest b/www-client/chromium/Manifest
index 0b7734dacdca..53e83a9af638 100644
--- a/www-client/chromium/Manifest
+++ b/www-client/chromium/Manifest
@@ -1,6 +1,7 @@
AUX chromium-89-EnumTable-crash.patch 2712 BLAKE2B 6715f98a5cd2c9886050f9d360938e261308a3def252e25642a473e86626594fa6c06cb3231dd57dc5428db8ee118848a0a085abf741c9555778f3ae3d9d374f SHA512 07ecb68d5ca2d732c9ca58b4dc007eb2f4b842bdf6ba46cca9050bf1c582439ebb23db1149c76d5a27f4d8de548de946e80eff0c5b1759e4b6714e0c6a7b26c9
AUX chromium-91-ThemeService-crash.patch 1306 BLAKE2B 327fa2365ba15efa754d959afa8ce7a4f6a3134275b5ae2ba3018dee107c287477903f40337ebac9c1f95995c1a133c3b644bcfcb627466b5b9b8fda511542a6 SHA512 f729888b45b103a600babec88dfac9f1605e0a03cd2d5832b8790bf11eca1c36ef4fa0e16912b972e83d7c31b2c96fbb00445dcaa9711e2bc9cd4d3f8f244d0e
AUX chromium-91-system-icu.patch 946 BLAKE2B 68cac9880e88c2d7048895b3ddcfb6c3615df6d0d7b59c81b1a25e223114cf792956408dbe8038a2db2076d9985170b3beca4de3bf0589016a24e7b23c2608d2 SHA512 89943ea95cdf5b1c92d494e9019935f683a03d8379ef208bb5b2ca746eb3eb0ccee6d91e24d831eb0092960b376a7cdda7c3e2043765b0577cf2154b00a43ac9
+AUX chromium-92-EnumTable-crash.patch 2712 BLAKE2B adf5bd0ca388395245ebe4b17d31fa75b636f036860888fa7036e3a57fe4064669f11da2623b15bba90879146f583668b3ca0af56f88c99d2f7f0b98601b012f SHA512 8cfc83fd02f505acc531dece5b06c4f32bee5c6d5a3fa467d7607adbf8705f78dfb7550c69ac10e788f3aa9acc5bb361b894ec36ddd043222f9ca6e07d8a23a4
AUX chromium-browser.xml 407 BLAKE2B 168d78b0855546ca559cfb51aff0bc85d5e6ae974c25eb76e4a02f6d11659489c6e40397a0b2f7bc1fda336fd2c6dd8c863fccc3340719210b41c7fef51927f4 SHA512 b767fb4fd1925029d95560fc14cb7ab12ae43b2fe923e92d75e733b9723cbe1dcdf6df041a2b62554e98b79b47ef3f6028c773e72e6fd53166a021d49657aeca
AUX chromium-glibc-2.33.patch 5771 BLAKE2B 792306c8b171ab4347bacbbfc7f0fb38c5c6e9d97f3d4cf17320e7091a9d9c2765e2204262daf8ed71b1d346b255fcb3d5c2c0161e7a854dab4db9749ef7dd32 SHA512 b8bc3cb40d187500e22455a08d5c9cd5638665f717f3cfcf81d913ffe1af8c9c37bcd81c0066024721dafd74f0df178e7fb4c1028c614902cd32a1da4db0ede1
AUX chromium-launcher-r6.sh 1593 BLAKE2B a871bd572239552390b216c89269dfe132474e1f57bfd0429f605af8285634659725c550b701e537f56adf20cba2dcb27dd9dadd390366dedc147f1ee987f462 SHA512 c01cb376eae2871dfa7a488d96ac8cc3445230eeb0fbd865948c5b3b601820468e85f2f0b9b30fff940c736aded050b7802759b8562e6378747af93c1d4f08a3
@@ -8,13 +9,15 @@ AUX chromium-shim_headers.patch 1510 BLAKE2B 9716cd250b249c6255aca01a385ef8a2a6f
AUX chromium.default 148 BLAKE2B 5ee5b582c59a6e4bef87bbb0e232e2470ad412b1fbbb3b9af6ef7153edb55c5b9080cc16a5a115b0c5b3c381aa87ce57a7b12bdd2070e67dac10a6c2995ddbaf SHA512 0d4849e03592fb58b05e62a43021eca7e61615616c8907c3b2e445402e03adaf9e8fa25b0a745d6c31eb037456215cc02b59e345a3a06d932e76cf990c92d739
DIST chromium-90-patchset-7.tar.xz 3892 BLAKE2B 3ba169baaaf74b548749be3f845f505256cc9573f798e10929b5d1f0f534d739e657e3fa134c78ec3f7987a3b89adfc4bee0d1a6585ad8fe4bdc3ffd1181042c SHA512 5e1aa834ee5668ee40fc3af5cda7325da710dd1a0dea7ce535e89e36fd7d321db63d520a9b6ce6372ed941473dff18d1276316567af810c18e1478a04d3f23f8
DIST chromium-90.0.4430.212.tar.xz 917430448 BLAKE2B dbea5515a62c3f3a12596da6d77cad106d377ddda8956da81b8fe8c0c1e3bfa90ba82bca8c1c4fd95282ee0c00a5f3f5206a05728043eb967395a8cf8bda960d SHA512 7cd300d22725e3457b9e3347fb34d6f5728c91aa178d6960d4243bc80122c446890c2276334a01f9c81a43479339e9e266c3bbb040081a22c521b3c4250850f5
-DIST chromium-91-patchset-5.tar.xz 3648 BLAKE2B 6c8636f63dc857886d09c8ed69b4c61adc627d2280decdf03b548be8ff2cb522ef0def7a240d1c3c9ee71920304a43af571e2146e2828b89c3b6f87373b8c4a1 SHA512 1554feec958291ad3140e2685683befe4b6e0b0ab6a8694c0e02d5b4bf4b7fcad410f17e72099653456fd95ed24a732dd28f2dcfaf146eb3bf68052e2342a481
-DIST chromium-91.0.4472.69.tar.xz 949883808 BLAKE2B b5abb1d0223949cfa39e40414c7ef07890ead2ae9d78dd0bdc764fcb69df716df25c422f1183976750245e33b8e80e7f024eb75a7c4656444092489068858c74 SHA512 d3b34db6c2bea306a847ffae422f7da473545aa9f56321225e084aa9ed4ee7d6d231dabbf95c5f7b956330200ac5ed8510fd76109d3ecbeef77f5f9b9ec9bc30
-DIST chromium-92-patchset-4.tar.xz 3584 BLAKE2B b0b2d1fda98a0db83ee57ed57e04e87ba2a89f47b00a0f7afd584f8739432558b169588448f58d787242da900256c019c7b259fa21b41be7fd86fb42e5446759 SHA512 33647157286d0dc0e45aa6a30b92c1373fec3ae50359dd4df036098a668d94b8cce39e89b17719847698ca24934426b22883a24445339d7629efe186b3914f57
-DIST chromium-92.0.4503.0.tar.xz 957887500 BLAKE2B cdaeffa87547635d1f5366895d4f54e2f7b278a5653ccf72510afc40bff01681aa19261877a811f6843de4379346d1cc046e55a6b0e22ff3ece70c9137563ccc SHA512 a4b351a77605565d5ea230b569d2ee9bcd1035aa25f0d951ee7aa78625000c935ac68c98126a9a6b83f3227fbb7492a7e6c199d5bffb4746164a322ffb64036c
+DIST chromium-91-patchset-6.tar.xz 4280 BLAKE2B 18887953453133589cfc5df58d24725047235fac3652cc7af7bd117fbc94aa9a2e1b1dd3147f772f84d8fa3e7b5b77159abc1e408d7b24b065bb1f12cebbfb2f SHA512 49b4aaedfbb1fa5629dbb453bb74f5735c05b14407ea3d2bb1eaee9686e03661a3c471357d085ab839dff16df92d71dae3a6f17486c017a79a836c1d8780a250
+DIST chromium-91-ppc64le-5.tar.xz 28988 BLAKE2B 7c574626546c9b8c67879277a9b06b95b51111fef7697b7edab5548b4372a73c56a5771dc3ab6126535477493d7415e3e9b3b446cb4faa7b095a56cafaaab2fb SHA512 637433ce28b9f1e41696d1027f1bb5858fc5bdef94121deb34a9eafd58c651af4b84c103f3319151c0b708ad8da1756eff14025979dc46797d20cc95afb3d3bc
+DIST chromium-91.0.4472.77.tar.xz 949848268 BLAKE2B 6d32b7334399325046f4b6c8d2a766b2f42ff7cc74adf68da880113ebede13dbbeb52c2f7ffcdea8c8934ec16f2161300a0b727cec112463def5eb6e772fafec SHA512 06113c3627c1ccd390f078a52e0eaaf9c1d7178d568d6d2e37c96e1eb09fc0e872ac2b2d7ebe55e4da87eebee4965816bbba2f6ea53047f86cd5d0ad1d260a25
+DIST chromium-92-patchset-6.tar.xz 3764 BLAKE2B a7149940b1371e4bd295e6038b87cc13f4edf8d8ed286d9d8d0e63144c2546de39564fc203a4b2e185267e46398efd0414c1f695ee31c78d33a6cd8d7b434016 SHA512 2f104901271d42762ea27f7c8a017307bde7348ec6b84d0c85875a07bf3783ba43bdb886fb3c6376753b6a14102b495a28bdc7adc611992440d2c1345aea035b
+DIST chromium-92.0.4515.20.tar.xz 962353324 BLAKE2B 3b56948a34c5938649af3dbc0d9036ed1a0b8f067cb1b2fcee6d0ccc55a503efb373f26eedabc1c2a6e789a16eb0e83055c85ab1bb55f4d9f8dafe267a894ae5 SHA512 46cfbffa58ca049a336311940c81292354ccf4fc6032ce0ecb6822b6ecfe3b3d17fa2092ef688f11b82eface85c2084e046264ca847e7d110a4980c1c2b132f3
DIST chromium-ppc64le-3f575325dcc3bdfc419824518bac6d4c38241859.tar.xz 28880 BLAKE2B 60390c938cbe329867a721f061750cd49a1ed0b48808181f4a85fd0f369f6061619f4f5a3023f9890a11a21ce5d60f87f74374eb1250a2a7100bf7c7eff15df7 SHA512 594bd170c2da4dc2b6bfd3a8aed31ca6acd67a5fb4ee7c4fa8a63439feb46df003aba79118bfd54a4e01ba18f1d329e760894e169915c266118414ad62b7c3ae
+DIST highway-0.12.1.tar.gz 1480579 BLAKE2B 2889f96e33ae4411b14dae2229d86b0581f2044f50d6bb829a83417f0d67f0c9a8c03d552d09a985231ea11e88497fa405efcb85d158b5734b477bec5764a1eb SHA512 d14aeffc80739a5993177fb190ac03998d495004e9c54126c0e0b174c28be52a3f3fe581d8a08db67c34bd00045223d1850e7b384a2e7fe37a8150d7908004cb
DIST setuptools-44.1.0.zip 858569 BLAKE2B f59f154e121502a731e51294ccd293d60ffccadacf51e23b53bf7ceba38858948b86783238061136c827ac3373ea7ea8e6253d4bb53f3f1dd69284568ec65a68 SHA512 4dfb0f42d334b835758e865a26ecd1e725711fa2b9c38ddc273b8b3849fba04527bc97436d11ba1e98f1a42922aa0f0b9032e32998273c705fac6e10735eacbf
EBUILD chromium-90.0.4430.212.ebuild 29810 BLAKE2B f85e37dbf553907ffb9781b577db50ac7422e5e492ffb47eea2b1631e9f1fc6cb872ce1d18c529b1e19d2605798db2723898c5e519bf644708e83e4c7ff96d1e SHA512 1e23dc0e45567fd022d6b287298192980bc0d1e9db4da7989d491e3f12542bd04d0ab7a277f139d501a029068f6e152a426ac23a74e616d1fcf35a46eb51801c
-EBUILD chromium-91.0.4472.69.ebuild 29351 BLAKE2B 9bb21150f2ce06108dc1c5b88fe9693181c3cd0d3edfd56ab08db44a553147ff66efa3c64dcf99097ce6ab9c32a3a9b096665827108ba2563e5a2be406bb5b2c SHA512 1d11f3745e6bb8afd330af4d0d65c37fca1987fb47e74e61695104129091744619d7521b71d491ef0464d72e6897d600ad14c9ade61d8fbfe2cf3355309d4b7f
-EBUILD chromium-92.0.4503.0.ebuild 29607 BLAKE2B d7f11e36d07fdf6e5fcd82f61d5c9624a26fdda65344b10cc9ef952ac4ae2f00c8858113128950d83d442924911ea6dafb459bd2187444309ea5b20404e105e8 SHA512 3d14018f65ab33e6d560fef776c094ee4e3744e8e19a2fb9bc3c3d0767f2fbca1d67175b7daccc0d60b028308935172c45ecd4739fa2bbcdbf67e86b9bfd8d4e
+EBUILD chromium-91.0.4472.77.ebuild 30006 BLAKE2B 8862c1572aeacb8a9439c7a199035fdcfcba84c469ee33f8fd45f4dfbf52743c661524107de515eb9a5c5099df628802923c09aca27ad5d910304ee7c7d5e943 SHA512 aca8e7afc967a06b280c9b1aff1f68106aa6aad4ea57885f04f13aa78ba503a9cf21ac322d49ed917e5cf487279f6f5add72236010b70753cab13bf09136731c
+EBUILD chromium-92.0.4515.20.ebuild 30140 BLAKE2B 87e82af3627de888e8cc2956e5442f8bd54e6e65539419f3eb2534cd6030a5f8eabb40f958daaafaad386a7a53161efcdd245fc74b45b84c2d69cf4f0452d766 SHA512 78dc38de9d7f2758672be53ae480c3c432048dbd92ccc883036ec09b3fc97e9fdd4eb6484182327e7af9917c5e2ba062b67258e9e2dc9ce70bf60ce9a4288715
MISC metadata.xml 1596 BLAKE2B e15a05a13e8200be6a946ba0b2631a014b83a66267a9ce956245d28312403b3229ef6a961830bd69535bc4286912fdf8d5f3a6cb0d0f8aff29936ceaf7113e8f SHA512 204d0b04307b2fc2188c64f290c0e3a0a0b14f3ac0f35deaffdaac1b30addd4df1f2eef2eae19a674f07123dc44a6ba4a0b5e2419a898bfaac61579603ceb0ee
diff --git a/www-client/chromium/chromium-91.0.4472.69.ebuild b/www-client/chromium/chromium-91.0.4472.77.ebuild
index 9bf79db35021..ad9ec577e69a 100644
--- a/www-client/chromium/chromium-91.0.4472.69.ebuild
+++ b/www-client/chromium/chromium-91.0.4472.77.ebuild
@@ -13,15 +13,18 @@ inherit check-reqs chromium-2 desktop flag-o-matic multilib ninja-utils pax-util
DESCRIPTION="Open-source version of Google Chrome web browser"
HOMEPAGE="https://chromium.org/"
-PATCHSET="5"
+PATCHSET="6"
PATCHSET_NAME="chromium-$(ver_cut 1)-patchset-${PATCHSET}"
+PPC64LE_PATCHSET="5"
SRC_URI="https://commondatastorage.googleapis.com/chromium-browser-official/${P}.tar.xz
https://files.pythonhosted.org/packages/ed/7b/bbf89ca71e722b7f9464ebffe4b5ee20a9e5c9a555a56e2d3914bb9119a6/setuptools-44.1.0.zip
- https://github.com/stha09/chromium-patches/releases/download/${PATCHSET_NAME}/${PATCHSET_NAME}.tar.xz"
+ https://github.com/stha09/chromium-patches/releases/download/${PATCHSET_NAME}/${PATCHSET_NAME}.tar.xz
+ arm64? ( https://github.com/google/highway/archive/refs/tags/0.12.1.tar.gz -> highway-0.12.1.tar.gz )
+ ppc64? ( https://dev.gentoo.org/~gyakovlev/distfiles/${PN}-$(ver_cut 1)-ppc64le-${PPC64LE_PATCHSET}.tar.xz )"
LICENSE="BSD"
SLOT="0"
-KEYWORDS="~amd64 ~arm64 ~x86"
+KEYWORDS="~amd64 ~arm64 ~ppc64 ~x86"
IUSE="component-build cups cpu_flags_arm_neon +hangouts headless +js-type-check kerberos official pic +proprietary-codecs pulseaudio screencast selinux +suid +system-ffmpeg +system-icu vaapi wayland widevine"
REQUIRED_USE="
component-build? ( !suid )
@@ -242,11 +245,19 @@ src_prepare() {
)
fi
+ use ppc64 && eapply -p0 "${WORKDIR}/${PN}"-ppc64le
+
default
mkdir -p third_party/node/linux/node-linux-x64/bin || die
ln -s "${EPREFIX}"/usr/bin/node third_party/node/linux/node-linux-x64/bin/node || die
+ # bundled highway library does not support arm64 with GCC
+ if use arm64; then
+ rm -r third_party/highway/src || die
+ ln -s "${WORKDIR}/highway-0.12.1" third_party/highway/src || die
+ fi
+
local keeplibs=(
base/third_party/cityhash
base/third_party/double_conversion
@@ -729,6 +740,14 @@ src_configure() {
# Chromium relies on this, but was disabled in >=clang-10, crbug.com/1042470
append-cxxflags $(test-flags-CXX -flax-vector-conversions=all)
+ # highway/libjxl relies on this with arm64
+ if use arm64 && tc-is-gcc; then
+ append-cxxflags -flax-vector-conversions
+ fi
+
+ # highway/libjxl fail on ppc64 without extra patches, disable for now.
+ use ppc64 && myconf_gn+=" enable_jxl_decoder=false"
+
# Disable unknown warning message from clang.
tc-is-clang && append-flags -Wno-unknown-warning-option
@@ -912,10 +931,9 @@ pkg_postinst() {
readme.gentoo_print_elog
if use vaapi; then
- elog "VA-API is disabled by default at runtime. Either enable it"
- elog "by navigating to chrome://flags/#enable-accelerated-video-decode"
- elog "inside Chromium or add --enable-accelerated-video-decode"
- elog "to CHROMIUM_FLAGS in /etc/chromium/default."
+ elog "VA-API is disabled by default at runtime. You have to enable it"
+ elog "by adding --enable-features=VaapiVideoDecoder to CHROMIUM_FLAGS"
+ elog "in /etc/chromium/default."
fi
if use screencast; then
elog "Screencast is disabled by default at runtime. Either enable it"
diff --git a/www-client/chromium/chromium-92.0.4503.0.ebuild b/www-client/chromium/chromium-92.0.4515.20.ebuild
index 830457732be1..744bf4df8d58 100644
--- a/www-client/chromium/chromium-92.0.4503.0.ebuild
+++ b/www-client/chromium/chromium-92.0.4515.20.ebuild
@@ -13,11 +13,12 @@ inherit check-reqs chromium-2 desktop flag-o-matic multilib ninja-utils pax-util
DESCRIPTION="Open-source version of Google Chrome web browser"
HOMEPAGE="https://chromium.org/"
-PATCHSET="4"
+PATCHSET="6"
PATCHSET_NAME="chromium-$(ver_cut 1)-patchset-${PATCHSET}"
SRC_URI="https://commondatastorage.googleapis.com/chromium-browser-official/${P}.tar.xz
https://files.pythonhosted.org/packages/ed/7b/bbf89ca71e722b7f9464ebffe4b5ee20a9e5c9a555a56e2d3914bb9119a6/setuptools-44.1.0.zip
- https://github.com/stha09/chromium-patches/releases/download/${PATCHSET_NAME}/${PATCHSET_NAME}.tar.xz"
+ https://github.com/stha09/chromium-patches/releases/download/${PATCHSET_NAME}/${PATCHSET_NAME}.tar.xz
+ arm64? ( https://github.com/google/highway/archive/refs/tags/0.12.1.tar.gz -> highway-0.12.1.tar.gz )"
LICENSE="BSD"
SLOT="0"
@@ -227,7 +228,7 @@ src_prepare() {
local PATCHES=(
"${WORKDIR}/patches"
- "${FILESDIR}/chromium-89-EnumTable-crash.patch"
+ "${FILESDIR}/chromium-92-EnumTable-crash.patch"
"${FILESDIR}/chromium-shim_headers.patch"
)
@@ -251,6 +252,12 @@ src_prepare() {
sed -i -e "s|\(^script_executable = \).*|\1\"${EPYTHON}\"|g" .gn || die
sed -i -e "s|python2|python2\.7|g" buildtools/linux64/clang-format || die
+ # bundled highway library does not support arm64 with GCC
+ if use arm64; then
+ rm -r third_party/highway/src || die
+ ln -s "${WORKDIR}/highway-0.12.1" third_party/highway/src || die
+ fi
+
local keeplibs=(
base/third_party/cityhash
base/third_party/double_conversion
@@ -264,7 +271,6 @@ src_prepare() {
base/third_party/xdg_user_dirs
buildtools/third_party/libc++
buildtools/third_party/libc++abi
- buildtools/third_party/eu-strip
chrome/third_party/mozilla_security_manager
courgette/third_party
net/third_party/mozilla_security_manager
@@ -322,7 +328,6 @@ src_prepare() {
third_party/devtools-frontend/src/front_end/third_party/chromium
third_party/devtools-frontend/src/front_end/third_party/codemirror
third_party/devtools-frontend/src/front_end/third_party/diff
- third_party/devtools-frontend/src/front_end/third_party/fabricjs
third_party/devtools-frontend/src/front_end/third_party/i18n
third_party/devtools-frontend/src/front_end/third_party/intl-messageformat
third_party/devtools-frontend/src/front_end/third_party/lighthouse
@@ -523,6 +528,10 @@ src_prepare() {
if use js-type-check; then
ln -s "${EPREFIX}"/usr/bin/java third_party/jdk/current/bin/java || die
fi
+
+ # bundled eu-strip is for amd64 only and we don't want to pre-stripped binaries
+ mkdir -p buildtools/third_party/eu-strip/bin || die
+ ln -s "${EPREFIX}"/bin/true buildtools/third_party/eu-strip/bin/eu-strip || die
}
src_configure() {
@@ -735,6 +744,11 @@ src_configure() {
# Chromium relies on this, but was disabled in >=clang-10, crbug.com/1042470
append-cxxflags $(test-flags-CXX -flax-vector-conversions=all)
+ # highway/libjxl relies on this with arm64
+ if use arm64 && tc-is-gcc; then
+ append-cxxflags -flax-vector-conversions
+ fi
+
# Disable unknown warning message from clang.
tc-is-clang && append-flags -Wno-unknown-warning-option
diff --git a/www-client/chromium/files/chromium-92-EnumTable-crash.patch b/www-client/chromium/files/chromium-92-EnumTable-crash.patch
new file mode 100644
index 000000000000..7fb7360e0269
--- /dev/null
+++ b/www-client/chromium/files/chromium-92-EnumTable-crash.patch
@@ -0,0 +1,71 @@
+diff --git a/components/cast_channel/enum_table.h b/components/cast_channel/enum_table.h
+index e3130c7..2ad16ea 100644
+--- a/components/cast_channel/enum_table.h
++++ b/components/cast_channel/enum_table.h
+@@ -212,7 +212,7 @@ class
+
+ template <typename E>
+ friend class EnumTable;
+- DISALLOW_COPY_AND_ASSIGN(GenericEnumTableEntry);
++ DISALLOW_ASSIGN(GenericEnumTableEntry);
+ };
+
+ // Yes, these constructors really needs to be inlined. Even though they look
+@@ -250,8 +250,7 @@ class EnumTable {
+ // Constructor for regular entries.
+ constexpr Entry(E value, base::StringPiece str)
+ : GenericEnumTableEntry(static_cast<int32_t>(value), str) {}
+-
+- DISALLOW_COPY_AND_ASSIGN(Entry);
++ DISALLOW_ASSIGN(Entry);
+ };
+
+ static_assert(sizeof(E) <= sizeof(int32_t),
+@@ -306,15 +305,14 @@ class EnumTable {
+ if (is_sorted_) {
+ const std::size_t index = static_cast<std::size_t>(value);
+ if (ANALYZER_ASSUME_TRUE(index < data_.size())) {
+- const auto& entry = data_.begin()[index];
++ const auto& entry = data_[index];
+ if (ANALYZER_ASSUME_TRUE(entry.has_str()))
+ return entry.str();
+ }
+ return absl::nullopt;
+ }
+ return GenericEnumTableEntry::FindByValue(
+- reinterpret_cast<const GenericEnumTableEntry*>(data_.begin()),
+- data_.size(), static_cast<int32_t>(value));
++ &data_[0], data_.size(), static_cast<int32_t>(value));
+ }
+
+ // This overload of GetString is designed for cases where the argument is a
+@@ -342,8 +340,7 @@ class EnumTable {
+ // enum value directly.
+ absl::optional<E> GetEnum(base::StringPiece str) const {
+ auto* entry = GenericEnumTableEntry::FindByString(
+- reinterpret_cast<const GenericEnumTableEntry*>(data_.begin()),
+- data_.size(), str);
++ &data_[0], data_.size(), str);
+ return entry ? static_cast<E>(entry->value) : absl::optional<E>();
+ }
+
+@@ -358,7 +355,7 @@ class EnumTable {
+ // Align the data on a cache line boundary.
+ alignas(64)
+ #endif
+- std::initializer_list<Entry> data_;
++ const std::vector<Entry> data_;
+ bool is_sorted_;
+
+ constexpr EnumTable(std::initializer_list<Entry> data, bool is_sorted)
+@@ -370,8 +367,8 @@ class EnumTable {
+
+ for (std::size_t i = 0; i < data.size(); i++) {
+ for (std::size_t j = i + 1; j < data.size(); j++) {
+- const Entry& ei = data.begin()[i];
+- const Entry& ej = data.begin()[j];
++ const Entry& ei = data[i];
++ const Entry& ej = data[j];
+ DCHECK(ei.value != ej.value)
+ << "Found duplicate enum values at indices " << i << " and " << j;
+ DCHECK(!(ei.has_str() && ej.has_str() && ei.str() == ej.str()))