diff options
author | 2024-06-14 13:58:30 +0100 | |
---|---|---|
committer | 2024-06-25 23:55:10 +0000 | |
commit | a7dfb559023514cba7e10f1808086cfef85a8288 (patch) | |
tree | 3776533436c0ed8029ca1005b4bd8ad49c812509 | |
parent | www-client/chromium/: Update to 123.0.6312.122 (diff) | |
download | riscv-a7dfb559023514cba7e10f1808086cfef85a8288.tar.gz riscv-a7dfb559023514cba7e10f1808086cfef85a8288.tar.bz2 riscv-a7dfb559023514cba7e10f1808086cfef85a8288.zip |
Update Chromium to 126.0.6478.114
Tested on my Visonfive 2
Closes: https://github.com/gentoo/riscv/pull/15
Signed-off-by: Andrew Cameron <apcameron@gmail.com>
Signed-off-by: Yixun Lan <dlan@gentoo.org>
-rw-r--r-- | www-client/chromium/Manifest | 12 | ||||
-rw-r--r-- | www-client/chromium/chromium-123.0.6312.105.ebuild | 1453 | ||||
-rw-r--r-- | www-client/chromium/chromium-126.0.6478.114.ebuild (renamed from www-client/chromium/chromium-123.0.6312.122.ebuild) | 68 | ||||
-rw-r--r-- | www-client/chromium/files/Debian-fix-rust-linking.patch (renamed from www-client/chromium/files/02Debian-fix-rust-linking.patch) | 0 | ||||
-rw-r--r-- | www-client/chromium/files/chromium-125-ninja-1-12.patch | 17 | ||||
-rw-r--r-- | www-client/chromium/files/chromium-125-oauth2-client-switches.patch | 45 | ||||
-rw-r--r-- | www-client/chromium/files/chromium-125-system-zstd.patch | 53 | ||||
-rw-r--r-- | www-client/chromium/files/chromium-126-oauth2-client-switches.patch | 45 | ||||
-rw-r--r-- | www-client/chromium/files/cpuinfo.patch (renamed from www-client/chromium/files/10cpuinfo.patch) | 0 | ||||
-rw-r--r-- | www-client/chromium/files/fix-rust-target.patch (renamed from www-client/chromium/files/01fix-rust-target.patch) | 0 | ||||
-rw-r--r-- | www-client/chromium/files/riscv-dav1d.patch (renamed from www-client/chromium/files/03riscv-dav1d.patch) | 0 | ||||
-rw-r--r-- | www-client/chromium/files/riscv-ffmpeg.patch (renamed from www-client/chromium/files/06riscv-ffmpeg.patch) | 569 | ||||
-rw-r--r-- | www-client/chromium/files/riscv-sandbox.patch (renamed from www-client/chromium/files/05riscv-sandbox.patch) | 451 | ||||
-rw-r--r-- | www-client/chromium/files/riscv.patch (renamed from www-client/chromium/files/09riscv.patch) | 0 | ||||
-rw-r--r-- | www-client/chromium/files/swiftshader-MCDissassembler.patch (renamed from www-client/chromium/files/00swiftshader-MCDissassembler.patch) | 0 | ||||
-rw-r--r-- | www-client/chromium/files/swiftshader-use-llvm16.patch (renamed from www-client/chromium/files/00swiftshader-use-llvm16.patch) | 0 |
16 files changed, 744 insertions, 1969 deletions
diff --git a/www-client/chromium/Manifest b/www-client/chromium/Manifest index 3786d14..726d054 100644 --- a/www-client/chromium/Manifest +++ b/www-client/chromium/Manifest @@ -1,9 +1,7 @@ -DIST chromium-123-clang.tar.xz 50178332 BLAKE2B 4b5c4f81a83c7b0c809c93a713e869fde6fe559477665cb3b2f03c62d2175f821b81fb03b0ddd127c6eaf77c41011b4de06561f09a58384153d80fe2b3aa7427 SHA512 17108b9579f16d0da383bd5e41d012f94bcb8445a517ff823aa49b66d3861b0a124b6cce6183fbc64e8050f1ebcd65a9daa2acbda5fdaa42390bfbf4ecb16bd3 -DIST chromium-123-rust.tar.xz 145295100 BLAKE2B ae6603a0e0218e4e39d3e8b7aa48a2cd946c90779dac48be26582926963c8a10a48e3e58fd00a23cb8cd9a3584d9d4a142e843f93c761e862253817635f18c2c SHA512 b4f8dce6d74be4be495d9948d7593ec9664c0b93e87456fab33d3ae5ac0e486a4e8576b26a9ab9890285a7c0d566afb803b98225c0692b6cac9f623a10b954a2 -DIST chromium-123.0.6312.105.tar.xz 3481204616 BLAKE2B 8adbc4a0c96ea53b45b26a48c8eb94e29b31b981471a0d5fda4cdea1f7aa69714a9e5a5729a61a49a92b6322889ee794b4c7ac5e243bc495ff5bd04cdc59f616 SHA512 a1abbba78c96fd7bc44a23b21d8180ebff015d17abcb186dece595513fda9d4443ac67498a78181589884c384a48e6c3abfe72e6ee806fdfc764d05f13fb5cb6 -DIST chromium-123.0.6312.122.tar.xz 3488275388 BLAKE2B 9f7e6c4984a41dbed6849eee08d4f6b8241c86ece0250d67786038980f3d7f208897f42b279c20ffbb965e8e49427ce74e896c34b40390321780b9cc2ba685ce SHA512 23e13d1d5758aa771f4c66e1a55068438e7c4890456dcb0b7a1fc1839b750e612e29d59e744c8b773935757aad01b78a5fecc3e03057a8acbb7e997dbb98f007 -DIST chromium-patches-123.tar.bz2 4697 BLAKE2B 8a7dd76edb23afb7b2f65084696bce5d6e54d63ca34c4590052db1086ed0a422b1efde863c4daad4e2526f329eb65276b9ad5406017cd97fb75b1a9556c1f933 SHA512 ea47255deac1893896f64496629d34c7092f266a175b8400fcf4f01b9d038ae240e911bff488558bb28e6f5795bbcf276adf20ed1e0ccb8ac99f9ddd260742f9 +DIST chromium-126-clang.tar.xz 50615992 BLAKE2B 293709399ddf343ba195cec452974178228ebb72921931ad58136351956b881f8dc0bc8ca740252bcd4971701c9ee8ccc0a33648aee25a5b1cece56e0af6b83f SHA512 7bb2938b1df452585d0ee93da3bcf9c3e64e88e39059a713fe21758df670190b12ca002ef2764dc99efdb4284b4c4b7cde861e2e495d99956c21120a51b8c3dc +DIST chromium-126-rust.tar.xz 150643432 BLAKE2B d9c827008a2fae07977628beccdf3cf4e5d9bf3c9728e4b2839c8bc86ee2f87844921064e30c067a1b620a3d53cbf54a74053172b1436239332fc668f772924d SHA512 431c0305a81e59da231d56f1b119226b661d7f5a93d0da92afbfc384b0e5be28f282c2911137983298a5369c93b60184d41875ec63b47048a782ee2b1301fc77 +DIST chromium-126.0.6478.114.tar.xz 4167281776 BLAKE2B 4ca720b0280dc6f0aafb5da5d31f97d8d55faec9ac187fc7f3e16e447d147a6912b2b8f26247503390755146e42b32458e4c71a80e6a132cc456f414454ecf53 SHA512 49ca506eb7ac52cdfb5b491bff10deec46d62686feeb3392803eecd61a570ce6c9e6c97d61c79907aaaee39b6d32a4da399c92b8078dbdf2df097f37c757d286 +DIST chromium-patches-126.tar.bz2 4538 BLAKE2B c1f224015618ec908ef09d0c04a2243923371e2caeccd60d93747599fd1434b284291a5b4326008db21749cf78827d5a4b50d22fc805dcd3c1fd86303dc82729 SHA512 6692075adac0379b5f27d1023de1a051cf7f7f7138efd32dfc3af0d501b714142a16daf18022bb46d92218587f364f4dafe9f4aea24f6826e88b0e7cc2be7d0b DIST chromium-ppc64le-gentoo-patches-1.tar.xz 5636 BLAKE2B 1d898939df023c59285b27bee552470483ea06375d1ee8d6947b89c5927c23cc7bfec6b49f3b376ece931d11a56f8e2a45791e0f92ad61974fc8c34c1082d89c SHA512 8a71cb007e47cda8e5fe5d185729389e65c48bd322c8ee8b3986bee8571427b959628f2666bda646a3f89ae64197c0957d3626845ff03461dbd5dee4c964d07c DIST chromium-profiler-0.2.tar 259952640 BLAKE2B 5e82389fce00b267280d633b26551231c558b80f0c92cd7d60271095a3503365ab673e7a46dc5f74f8a82db1f21262cb24dcc0531d954bab5fb3b175dab3394d SHA512 9fa89a5ab728419683e7495ae676567480987d68a2d589f2aa97bfcbcf123f3c8f97f8bca5f65e5e3f6e41475535add473ded83b9c7a33bb4746a9d05b298a6c -DIST chromium_123.0.6312.105-1raptor0~deb12u1.debian.tar.xz 579484 BLAKE2B 587082358377f7bc0dca0dec83772abb7e040ad894ca4d456a294b7f5c19297acbc5b1dac725d3c1dbaaeefd480328c6c06c607438e560aa6359c1e98c4b1c9c SHA512 6b670a139e284cc96da65ff3c1b3e715cd9b436de2404792d619cfad23e2040fd931e7cc49f0b1ac17e11522804a4c9a621cb943e0dab33fb5bf422e954c5421 -DIST chromium_123.0.6312.86-1raptor0~deb12u1.debian.tar.xz 579124 BLAKE2B a27996211fbed198480e50934e39b0eda4c39e5e78a03f9b290cb90a6c8d7003b6aa828bf35e6744e9d7aa9a922f43baa77d6c9768140baf5749a797c2dad664 SHA512 cfb51fd910f3330100a2dc9ea993d537f126329ff2c590744954a3bfbb712d7bf1d7ad9066628aba5d28c98f2f9b069cf02f8c6048d2ad0a1a376468bdbd9196 +DIST chromium_126.0.6478.56-1raptor0~deb12u2.debian.tar.xz 613448 BLAKE2B 35af65461a5132ac7a28e004f3b8a5e1afc10924726154dd47a23371ebe5508765e0bfd3c1b1d56ff5671039b522536fa21ec22dcb9f14426929a5905976e8a0 SHA512 870b864620e48e6aefa2b36026553b06dde0afc8e8de6cbaf0e4db2333d02164a95fa5f243066e026aa3dff4b3a7366853f49c02f607dec36cec77e4b4683736 diff --git a/www-client/chromium/chromium-123.0.6312.105.ebuild b/www-client/chromium/chromium-123.0.6312.105.ebuild deleted file mode 100644 index 5388d0d..0000000 --- a/www-client/chromium/chromium-123.0.6312.105.ebuild +++ /dev/null @@ -1,1453 +0,0 @@ -# Copyright 2009-2024 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -PYTHON_COMPAT=( python3_{11..12} ) -PYTHON_REQ_USE="xml(+)" - -# PACKAGING NOTES - -# Google roll their bundled Clang every two weeks, and the bundled Rust -# is rolled regularly and depends on that. While we do our best to build -# with system Clang, we will eventually hit the point where we need to use -# the bundled Clang due to the use of prerelease features. We've been lucky -# enough so far that this hasn't been an issue. - -# We try and avoid forcing the use of the custom/bundled libcxx, but sometimes -# it is unavoidable. Remember to force the use of Clang when this is forced. - -# GCC is _not_ supported upstream, though patches are welcome. We do our -# best to enable builds with GCC but reserve the right to force Clang -# builds if we can't keep up with upstream's changes. Please comment -# when forcing Clang builds so we can track the need for it. - -# GN is bundled with Chromium, but we always use the system version. Remember to -# check for upstream changes to GN and update ebuild (and version below) as required. - -# For binhost users, if USE=bindist is set, we configure Chromium in a way that it is able -# to use proprietary codecs, and so that ffmpeg is an external component (libffmpeg.so), -# then we remove ffmpeg from the image to ensure that the built package is distributable -# (i.e. we don't owe royalties). A suitable libffmpeg.so is symlinked in its place; -# as a result of this, ffmpeg[chromium] or ffmpeg-chromium must be installed on the system. - -# For non-binhost builds, we build the bundled ffmpeg and enable proprietary codecs because there's -# no reason not to. Todo: Re-enable USE=system-ffmpeg. - -# These variables let us easily bound supported major dependency versions in one place. -GCC_MIN_VER=12 -GN_MIN_VER=0.2154 -# Since Google use prerelease llvm we can let any adventurous users try to build with prerelease -# ebuilds; try to keep this up to date with the latest version in the tree. -LLVM_MAX_SLOT=19 -LLVM_MIN_SLOT=17 -RUST_MIN_VER=1.72.0 -# chromium-tools/get-chromium-toolchain-strings.sh -GOOGLE_CLANG_VER=llvmorg-19-init-2319-g7c4c2746-1 -GOOGLE_RUST_VER=340bb19fea20fd5f9357bbfac542fad84fc7ea2b-3 - -# https://bugs.chromium.org/p/v8/issues/detail?id=14449 - V8 used in 120 can't build with GCC -# Resolved upstream, requires testing and some backporting I'm sure -: ${CHROMIUM_FORCE_CLANG=yes} -# https://gcc.gnu.org/bugzilla/show_bug.cgi?id=101227 - Chromium 120: -# webrtc - no matching member function for call to 'emplace' -: ${CHROMIUM_FORCE_LIBCXX=yes} -# 121's 'gcc_link_wrapper.py' currently fails if not using lld due to the addition of rust -: ${CHROMIUM_FORCE_LLD=yes} - -: ${CHROMIUM_FORCE_GOOGLE_TOOLCHAIN=no} - -VIRTUALX_REQUIRED="pgo" - -CHROMIUM_LANGS="af am ar bg bn ca cs da de el en-GB es es-419 et fa fi fil fr gu he - hi hr hu id it ja kn ko lt lv ml mr ms nb nl pl pt-BR pt-PT ro ru sk sl sr - sv sw ta te th tr uk ur vi zh-CN zh-TW" - -inherit check-reqs chromium-2 desktop flag-o-matic llvm ninja-utils pax-utils -inherit python-any-r1 qmake-utils readme.gentoo-r1 toolchain-funcs virtualx xdg-utils - -DESCRIPTION="Open-source version of Google Chrome web browser" -HOMEPAGE="https://www.chromium.org/" -PATCHSET_PPC64="123.0.6312.86-1raptor0~deb12u1" -PATCH_V="${PV%%\.*}" -SRC_URI="https://commondatastorage.googleapis.com/chromium-browser-official/${P}.tar.xz - system-toolchain? ( - https://gitlab.com/Matt.Jolly/chromium-patches/-/archive/${PATCH_V}/chromium-patches-${PATCH_V}.tar.bz2 - ) - !system-toolchain? ( - https://commondatastorage.googleapis.com/chromium-browser-clang/Linux_x64/clang-${GOOGLE_CLANG_VER}.tar.xz - -> chromium-${PV%%\.*}-clang.tar.xz - https://commondatastorage.googleapis.com/chromium-browser-clang/Linux_x64/rust-toolchain-${GOOGLE_RUST_VER}-${GOOGLE_CLANG_VER%??}.tar.xz - -> chromium-${PV%%\.*}-rust.tar.xz - ) - ppc64? ( - https://quickbuild.io/~raptor-engineering-public/+archive/ubuntu/chromium/+files/chromium_${PATCHSET_PPC64}.debian.tar.xz - https://deps.gentoo.zip/chromium-ppc64le-gentoo-patches-1.tar.xz - ) - pgo? ( https://github.com/elkablo/chromium-profiler/releases/download/v0.2/chromium-profiler-0.2.tar )" - -LICENSE="BSD" -SLOT="0/stable" -KEYWORDS="~amd64 ~arm64 ~ppc64 ~riscv" -IUSE_SYSTEM_LIBS="+system-harfbuzz +system-icu +system-png +system-zstd" -IUSE="+X ${IUSE_SYSTEM_LIBS} bindist cups debug ffmpeg-chromium gtk4 +hangouts headless kerberos libcxx lto +official pax-kernel pgo +proprietary-codecs pulseaudio" -IUSE+=" qt5 qt6 +screencast selinux +system-toolchain +vaapi +wayland +widevine" -RESTRICT="!bindist? ( bindist )" - -REQUIRED_USE=" - !headless? ( || ( X wayland ) ) - pgo? ( X !wayland ) - qt6? ( qt5 ) - screencast? ( wayland ) - !system-toolchain? ( libcxx ) - ffmpeg-chromium? ( bindist proprietary-codecs ) -" - -COMMON_X_DEPEND=" - x11-libs/libXcomposite:= - x11-libs/libXcursor:= - x11-libs/libXdamage:= - x11-libs/libXfixes:= - >=x11-libs/libXi-1.6.0:= - x11-libs/libXrandr:= - x11-libs/libXrender:= - x11-libs/libXtst:= - x11-libs/libxshmfence:= -" - -COMMON_SNAPSHOT_DEPEND=" - system-icu? ( >=dev-libs/icu-71.1:= ) - >=dev-libs/libxml2-2.12.4:=[icu] - dev-libs/nspr:= - >=dev-libs/nss-3.26:= - dev-libs/libxslt:= - media-libs/fontconfig:= - >=media-libs/freetype-2.11.0-r1:= - system-harfbuzz? ( >=media-libs/harfbuzz-3:0=[icu(-)] ) - media-libs/libjpeg-turbo:= - system-png? ( media-libs/libpng:=[-apng(-)] ) - system-zstd? ( >=app-arch/zstd-1.5.5:= ) - >=media-libs/libwebp-0.4.0:= - media-libs/mesa:=[gbm(+)] - >=media-libs/openh264-1.6.0:= - sys-libs/zlib:= - x11-libs/libdrm:= - !headless? ( - dev-libs/glib:2 - >=media-libs/alsa-lib-1.0.19:= - pulseaudio? ( media-libs/libpulse:= ) - sys-apps/pciutils:= - kerberos? ( virtual/krb5 ) - vaapi? ( >=media-libs/libva-2.7:=[X?,wayland?] ) - X? ( - x11-libs/libX11:= - x11-libs/libXext:= - x11-libs/libxcb:= - ) - x11-libs/libxkbcommon:= - wayland? ( - dev-libs/libffi:= - dev-libs/wayland:= - screencast? ( media-video/pipewire:= ) - ) - ) -" - -COMMON_DEPEND=" - ${COMMON_SNAPSHOT_DEPEND} - app-arch/bzip2:= - dev-libs/expat:= - net-misc/curl[ssl] - sys-apps/dbus:= - media-libs/flac:= - sys-libs/zlib:=[minizip] - !headless? ( - X? ( ${COMMON_X_DEPEND} ) - >=app-accessibility/at-spi2-core-2.46.0:2 - media-libs/mesa:=[X?,wayland?] - cups? ( >=net-print/cups-1.3.11:= ) - virtual/udev - x11-libs/cairo:= - x11-libs/gdk-pixbuf:2 - x11-libs/pango:= - qt5? ( - dev-qt/qtcore:5 - dev-qt/qtwidgets:5 - ) - qt6? ( dev-qt/qtbase:6[gui,widgets] ) - ) -" -RDEPEND="${COMMON_DEPEND} - !headless? ( - || ( - x11-libs/gtk+:3[X?,wayland?] - gui-libs/gtk:4[X?,wayland?] - ) - qt5? ( dev-qt/qtgui:5[X?,wayland?] ) - qt6? ( dev-qt/qtbase:6[X?,wayland?] ) - ) - virtual/ttf-fonts - selinux? ( sec-policy/selinux-chromium ) - bindist? ( - !ffmpeg-chromium? ( >=media-video/ffmpeg-6.1-r1:0/58.60.60[chromium] ) - ffmpeg-chromium? ( media-video/ffmpeg-chromium:${PV%%\.*} ) - ) -" -DEPEND="${COMMON_DEPEND} - !headless? ( - gtk4? ( gui-libs/gtk:4[X?,wayland?] ) - !gtk4? ( x11-libs/gtk+:3[X?,wayland?] ) - ) -" - -depend_clang_llvm_version() { - echo "sys-devel/clang:$1" - echo "sys-devel/llvm:$1" - echo "=sys-devel/lld-$1*" -} - -# When passed multiple arguments we assume that -# we want a range of versions, inclusive. -depend_clang_llvm_versions() { - local _v - if [[ $# -eq 1 ]]; then - depend_clang_llvm_version "$1" - elif [[ $# -eq 2 ]]; then - if [[ $1 -eq $2 ]]; then - depend_clang_llvm_version "$1" - fi - echo "|| (" - for ((i=$1; i<=$2; i++)); do - echo "(" - depend_clang_llvm_version "${i}" - echo ")" - done - echo ")" - else - die "depend_clang_llvm_versions() requires 1 or 2 arguments" - fi -} - -BDEPEND=" - ${COMMON_SNAPSHOT_DEPEND} - ${PYTHON_DEPS} - $(python_gen_any_dep ' - dev-python/setuptools[${PYTHON_USEDEP}] - ') - >=app-arch/gzip-1.7 - !headless? ( - qt5? ( dev-qt/qtcore:5 ) - qt6? ( dev-qt/qtbase:6 ) - ) - system-toolchain? ( - libcxx? ( >=sys-devel/clang-${LLVM_MIN_SLOT} ) - lto? ( $(depend_clang_llvm_versions ${LLVM_MIN_SLOT} ${LLVM_MAX_SLOT}) ) - pgo? ( - >=dev-python/selenium-3.141.0 - >=dev-util/web_page_replay_go-20220314 - $(depend_clang_llvm_versions ${LLVM_MIN_SLOT} ${LLVM_MAX_SLOT}) - ) - >=virtual/rust-${RUST_MIN_VER}[profiler(-)] - ) - >=dev-build/gn-${GN_MIN_VER} - dev-lang/perl - >=dev-build/ninja-1.7.2 - >=dev-util/gperf-3.0.3 - dev-vcs/git - >=net-libs/nodejs-7.6.0[inspector] - >=sys-devel/bison-2.4.3 - sys-devel/flex - virtual/pkgconfig -" - -if [[ ${CHROMIUM_FORCE_CLANG} == yes ]]; then - BDEPEND+="system-toolchain? ( >=sys-devel/clang-${LLVM_MIN_SLOT} ) " -fi - -if [[ ${CHROMIUM_FORCE_LLD} == yes ]]; then - BDEPEND+="system-toolchain? ( >=sys-devel/lld-${LLVM_MIN_SLOT} ) " -else - # #918897: Hack for arm64 - BDEPEND+=" arm64? ( >=sys-devel/lld-${LLVM_MIN_SLOT} )" -fi - -if ! has chromium_pkg_die ${EBUILD_DEATH_HOOKS}; then - EBUILD_DEATH_HOOKS+=" chromium_pkg_die"; -fi - -DISABLE_AUTOFORMATTING="yes" -DOC_CONTENTS=" -Some web pages may require additional fonts to display properly. -Try installing some of the following packages if some characters -are not displayed properly: -- media-fonts/arphicfonts -- media-fonts/droid -- media-fonts/ipamonafont -- media-fonts/noto -- media-fonts/ja-ipafonts -- media-fonts/takao-fonts -- media-fonts/wqy-microhei -- media-fonts/wqy-zenhei - -To fix broken icons on the Downloads page, you should install an icon -theme that covers the appropriate MIME types, and configure this as your -GTK+ icon theme. - -For native file dialogs in KDE, install kde-apps/kdialog. - -To make password storage work with your desktop environment you may -have install one of the supported credentials management applications: -- app-crypt/libsecret (GNOME) -- kde-frameworks/kwallet (KDE) -If you have one of above packages installed, but don't want to use -them in Chromium, then add --password-store=basic to CHROMIUM_FLAGS -in /etc/chromium/default. -" - -python_check_deps() { - python_has_version "dev-python/setuptools[${PYTHON_USEDEP}]" -} - -needs_clang() { - [[ ${CHROMIUM_FORCE_CLANG} == yes ]] || use libcxx || use lto || use pgo -} - -needs_lld() { - # #641556: Force lld for lto and pgo builds, otherwise disable - # #918897: Temporary hack w/ use arm64 - [[ ${CHROMIUM_FORCE_LLD} == yes ]] || use lto || use pgo || use arm64 -} - -llvm_check_deps() { - if ! has_version -b "sys-devel/clang:${LLVM_SLOT}" ; then - einfo "sys-devel/clang:${LLVM_SLOT} is missing! Cannot use LLVM slot ${LLVM_SLOT} ..." >&2 - return 1 - fi - - if ( use lto || use pgo ) && ! has_version -b "=sys-devel/lld-${LLVM_SLOT}*" ; then - einfo "=sys-devel/lld-${LLVM_SLOT}* is missing! Cannot use LLVM slot ${LLVM_SLOT} ..." >&2 - return 1 - fi - - einfo "Using LLVM slot ${LLVM_SLOT} to build" >&2 -} - -pre_build_checks() { - # Check build requirements: bugs #471810, #541816, #914220 - # We're going to start doing maths here on the size of an unpacked source tarball, - # this should make updates easier as chromium continues to balloon in size. - local BASE_DISK=18 - local EXTRA_DISK=1 - local CHECKREQS_MEMORY="4G" - tc-is-cross-compiler && EXTRA_DISK=2 - if use lto || use pgo; then - CHECKREQS_MEMORY="9G" - tc-is-cross-compiler && EXTRA_DISK=4 - use pgo && EXTRA_DISK=8 - fi - if is-flagq '-g?(gdb)?([1-9])'; then - if use custom-cflags; then - EXTRA_DISK=13 - fi - CHECKREQS_MEMORY="16G" - fi - CHECKREQS_DISK_BUILD="$((BASE_DISK + EXTRA_DISK))G" - check-reqs_${EBUILD_PHASE_FUNC} -} - -pkg_pretend() { - if [[ ${MERGE_TYPE} != binary ]]; then - # The pre_build_checks are all about compilation resources, no need to run it for a binpkg - pre_build_checks - fi - - if use headless; then - local headless_unused_flags=("cups" "kerberos" "pulseaudio" "qt5" "qt6" "vaapi" "wayland") - for myiuse in ${headless_unused_flags[@]}; do - use ${myiuse} && ewarn "Ignoring USE=${myiuse}, USE=headless is set." - done - fi - - if ! use bindist && use ffmpeg-chromium; then - ewarn "Ignoring USE=ffmpeg-chromium, USE=bindist is not set." - fi -} - -pkg_setup() { - if [[ ${MERGE_TYPE} != binary ]]; then - # The pre_build_checks are all about compilation resources, no need to run it for a binpkg - pre_build_checks - - if use system-toolchain; then - local -x CPP="$(tc-getCXX) -E" - if tc-is-gcc && ! ver_test "$(gcc-version)" -ge ${GCC_MIN_VER}; then - die "At least gcc ${GCC_MIN_VER} is required" - fi - if use pgo && tc-is-cross-compiler; then - die "The pgo USE flag cannot be used when cross-compiling" - fi - if needs_clang && ! tc-is-clang; then - if tc-is-cross-compiler; then - CPP="${CBUILD}-clang++ -E" - else - CPP="${CHOST}-clang++ -E" - fi - fi - if needs_clang || tc-is-clang; then - if ver_test "$(clang-major-version)" -lt ${LLVM_MIN_SLOT}; then - die "At least Clang ${LLVM_MIN_SLOT} is required" - fi - # Ideally we never see this, but it should help prevent bugs like 927154 - if ver_test "$(clang-major-version)" -gt ${LLVM_MAX_SLOT}; then - die "Clang $(clang-major-version) is too new; ${LLVM_MAX_SLOT} is the highest supported version" - fi - fi - fi - # Users should never hit this, it's purely a development convenience - if ver_test $(gn --version || die) -lt ${GN_MIN_VER}; then - die "dev-build/gn >= ${GN_MIN_VER} is required to build this Chromium" - fi - fi - - chromium_suid_sandbox_check_kernel_config -} - -src_prepare() { - # Calling this here supports resumption via FEATURES=keepwork - python_setup - - # disable global media controls, crashes with libstdc++ - sed -i -e \ - "/\"GlobalMediaControlsCastStartStop\"/,+4{s/ENABLED/DISABLED/;}" \ - "chrome/browser/media/router/media_router_feature.cc" || die - - local PATCHES=( - "${FILESDIR}/chromium-cross-compile.patch" - "${FILESDIR}/chromium-use-oauth2-client-switches-as-default.patch" - "${FILESDIR}/chromium-109-system-zlib.patch" - "${FILESDIR}/chromium-111-InkDropHost-crash.patch" - "${FILESDIR}/chromium-117-system-zstd.patch" - "${FILESDIR}/chromium-124-libwebp-shim-sharpyuv.patch" - "${FILESDIR}/00swiftshader-MCDissassembler.patch" - "${FILESDIR}/00swiftshader-use-llvm16.patch" - "${FILESDIR}/01fix-rust-target.patch" - "${FILESDIR}/02Debian-fix-rust-linking.patch" - "${FILESDIR}/03riscv-dav1d.patch" - "${FILESDIR}/05riscv-sandbox.patch" - "${FILESDIR}/06riscv-ffmpeg.patch" - "${FILESDIR}/09riscv.patch" - "${FILESDIR}/10cpuinfo.patch" - ) - - if use system-toolchain; then - # The patchset is really only required if we're using the system-toolchain - PATCHES+=( "${WORKDIR}/chromium-patches-${PATCH_V}" ) - # We can't use the bundled compiler builtins - sed -i -e \ - "/if (is_clang && toolchain_has_rust) {/,+2d" \ - build/config/compiler/BUILD.gn || die "Failed to disable bundled compiler builtins" - else - mkdir -p third_party/llvm-build/Release+Asserts || die "Failed to bundle llvm" - ln -s "${WORKDIR}"/bin third_party/llvm-build/Release+Asserts/bin || die "Failed to symlink llvm bin" - ln -s "${WORKDIR}"/lib third_party/llvm-build/Release+Asserts/lib || die "Failed to symlink llvm lib" - echo "${GOOGLE_CLANG_VER}" > third_party/llvm-build/Release+Asserts/cr_build_revision || \ - die "Failed to set clang version" - ln -s "${WORKDIR}"/rust-toolchain third_party/rust-toolchain || die "Failed to bundle rust" - cp "${WORKDIR}"/rust-toolchain/VERSION \ - "${WORKDIR}"/rust-toolchain/INSTALLED_VERSION || die "Failed to set rust version" - fi - - if use ppc64 ; then - local p - for p in $(grep -v "^#" "${WORKDIR}"/debian/patches/series | grep "^ppc64le" || die); do - if [[ ! $p =~ "fix-breakpad-compile.patch" ]]; then - eapply "${WORKDIR}/debian/patches/${p}" - fi - done - PATCHES+=( "${WORKDIR}/ppc64le" ) - PATCHES+=( "${WORKDIR}/debian/patches/fixes/rust-clanglib.patch" ) - fi - - 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 - - # adjust python interpreter version - sed -i -e "s|\(^script_executable = \).*|\1\"${EPYTHON}\"|g" .gn || die - - local keeplibs=( - base/third_party/cityhash - base/third_party/double_conversion - base/third_party/dynamic_annotations - base/third_party/icu - base/third_party/nspr - base/third_party/superfasthash - base/third_party/symbolize - base/third_party/valgrind - base/third_party/xdg_user_dirs - buildtools/third_party/libc++ - buildtools/third_party/libc++abi - chrome/third_party/mozilla_security_manager - courgette/third_party - net/third_party/mozilla_security_manager - net/third_party/nss - net/third_party/quic - net/third_party/uri_template - third_party/abseil-cpp - third_party/angle - third_party/angle/src/common/third_party/xxhash - third_party/angle/src/third_party/ceval - third_party/angle/src/third_party/libXNVCtrl - third_party/angle/src/third_party/volk - third_party/anonymous_tokens - third_party/apple_apsl - third_party/axe-core - third_party/blink - third_party/bidimapper - third_party/boringssl - third_party/boringssl/src/third_party/fiat - third_party/breakpad - third_party/breakpad/breakpad/src/third_party/curl - third_party/brotli - third_party/catapult - third_party/catapult/common/py_vulcanize/third_party/rcssmin - third_party/catapult/common/py_vulcanize/third_party/rjsmin - third_party/catapult/third_party/beautifulsoup4-4.9.3 - third_party/catapult/third_party/html5lib-1.1 - third_party/catapult/third_party/polymer - third_party/catapult/third_party/six - third_party/catapult/tracing/third_party/d3 - third_party/catapult/tracing/third_party/gl-matrix - third_party/catapult/tracing/third_party/jpeg-js - third_party/catapult/tracing/third_party/jszip - third_party/catapult/tracing/third_party/mannwhitneyu - third_party/catapult/tracing/third_party/oboe - third_party/catapult/tracing/third_party/pako - third_party/ced - third_party/cld_3 - third_party/closure_compiler - third_party/content_analysis_sdk - third_party/cpuinfo - third_party/crashpad - third_party/crashpad/crashpad/third_party/lss - third_party/crashpad/crashpad/third_party/zlib - third_party/crc32c - third_party/cros_system_api - third_party/d3 - third_party/dav1d - third_party/dawn - third_party/dawn/third_party/gn/webgpu-cts - third_party/dawn/third_party/khronos - third_party/depot_tools - third_party/devscripts - third_party/devtools-frontend - third_party/devtools-frontend/src/front_end/third_party/acorn - third_party/devtools-frontend/src/front_end/third_party/additional_readme_paths.json - third_party/devtools-frontend/src/front_end/third_party/axe-core - 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/csp_evaluator - third_party/devtools-frontend/src/front_end/third_party/diff - 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 - third_party/devtools-frontend/src/front_end/third_party/lit - third_party/devtools-frontend/src/front_end/third_party/lodash-isequal - third_party/devtools-frontend/src/front_end/third_party/marked - third_party/devtools-frontend/src/front_end/third_party/puppeteer - third_party/devtools-frontend/src/front_end/third_party/puppeteer/package/lib/esm/third_party/mitt - third_party/devtools-frontend/src/front_end/third_party/puppeteer/package/lib/esm/third_party/rxjs - third_party/devtools-frontend/src/front_end/third_party/vscode.web-custom-data - third_party/devtools-frontend/src/front_end/third_party/wasmparser - third_party/devtools-frontend/src/test/unittests/front_end/third_party/i18n - third_party/devtools-frontend/src/third_party - third_party/distributed_point_functions - third_party/dom_distiller_js - third_party/eigen3 - third_party/emoji-segmenter - third_party/farmhash - third_party/fdlibm - third_party/ffmpeg - third_party/fft2d - third_party/flatbuffers - third_party/fp16 - third_party/freetype - third_party/fusejs - third_party/fxdiv - third_party/highway - third_party/liburlpattern - third_party/libzip - third_party/lit - third_party/gemmlowp - third_party/google_input_tools - third_party/google_input_tools/third_party/closure_library - third_party/google_input_tools/third_party/closure_library/third_party/closure - third_party/googletest - third_party/hunspell - third_party/iccjpeg - third_party/inspector_protocol - third_party/ipcz - third_party/jinja2 - third_party/jsoncpp - third_party/jstemplate - third_party/khronos - third_party/leveldatabase - third_party/libaddressinput - third_party/libaom - third_party/libaom/source/libaom/third_party/fastfeat - third_party/libaom/source/libaom/third_party/SVT-AV1 - third_party/libaom/source/libaom/third_party/vector - third_party/libaom/source/libaom/third_party/x86inc - third_party/libavif - third_party/libevent - third_party/libgav1 - third_party/libjingle - third_party/libphonenumber - third_party/libsecret - third_party/libsrtp - third_party/libsync - third_party/libudev - third_party/libva_protected_content - third_party/libvpx - third_party/libvpx/source/libvpx/third_party/x86inc - third_party/libwebm - third_party/libx11 - third_party/libxcb-keysyms - third_party/libxml/chromium - third_party/libyuv - third_party/lottie - third_party/lss - third_party/lzma_sdk - third_party/mako - third_party/maldoca - third_party/maldoca/src/third_party/tensorflow_protos - third_party/maldoca/src/third_party/zlibwrapper - third_party/markupsafe - third_party/material_color_utilities - third_party/mesa - third_party/metrics_proto - third_party/minigbm - third_party/modp_b64 - third_party/nasm - third_party/nearby - third_party/neon_2_sse - third_party/node - third_party/omnibox_proto - third_party/one_euro_filter - third_party/openscreen - third_party/openscreen/src/third_party/ - third_party/openscreen/src/third_party/tinycbor/src/src - third_party/opus - third_party/ots - third_party/pdfium - third_party/pdfium/third_party/agg23 - third_party/pdfium/third_party/base - third_party/pdfium/third_party/bigint - third_party/pdfium/third_party/freetype - third_party/pdfium/third_party/lcms - third_party/pdfium/third_party/libopenjpeg - third_party/pdfium/third_party/libtiff - third_party/perfetto - third_party/perfetto/protos/third_party/chromium - third_party/pffft - third_party/ply - third_party/polymer - third_party/private-join-and-compute - third_party/private_membership - third_party/protobuf - third_party/pthreadpool - third_party/puffin - third_party/pyjson5 - third_party/pyyaml - third_party/qcms - third_party/re2 - third_party/rnnoise - third_party/rust - third_party/s2cellid - third_party/securemessage - third_party/selenium-atoms - third_party/shell-encryption - third_party/simplejson - third_party/skia - third_party/skia/include/third_party/vulkan - third_party/skia/third_party/vulkan - third_party/smhasher - third_party/snappy - third_party/sqlite - third_party/swiftshader - third_party/swiftshader/third_party/astc-encoder - third_party/swiftshader/third_party/llvm-subzero - third_party/swiftshader/third_party/marl - third_party/swiftshader/third_party/subzero - third_party/swiftshader/third_party/SPIRV-Headers/include/spirv - third_party/swiftshader/third_party/SPIRV-Tools - third_party/tensorflow_models - third_party/tensorflow-text - third_party/tflite - third_party/tflite/src/third_party/eigen3 - third_party/tflite/src/third_party/fft2d - third_party/tflite/src/third_party/xla/third_party/tsl - third_party/ruy - third_party/six - third_party/ukey2 - third_party/unrar - third_party/utf - third_party/vulkan - third_party/wayland - third_party/webdriver - third_party/webgpu-cts - third_party/webrtc - third_party/webrtc/common_audio/third_party/ooura - third_party/webrtc/common_audio/third_party/spl_sqrt_floor - third_party/webrtc/modules/third_party/fft - third_party/webrtc/modules/third_party/g711 - third_party/webrtc/modules/third_party/g722 - third_party/webrtc/rtc_base/third_party/base64 - third_party/webrtc/rtc_base/third_party/sigslot - third_party/widevine - third_party/woff2 - third_party/wuffs - third_party/x11proto - third_party/xcbproto - third_party/xnnpack - third_party/zxcvbn-cpp - third_party/zlib/google - url/third_party/mozilla - v8/src/third_party/siphash - v8/src/third_party/valgrind - v8/src/third_party/utf8-decoder - v8/third_party/glibc - v8/third_party/inspector_protocol - v8/third_party/v8 - - # gyp -> gn leftovers - third_party/speech-dispatcher - third_party/usb_ids - third_party/xdg-utils - ) - - # USE=system-* - if ! use system-harfbuzz; then - keeplibs+=( third_party/harfbuzz-ng ) - fi - - if ! use system-icu; then - keeplibs+=( third_party/icu ) - fi - - if ! use system-png; then - keeplibs+=( third_party/libpng ) - fi - - if ! use system-zstd; then - keeplibs+=( third_party/zstd ) - fi - - if use libcxx || [[ ${CHROMIUM_FORCE_LIBCXX} == yes ]]; then - keeplibs+=( third_party/libc++ ) - fi - - if ! use system-toolchain || [[ ${CHROMIUM_FORCE_GOOGLE_TOOLCHAIN} == yes ]]; then - keeplibs+=( third_party/llvm ) - fi - - # Arch-specific - if use arm64 || use ppc64 ; then - keeplibs+=( third_party/swiftshader/third_party/llvm-10.0 ) - fi - if use riscv ; then - keeplibs+=( third_party/swiftshader/third_party/llvm-16.0 ) - fi - # we need to generate ppc64 stuff because upstream does not ship it yet - # it has to be done before unbundling. - if use ppc64; then - pushd third_party/libvpx >/dev/null || die - mkdir -p source/config/linux/ppc64 || die - # requires git and clang, bug #832803 - # Revert https://chromium.googlesource.com/chromium/src/+/b463d0f40b08b4e896e7f458d89ae58ce2a27165%5E%21/third_party/libvpx/generate_gni.sh - # and https://chromium.googlesource.com/chromium/src/+/71ebcbce867dd31da5f8b405a28fcb0de0657d91%5E%21/third_party/libvpx/generate_gni.sh - # since we're not in a git repo - sed -i -e "s|^update_readme||g; s|clang-format|${EPREFIX}/bin/true|g; /^git -C/d; /git cl/d; /cd \$BASE_DIR\/\$LIBVPX_SRC_DIR/ign format --in-place \$BASE_DIR\/BUILD.gn\ngn format --in-place \$BASE_DIR\/libvpx_srcs.gni" \ - generate_gni.sh || die - ./generate_gni.sh || die - popd >/dev/null || die - - pushd third_party/ffmpeg >/dev/null || die - cp libavcodec/ppc/h264dsp.c libavcodec/ppc/h264dsp_ppc.c || die - cp libavcodec/ppc/h264qpel.c libavcodec/ppc/h264qpel_ppc.c || die - popd >/dev/null || die - fi - - einfo "Unbundling third-party libraries ..." - # Remove most bundled libraries. Some are still needed. - build/linux/unbundle/remove_bundled_libraries.py "${keeplibs[@]}" --do-remove || die - - # 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 -} - -chromium_rust_version_check() { - [[ ${MERGE_TYPE} == binary ]] && return - local rustc_version=( $(eselect --brief rust show 2>/dev/null) ) - rustc_version=${rustc_version[0]#rust-bin-} - rustc_version=${rustc_version#rust-} - - [[ -z "${rustc_version}" ]] && die "Failed to determine rust version, check 'eselect rust' output" - - echo $rustc_version -} - -chromium_configure() { - # Calling this here supports resumption via FEATURES=keepwork - python_setup - - local myconf_gn="" - - if use system-toolchain && [[ ${CHROMIUM_FORCE_GOOGLE_TOOLCHAIN} == no ]]; then - # Make sure the build system will use the right tools, bug #340795. - tc-export AR CC CXX NM - - if needs_clang && ! tc-is-clang; then - # Force clang since gcc is either broken or build is using libcxx. - if tc-is-cross-compiler; then - CC="${CBUILD}-clang -target ${CHOST} --sysroot ${ESYSROOT}" - CXX="${CBUILD}-clang++ -target ${CHOST} --sysroot ${ESYSROOT}" - BUILD_CC=${CBUILD}-clang - BUILD_CXX=${CBUILD}-clang++ - else - CC=${CHOST}-clang - CXX=${CHOST}-clang++ - fi - strip-unsupported-flags - fi - - if tc-is-clang; then - myconf_gn+=" is_clang=true clang_use_chrome_plugins=false" - else - myconf_gn+=" is_clang=false" - fi - - if needs_lld ; then - # https://bugs.gentoo.org/918897#c32 - append-ldflags -Wl,--undefined-version - myconf_gn+=" use_lld=true" - else - # This doesn't prevent lld from being used, but rather prevents gn from forcing it - myconf_gn+=" use_lld=false" - fi - - if use lto; then - AR=llvm-ar - NM=llvm-nm - if tc-is-cross-compiler; then - BUILD_AR=llvm-ar - BUILD_NM=llvm-nm - fi - fi - - myconf_gn+=" custom_toolchain=\"//build/toolchain/linux/unbundle:default\"" - - if tc-is-cross-compiler; then - tc-export BUILD_{AR,CC,CXX,NM} - myconf_gn+=" host_toolchain=\"//build/toolchain/linux/unbundle:host\"" - myconf_gn+=" v8_snapshot_toolchain=\"//build/toolchain/linux/unbundle:host\"" - myconf_gn+=" pkg_config=\"$(tc-getPKG_CONFIG)\"" - myconf_gn+=" host_pkg_config=\"$(tc-getBUILD_PKG_CONFIG)\"" - - # setup cups-config, build system only uses --libs option - if use cups; then - mkdir "${T}/cups-config" || die - cp "${ESYSROOT}/usr/bin/${CHOST}-cups-config" "${T}/cups-config/cups-config" || die - export PATH="${PATH}:${T}/cups-config" - fi - - # Don't inherit PKG_CONFIG_PATH from environment - local -x PKG_CONFIG_PATH= - else - myconf_gn+=" host_toolchain=\"//build/toolchain/linux/unbundle:default\"" - fi - - local rustc_ver - rustc_ver=$(chromium_rust_version_check) - if ver_test "${rustc_ver}" -lt "${RUST_MIN_VER}"; then - eerror "Rust >=${RUST_MIN_VER} is required" - eerror "Please run 'eselect rust' and select the correct rust version" - die "Selected rust version is too old" - else - einfo "Using rust ${rustc_ver} to build" - fi - if [[ "$(eselect --brief rust show 2>/dev/null)" == *"bin"* ]]; then - myconf_gn+=" rust_sysroot_absolute=\"${EPREFIX}/opt/rust-bin-${rustc_ver}/\"" - else - myconf_gn+=" rust_sysroot_absolute=\"${EPREFIX}/usr/lib/rust/${rustc_ver}/\"" - fi - myconf_gn+=" rustc_version=\"${rustc_ver}\"" - fi - - # GN needs explicit config for Debug/Release as opposed to inferring it from build directory. - myconf_gn+=" is_debug=false" - - # enable DCHECK with USE=debug only, increases chrome binary size by 30%, bug #811138. - # DCHECK is fatal by default, make it configurable at runtime, #bug 807881. - myconf_gn+=" dcheck_always_on=$(usex debug true false)" - myconf_gn+=" dcheck_is_configurable=$(usex debug true false)" - - # Component build isn't generally intended for use by end users. It's mostly useful - # for development and debugging. - myconf_gn+=" is_component_build=false" - - # Disable nacl, we can't build without pnacl (http://crbug.com/269560). - myconf_gn+=" enable_nacl=false" - - # Use system-provided libraries. - # TODO: freetype -- remove sources (https://bugs.chromium.org/p/pdfium/issues/detail?id=733). - # TODO: use_system_hunspell (upstream changes needed). - # TODO: use_system_protobuf (bug #525560). - # TODO: use_system_sqlite (http://crbug.com/22208). - - # libevent: https://bugs.gentoo.org/593458 - local gn_system_libraries=( - flac - fontconfig - freetype - # Need harfbuzz_from_pkgconfig target - #harfbuzz-ng - libdrm - libjpeg - libwebp - libxml - libxslt - openh264 - zlib - ) - if use system-icu; then - gn_system_libraries+=( icu ) - fi - if use system-png; then - gn_system_libraries+=( libpng ) - fi - if use system-zstd; then - gn_system_libraries+=( zstd ) - fi - - build/linux/unbundle/replace_gn_files.py --system-libraries "${gn_system_libraries[@]}" || die - - # See dependency logic in third_party/BUILD.gn - myconf_gn+=" use_system_harfbuzz=$(usex system-harfbuzz true false)" - - # Optional dependencies. - myconf_gn+=" enable_hangout_services_extension=$(usex hangouts true false)" - myconf_gn+=" enable_widevine=$(usex widevine true false)" - - if use headless; then - myconf_gn+=" use_cups=false" - myconf_gn+=" use_kerberos=false" - myconf_gn+=" use_pulseaudio=false" - myconf_gn+=" use_vaapi=false" - myconf_gn+=" rtc_use_pipewire=false" - else - myconf_gn+=" use_cups=$(usex cups true false)" - myconf_gn+=" use_kerberos=$(usex kerberos true false)" - myconf_gn+=" use_pulseaudio=$(usex pulseaudio true false)" - myconf_gn+=" use_vaapi=$(usex vaapi true false)" - myconf_gn+=" rtc_use_pipewire=$(usex screencast true false)" - myconf_gn+=" gtk_version=$(usex gtk4 4 3)" - fi - - # Allows distributions to link pulseaudio directly (DT_NEEDED) instead of - # using dlopen. This helps with automated detection of ABI mismatches and - # prevents silent errors. - if use pulseaudio; then - myconf_gn+=" link_pulseaudio=true" - fi - - # Non-developer builds of Chromium (for example, non-Chrome browsers, or - # Chromium builds provided by Linux distros) should disable the testing config - myconf_gn+=" disable_fieldtrial_testing_config=true" - - if use system-toolchain; then - myconf_gn+=" use_gold=false" - fi - - # The sysroot is the oldest debian image that chromium supports, we don't need it - myconf_gn+=" use_sysroot=false" - - # This determines whether or not GN uses the bundled libcxx - # default: true - if use libcxx || [[ ${CHROMIUM_FORCE_LIBCXX} == yes ]]; then - myconf_gn+=" use_custom_libcxx=true" - else - myconf_gn+=" use_custom_libcxx=false" - fi - - # Disable pseudolocales, only used for testing - myconf_gn+=" enable_pseudolocales=false" - - # Disable code formating of generated files - myconf_gn+=" blink_enable_generated_code_formatting=false" - - if use bindist ; then - # proprietary_codecs just forces Chromium to say that it can use h264/aac, - # the work is still done by ffmpeg. If this is set to no Chromium - # won't be able to load the codec even if the library can handle it - myconf_gn+=" proprietary_codecs=true" - myconf_gn+=" ffmpeg_branding=\"Chrome\"" - # build ffmpeg as an external component (libffmpeg.so) that we can remove / substitute - myconf_gn+=" is_component_ffmpeg=true" - else - ffmpeg_branding="$(usex proprietary-codecs Chrome Chromium)" - myconf_gn+=" proprietary_codecs=$(usex proprietary-codecs true false)" - myconf_gn+=" ffmpeg_branding=\"${ffmpeg_branding}\"" - fi - - # Set up Google API keys, see http://www.chromium.org/developers/how-tos/api-keys . - # Note: these are for Gentoo use ONLY. For your own distribution, - # please get your own set of keys. Feel free to contact chromium@gentoo.org - # for more info. The OAuth2 credentials, however, have been left out. - # Those OAuth2 credentials have been broken for quite some time anyway. - # Instead we apply a patch to use the --oauth2-client-id= and - # --oauth2-client-secret= switches for setting GOOGLE_DEFAULT_CLIENT_ID and - # GOOGLE_DEFAULT_CLIENT_SECRET at runtime. This allows signing into - # Chromium without baked-in values. - local google_api_key="AIzaSyDEAOvatFo0eTgsV_ZlEzx0ObmepsMzfAc" - myconf_gn+=" google_api_key=\"${google_api_key}\"" - local myarch="$(tc-arch)" - - # Avoid CFLAGS problems, bug #352457, bug #390147. - if ! use custom-cflags; then - replace-flags "-Os" "-O2" - strip-flags - - # Debug info section overflows without component build - # Prevent linker from running out of address space, bug #471810 . - filter-flags "-g*" - - # Prevent libvpx/xnnpack build failures. Bug 530248, 544702, 546984, 853646. - if [[ ${myarch} == amd64 ]]; then - filter-flags -mno-mmx -mno-sse2 -mno-ssse3 -mno-sse4.1 -mno-avx -mno-avx2 -mno-fma -mno-fma4 -mno-xop -mno-sse4a - fi - - if tc-is-gcc; then - # https://bugs.gentoo.org/904455 - local -x CPP="$(tc-getCXX) -E" - # https://bugs.gentoo.org/912381 - filter-lto - fi - fi - - if [[ $myarch = amd64 ]] ; then - myconf_gn+=" target_cpu=\"x64\"" - ffmpeg_target_arch=x64 - elif [[ $myarch = arm64 ]] ; then - myconf_gn+=" target_cpu=\"arm64\"" - ffmpeg_target_arch=arm64 - elif [[ $myarch = ppc64 ]] ; then - myconf_gn+=" target_cpu=\"ppc64\"" - ffmpeg_target_arch=ppc64 - elif [[ $myarch = riscv ]] ; then - myconf_gn+=" target_cpu=\"riscv64\"" - ffmpeg_target_arch=riscv64 - else - die "Failed to determine target arch, got '$myarch'." - fi - - # Make sure that -Werror doesn't get added to CFLAGS by the build system. - # Depending on GCC version the warnings are different and we don't want - # the build to fail because of that. - myconf_gn+=" treat_warnings_as_errors=false" - - # Disable fatal linker warnings, bug 506268. - myconf_gn+=" fatal_linker_warnings=false" - - # Disable external code space for V8 for ppc64. It is disabled for ppc64 - # by default, but cross-compiling on amd64 enables it again. - if tc-is-cross-compiler; then - if ! use amd64 && ! use arm64; then - myconf_gn+=" v8_enable_external_code_space=false" - fi - fi - - # Only enabled for clang, but gcc has endian macros too - myconf_gn+=" v8_use_libm_trig_functions=true" - - # Bug 491582. - export TMPDIR="${WORKDIR}/temp" - mkdir -p -m 755 "${TMPDIR}" || die - - # https://bugs.gentoo.org/654216 - addpredict /dev/dri/ #nowarn - - # Disable unknown warning message from clang. - if tc-is-clang; then - append-flags -Wno-unknown-warning-option - if tc-is-cross-compiler; then - export BUILD_CXXFLAGS+=" -Wno-unknown-warning-option" - export BUILD_CFLAGS+=" -Wno-unknown-warning-option" - fi - fi - - # Explicitly disable ICU data file support for system-icu/headless builds. - if use system-icu || use headless; then - myconf_gn+=" icu_use_data_file=false" - fi - - # Don't need nocompile checks and GN crashes with our config - myconf_gn+=" enable_nocompile_tests=false" - - # Enable ozone wayland and/or headless support - myconf_gn+=" use_ozone=true ozone_auto_platforms=false" - myconf_gn+=" ozone_platform_headless=true" - if use headless; then - myconf_gn+=" ozone_platform=\"headless\"" - myconf_gn+=" use_xkbcommon=false use_gtk=false use_qt=false" - myconf_gn+=" use_glib=false use_gio=false" - myconf_gn+=" use_pangocairo=false use_alsa=false" - myconf_gn+=" use_libpci=false use_udev=false" - myconf_gn+=" enable_print_preview=false" - myconf_gn+=" enable_remoting=false" - else - myconf_gn+=" use_system_libdrm=true" - myconf_gn+=" use_system_minigbm=true" - myconf_gn+=" use_xkbcommon=true" - if use qt5 || use qt6; then - local cbuild_libdir=$(get_libdir) - if tc-is-cross-compiler; then - # Hack to workaround get_libdir not being able to handle CBUILD, bug #794181 - local cbuild_libdir=$($(tc-getBUILD_PKG_CONFIG) --keep-system-libs --libs-only-L libxslt) - cbuild_libdir=${cbuild_libdir:2} - cbuild_libdir=${cbuild_libdir/% } - fi - if use qt5; then - if tc-is-cross-compiler; then - myconf_gn+=" moc_qt5_path=\"${EPREFIX}/${cbuild_libdir}/qt5/bin\"" - else - myconf_gn+=" moc_qt5_path=\"$(qt5_get_bindir)\"" - fi - fi - if use qt6; then - myconf_gn+=" moc_qt6_path=\"${EPREFIX}/usr/${cbuild_libdir}/qt6/libexec\"" - fi - - myconf_gn+=" use_qt=true" - myconf_gn+=" use_qt6=$(usex qt6 true false)" - else - myconf_gn+=" use_qt=false" - fi - myconf_gn+=" ozone_platform_x11=$(usex X true false)" - myconf_gn+=" ozone_platform_wayland=$(usex wayland true false)" - myconf_gn+=" ozone_platform=$(usex wayland \"wayland\" \"x11\")" - use wayland && myconf_gn+=" use_system_libffi=true" - fi - - # Results in undefined references in chrome linking, may require CFI to work - if use arm64; then - myconf_gn+=" arm_control_flow_integrity=\"none\"" - fi - - # Enable official builds - myconf_gn+=" is_official_build=$(usex official true false)" - myconf_gn+=" use_thin_lto=$(usex lto true false)" - myconf_gn+=" thin_lto_enable_optimizations=$(usex lto true false)" - if use official; then - # Allow building against system libraries in official builds - sed -i 's/OFFICIAL_BUILD/GOOGLE_CHROME_BUILD/' \ - tools/generate_shim_headers/generate_shim_headers.py || die - # Disable CFI: unsupported for GCC, requires clang+lto+lld - myconf_gn+=" is_cfi=false" - # Don't add symbols to build - myconf_gn+=" symbol_level=0" - fi - - if use pgo; then - myconf_gn+=" chrome_pgo_phase=${1}" - if [[ "$1" == "2" ]]; then - myconf_gn+=" pgo_data_path=\"${2}\"" - fi - else - # Disable PGO - myconf_gn+=" chrome_pgo_phase=0" - fi - - # user CXXFLAGS might overwrite -march=armv8-a+crc+crypto, bug #851639 - if use arm64 && tc-is-gcc; then - sed -i '/^#if HAVE_ARM64_CRC32C/a #pragma GCC target ("+crc+crypto")' \ - third_party/crc32c/src/src/crc32c_arm64.cc || die - fi - - # skipping typecheck is only supported on amd64, bug #876157 - if ! use amd64; then - myconf_gn+=" devtools_skip_typecheck=false" - fi - - einfo "Configuring Chromium ..." - set -- gn gen --args="${myconf_gn} ${EXTRA_GN}" out/Release - echo "$@" - "$@" || die -} - -src_configure() { - chromium_configure $(usex pgo 1 0) -} - -chromium_compile() { - # Final link uses lots of file descriptors. - ulimit -n 2048 - - # Calling this here supports resumption via FEATURES=keepwork - python_setup - - # Don't inherit PYTHONPATH from environment, bug #789021, #812689 - local -x PYTHONPATH= - - # Build mksnapshot and pax-mark it. - if use pax-kernel; then - local x - for x in mksnapshot v8_context_snapshot_generator; do - if tc-is-cross-compiler; then - eninja -C out/Release "host/${x}" - pax-mark m "out/Release/host/${x}" - else - eninja -C out/Release "${x}" - pax-mark m "out/Release/${x}" - fi - done - fi - - # Even though ninja autodetects number of CPUs, we respect - # user's options, for debugging with -j 1 or any other reason. - eninja -C out/Release chrome chromedriver chrome_sandbox - - pax-mark m out/Release/chrome - - if ! use system-toolchain; then - QA_FLAGS_IGNORED=" - usr/lib64/chromium-browser/chrome - usr/lib64/chromium-browser/chrome-sandbox - usr/lib64/chromium-browser/chromedriver - usr/lib64/chromium-browser/chrome_crashpad_handler - usr/lib64/chromium-browser/libEGL.so - usr/lib64/chromium-browser/libGLESv2.so - usr/lib64/chromium-browser/libVkICD_mock_icd.so - usr/lib64/chromium-browser/libVkLayer_khronos_validation.so - usr/lib64/chromium-browser/libqt5_shim.so - usr/lib64/chromium-browser/libvk_swiftshader.so - usr/lib64/chromium-browser/libvulkan.so.1 - " - fi -} - -# This function is called from virtx, and must always return so that Xvfb -# session isn't left running. If we return 1, virtx will call die(). -chromium_profile() { - einfo "Profiling for PGO" - - pushd "${WORKDIR}/chromium-profiler-"* >/dev/null || return 1 - - # Remove old profdata in case profiling was interrupted. - rm -rf "${1}" || return 1 - - if ! "${EPYTHON}" ./chromium_profiler.py \ - --chrome-executable "${S}/out/Release/chrome" \ - --chromedriver-executable "${S}/out/Release/chromedriver.unstripped" \ - --add-arg no-sandbox --add-arg disable-dev-shm-usage \ - --profile-output "${1}"; then - eerror "Profiling failed" - return 1 - fi - - popd >/dev/null || return 1 -} - -src_compile() { - if use pgo; then - local profdata - - profdata="${WORKDIR}/chromium.profdata" - - if [[ ! -e "${WORKDIR}/.pgo-profiled" ]]; then - chromium_compile - virtx chromium_profile "$profdata" - - touch "${WORKDIR}/.pgo-profiled" || die - fi - - if [[ ! -e "${WORKDIR}/.pgo-phase-2-configured" ]]; then - # Remove phase 1 output - rm -r out/Release || die - - chromium_configure 2 "$profdata" - - touch "${WORKDIR}/.pgo-phase-2-configured" || die - fi - - if [[ ! -e "${WORKDIR}/.pgo-phase-2-compiled" ]]; then - chromium_compile - touch "${WORKDIR}/.pgo-phase-2-compiled" || die - fi - else - chromium_compile - fi - - mv out/Release/chromedriver{.unstripped,} || die - - rm -f out/Release/locales/*.pak.info || die - - # Build manpage; bug #684550 - sed -e 's|@@PACKAGE@@|chromium-browser|g; - s|@@MENUNAME@@|Chromium|g;' \ - chrome/app/resources/manpage.1.in > \ - out/Release/chromium-browser.1 || die - - # Build desktop file; bug #706786 - sed -e 's|@@MENUNAME@@|Chromium|g; - s|@@USR_BIN_SYMLINK_NAME@@|chromium-browser|g; - s|@@PACKAGE@@|chromium-browser|g; - s|\(^Exec=\)/usr/bin/|\1|g;' \ - chrome/installer/linux/common/desktop.template > \ - out/Release/chromium-browser-chromium.desktop || die - - # Build vk_swiftshader_icd.json; bug #827861 - sed -e 's|${ICD_LIBRARY_PATH}|./libvk_swiftshader.so|g' \ - third_party/swiftshader/src/Vulkan/vk_swiftshader_icd.json.tmpl > \ - out/Release/vk_swiftshader_icd.json || die -} - -src_install() { - local CHROMIUM_HOME="/usr/$(get_libdir)/chromium-browser" - exeinto "${CHROMIUM_HOME}" - doexe out/Release/chrome - - newexe out/Release/chrome_sandbox chrome-sandbox - fperms 4755 "${CHROMIUM_HOME}/chrome-sandbox" - - doexe out/Release/chromedriver - doexe out/Release/chrome_crashpad_handler - - ozone_auto_session () { - use X && use wayland && ! use headless && echo true || echo false - } - local sedargs=( -e - "s:/usr/lib/:/usr/$(get_libdir)/:g; - s:@@OZONE_AUTO_SESSION@@:$(ozone_auto_session):g" - ) - sed "${sedargs[@]}" "${FILESDIR}/chromium-launcher-r7.sh" > chromium-launcher.sh || die - doexe chromium-launcher.sh - - # It is important that we name the target "chromium-browser", - # xdg-utils expect it; bug #355517. - dosym "${CHROMIUM_HOME}/chromium-launcher.sh" /usr/bin/chromium-browser - # keep the old symlink around for consistency - dosym "${CHROMIUM_HOME}/chromium-launcher.sh" /usr/bin/chromium - - dosym "${CHROMIUM_HOME}/chromedriver" /usr/bin/chromedriver - - # Allow users to override command-line options, bug #357629. - insinto /etc/chromium - newins "${FILESDIR}/chromium.default" "default" - - pushd out/Release/locales > /dev/null || die - chromium_remove_language_paks - popd - - insinto "${CHROMIUM_HOME}" - doins out/Release/*.bin - doins out/Release/*.pak - - if use bindist; then - # We built libffmpeg as a component library, but we can't distribute it - # with proprietary codec support. Remove it and make a symlink to the requested - # system library. - rm -f out/Release/libffmpeg.so \ - || die "Failed to remove bundled libffmpeg.so (with proprietary codecs)" - # symlink the libffmpeg.so from either ffmpeg-chromium or ffmpeg[chromium]. - einfo "Creating symlink to libffmpeg.so from $(usex ffmpeg-chromium ffmpeg-chromium ffmpeg[chromium])..." - dosym ../chromium/libffmpeg.so$(usex ffmpeg-chromium .${PV%%\.*} "") \ - /usr/$(get_libdir)/chromium-browser/libffmpeg.so - fi - - ( - shopt -s nullglob - local files=(out/Release/*.so out/Release/*.so.[0-9]) - [[ ${#files[@]} -gt 0 ]] && doins "${files[@]}" - ) - - # Install bundled xdg-utils, avoids installing X11 libraries with USE="-X wayland" - doins out/Release/xdg-{settings,mime} - - if ! use system-icu && ! use headless; then - doins out/Release/icudtl.dat - fi - - doins -r out/Release/locales - doins -r out/Release/MEIPreload - - # Install vk_swiftshader_icd.json; bug #827861 - doins out/Release/vk_swiftshader_icd.json - - if [[ -d out/Release/swiftshader ]]; then - insinto "${CHROMIUM_HOME}/swiftshader" - doins out/Release/swiftshader/*.so - fi - - # Install icons - local branding size - for size in 16 24 32 48 64 128 256 ; do - case ${size} in - 16|32) branding="chrome/app/theme/default_100_percent/chromium" ;; - *) branding="chrome/app/theme/chromium" ;; - esac - newicon -s ${size} "${branding}/product_logo_${size}.png" \ - chromium-browser.png - done - - # Install desktop entry - domenu out/Release/chromium-browser-chromium.desktop - - # Install GNOME default application entry (bug #303100). - insinto /usr/share/gnome-control-center/default-apps - newins "${FILESDIR}"/chromium-browser.xml chromium-browser.xml - - # Install manpage; bug #684550 - doman out/Release/chromium-browser.1 - dosym chromium-browser.1 /usr/share/man/man1/chromium.1 - - readme.gentoo_create_doc -} - -pkg_postrm() { - xdg_icon_cache_update - xdg_desktop_database_update -} - -pkg_postinst() { - xdg_icon_cache_update - xdg_desktop_database_update - readme.gentoo_print_elog - - if ! use headless; then - if use vaapi; then - 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" - elog "by navigating to chrome://flags/#enable-webrtc-pipewire-capturer" - elog "inside Chromium or add --enable-features=WebRTCPipeWireCapturer" - elog "to CHROMIUM_FLAGS in /etc/chromium/default." - fi - if use gtk4; then - elog "Chromium prefers GTK3 over GTK4 at runtime. To override this" - elog "behavior you need to pass --gtk-version=4, e.g. by adding it" - elog "to CHROMIUM_FLAGS in /etc/chromium/default." - fi - if use qt5 && use qt6; then - elog "Chromium automatically selects Qt5 or Qt6 based on your desktop" - elog "environment. To override you need to pass --qt-version=5 or" - elog "--qt-version=6, e.g. by adding it to CHROMIUM_FLAGS in" - elog "/etc/chromium/default." - fi - fi -} diff --git a/www-client/chromium/chromium-123.0.6312.122.ebuild b/www-client/chromium/chromium-126.0.6478.114.ebuild index d9b1d00..6416959 100644 --- a/www-client/chromium/chromium-123.0.6312.122.ebuild +++ b/www-client/chromium/chromium-126.0.6478.114.ebuild @@ -3,7 +3,7 @@ EAPI=8 -PYTHON_COMPAT=( python3_{11..12} ) +PYTHON_COMPAT=( python3_{11..13} ) PYTHON_REQ_USE="xml(+)" # PACKAGING NOTES @@ -36,15 +36,15 @@ PYTHON_REQ_USE="xml(+)" # These variables let us easily bound supported major dependency versions in one place. GCC_MIN_VER=12 -GN_MIN_VER=0.2154 +GN_MIN_VER=0.2165 # Since Google use prerelease llvm we can let any adventurous users try to build with prerelease # ebuilds; try to keep this up to date with the latest version in the tree. LLVM_MAX_SLOT=19 LLVM_MIN_SLOT=17 RUST_MIN_VER=1.72.0 # chromium-tools/get-chromium-toolchain-strings.sh -GOOGLE_CLANG_VER=llvmorg-19-init-2319-g7c4c2746-1 -GOOGLE_RUST_VER=340bb19fea20fd5f9357bbfac542fad84fc7ea2b-3 +GOOGLE_CLANG_VER=llvmorg-19-init-9433-g76ea5feb-1 +GOOGLE_RUST_VER=31e6e8c6c5b6ce62656c922c7384d3376018c980-2 # https://bugs.chromium.org/p/v8/issues/detail?id=14449 - V8 used in 120 can't build with GCC # Resolved upstream, requires testing and some backporting I'm sure @@ -64,11 +64,11 @@ CHROMIUM_LANGS="af am ar bg bn ca cs da de el en-GB es es-419 et fa fi fil fr gu sv sw ta te th tr uk ur vi zh-CN zh-TW" inherit check-reqs chromium-2 desktop flag-o-matic llvm ninja-utils pax-utils -inherit python-any-r1 qmake-utils readme.gentoo-r1 toolchain-funcs virtualx xdg-utils +inherit python-any-r1 qmake-utils readme.gentoo-r1 systemd toolchain-funcs virtualx xdg-utils DESCRIPTION="Open-source version of Google Chrome web browser" HOMEPAGE="https://www.chromium.org/" -PATCHSET_PPC64="123.0.6312.105-1raptor0~deb12u1" +PATCHSET_PPC64="126.0.6478.56-1raptor0~deb12u2" PATCH_V="${PV%%\.*}" SRC_URI="https://commondatastorage.googleapis.com/chromium-browser-official/${P}.tar.xz system-toolchain? ( @@ -88,7 +88,7 @@ SRC_URI="https://commondatastorage.googleapis.com/chromium-browser-official/${P} LICENSE="BSD" SLOT="0/stable" -KEYWORDS="~amd64 arm64 ~ppc64 ~riscv" +KEYWORDS="~amd64 ~arm64 ~ppc64 ~riscv" IUSE_SYSTEM_LIBS="+system-harfbuzz +system-icu +system-png +system-zstd" IUSE="+X ${IUSE_SYSTEM_LIBS} bindist cups debug ffmpeg-chromium gtk4 +hangouts headless kerberos libcxx lto +official pax-kernel pgo +proprietary-codecs pulseaudio" IUSE+=" qt5 qt6 +screencast selinux +system-toolchain +vaapi +wayland +widevine" @@ -250,8 +250,8 @@ BDEPEND=" >=virtual/rust-${RUST_MIN_VER}[profiler(-)] ) >=dev-build/gn-${GN_MIN_VER} + dev-build/ninja dev-lang/perl - >=dev-build/ninja-1.7.2 >=dev-util/gperf-3.0.3 dev-vcs/git >=net-libs/nodejs-7.6.0[inspector] @@ -336,7 +336,7 @@ pre_build_checks() { # Check build requirements: bugs #471810, #541816, #914220 # We're going to start doing maths here on the size of an unpacked source tarball, # this should make updates easier as chromium continues to balloon in size. - local BASE_DISK=18 + local BASE_DISK=22 local EXTRA_DISK=1 local CHECKREQS_MEMORY="4G" tc-is-cross-compiler && EXTRA_DISK=2 @@ -422,22 +422,20 @@ src_prepare() { "chrome/browser/media/router/media_router_feature.cc" || die local PATCHES=( - "${FILESDIR}/chromium-cross-compile.patch" - "${FILESDIR}/chromium-use-oauth2-client-switches-as-default.patch" "${FILESDIR}/chromium-109-system-zlib.patch" "${FILESDIR}/chromium-111-InkDropHost-crash.patch" - "${FILESDIR}/chromium-117-system-zstd.patch" - "${FILESDIR}/chromium-124-libwebp-shim-sharpyuv.patch" - "${FILESDIR}/chromium-123-qt-gui-check.patch" - "${FILESDIR}/00swiftshader-MCDissassembler.patch" - "${FILESDIR}/00swiftshader-use-llvm16.patch" - "${FILESDIR}/01fix-rust-target.patch" - "${FILESDIR}/02Debian-fix-rust-linking.patch" - "${FILESDIR}/03riscv-dav1d.patch" - "${FILESDIR}/05riscv-sandbox.patch" - "${FILESDIR}/06riscv-ffmpeg.patch" - "${FILESDIR}/09riscv.patch" - "${FILESDIR}/10cpuinfo.patch" + "${FILESDIR}/chromium-125-system-zstd.patch" + "${FILESDIR}/chromium-126-oauth2-client-switches.patch" + "${FILESDIR}/chromium-cross-compile.patch" + "${FILESDIR}/swiftshader-MCDissassembler.patch" + "${FILESDIR}/swiftshader-use-llvm16.patch" + "${FILESDIR}/fix-rust-target.patch" + "${FILESDIR}/Debian-fix-rust-linking.patch" + "${FILESDIR}/riscv-dav1d.patch" + "${FILESDIR}/riscv-sandbox.patch" + "${FILESDIR}/riscv-ffmpeg.patch" + "${FILESDIR}/riscv.patch" + "${FILESDIR}/cpuinfo.patch" ) if use system-toolchain; then @@ -467,7 +465,6 @@ src_prepare() { done PATCHES+=( "${WORKDIR}/ppc64le" ) PATCHES+=( "${WORKDIR}/debian/patches/fixes/rust-clanglib.patch" ) - PATCHES+=( "${WORKDIR}/debian/patches/fixes/blink-fonts-shape-result.patch" ) fi default @@ -481,7 +478,6 @@ src_prepare() { local keeplibs=( base/third_party/cityhash base/third_party/double_conversion - base/third_party/dynamic_annotations base/third_party/icu base/third_party/nspr base/third_party/superfasthash @@ -562,7 +558,6 @@ src_prepare() { third_party/devtools-frontend/src/front_end/third_party/puppeteer/package/lib/esm/third_party/rxjs third_party/devtools-frontend/src/front_end/third_party/vscode.web-custom-data third_party/devtools-frontend/src/front_end/third_party/wasmparser - third_party/devtools-frontend/src/test/unittests/front_end/third_party/i18n third_party/devtools-frontend/src/third_party third_party/distributed_point_functions third_party/dom_distiller_js @@ -594,6 +589,7 @@ src_prepare() { third_party/jsoncpp third_party/jstemplate third_party/khronos + third_party/lens_server_proto third_party/leveldatabase third_party/libaddressinput third_party/libaom @@ -644,7 +640,6 @@ src_prepare() { third_party/ots third_party/pdfium third_party/pdfium/third_party/agg23 - third_party/pdfium/third_party/base third_party/pdfium/third_party/bigint third_party/pdfium/third_party/freetype third_party/pdfium/third_party/lcms @@ -669,6 +664,8 @@ src_prepare() { third_party/s2cellid third_party/securemessage third_party/selenium-atoms + third_party/sentencepiece + third_party/sentencepiece/src/third_party/darts_clone third_party/shell-encryption third_party/simplejson third_party/skia @@ -690,6 +687,7 @@ src_prepare() { third_party/tflite/src/third_party/eigen3 third_party/tflite/src/third_party/fft2d third_party/tflite/src/third_party/xla/third_party/tsl + third_party/tflite/src/third_party/xla/xla/tsl/util third_party/ruy third_party/six third_party/ukey2 @@ -827,6 +825,12 @@ chromium_configure() { if tc-is-clang; then myconf_gn+=" is_clang=true clang_use_chrome_plugins=false" + # Workaround for build failure with clang-18 and -march=native without + # avx512. Does not affect e.g. -march=skylake, only native (bug #931623). + use amd64 && is-flagq -march=native && + [[ $(clang-major-version) -eq 18 ]] && [[ $(clang-minor-version) -lt 6 ]] && + tc-cpp-is-true "!defined(__AVX512F__)" ${CXXFLAGS} && + append-flags -mevex512 else myconf_gn+=" is_clang=false" fi @@ -1051,7 +1055,7 @@ chromium_configure() { elif [[ $myarch = riscv ]] ; then myconf_gn+=" target_cpu=\"riscv64\"" ffmpeg_target_arch=riscv64 - else + else die "Failed to determine target arch, got '$myarch'." fi @@ -1452,4 +1456,12 @@ pkg_postinst() { elog "/etc/chromium/default." fi fi + + if systemd_is_booted && ! [[ -f "/etc/machine-id" ]]; then + ewarn "The lack of an '/etc/machine-id' file on this system booted with systemd" + ewarn "indicates that the Gentoo handbook was not followed to completion." + ewarn "" + ewarn "Chromium is known to behave unpredictably with this system configuration;" + ewarn "please complete the configuration of this system before logging any bugs." + fi } diff --git a/www-client/chromium/files/02Debian-fix-rust-linking.patch b/www-client/chromium/files/Debian-fix-rust-linking.patch index 0f6de73..0f6de73 100644 --- a/www-client/chromium/files/02Debian-fix-rust-linking.patch +++ b/www-client/chromium/files/Debian-fix-rust-linking.patch diff --git a/www-client/chromium/files/chromium-125-ninja-1-12.patch b/www-client/chromium/files/chromium-125-ninja-1-12.patch new file mode 100644 index 0000000..55d0887 --- /dev/null +++ b/www-client/chromium/files/chromium-125-ninja-1-12.patch @@ -0,0 +1,17 @@ +https://chromium-review.googlesource.com/c/chromium/src/+/5487538 +commit a976cb05b4024b7a6452d1541378d718cdfe33e6 +Author: Takuto Ikuta <tikuta@chromium.org> +Date: Thu Apr 25 07:25:32 2024 + + [devtools] fix a missing build dependency to a generated file + +--- a/chrome/browser/devtools/BUILD.gn ++++ b/chrome/browser/devtools/BUILD.gn +@@ -117,6 +117,7 @@ + "//chrome/browser/autofill:autofill", + "//components/autofill/content/browser:browser", + "//components/autofill/core/browser:browser", ++ "//components/enterprise/buildflags", + "//components/paint_preview/buildflags:buildflags", + "//components/variations/service:service", + "//components/webapps/common:common", diff --git a/www-client/chromium/files/chromium-125-oauth2-client-switches.patch b/www-client/chromium/files/chromium-125-oauth2-client-switches.patch new file mode 100644 index 0000000..6c7f56b --- /dev/null +++ b/www-client/chromium/files/chromium-125-oauth2-client-switches.patch @@ -0,0 +1,45 @@ +From 6a84205d0399a94e8b526176a7dcafd6c2051a95 Mon Sep 17 00:00:00 2001 +From: Matt Jolly <Matt.Jolly@footclan.ninja> +Date: Thu, 18 Apr 2024 21:15:20 +1000 +Subject: [PATCH] www-client/chromium: work around dead oauth2 credentials - + 125 update + +125 moved the content to a new file. + +Google doesn't let us bake in OAuth2 credentials, and for some time, +Google sign-in has been broken. Arch dealt with this in March, and so +did we to some degree, but in the last few months, our sign-in +credentials have been broken. It appears that we actually did remove API +credentials in March around Chrome 89, but they got added back, perhaps +when rotating newer versions to replace older versions. Work around this +by following Arch's lead: we remove the predefined credentials, as +before, but also we patch Chromium so that people can use their own +easily, using Arch's patch for that. + +For more info, see: + +https://archlinux.org/news/chromium-losing-sync-support-in-early-march/ +https://bodhi.fedoraproject.org/updates/FEDORA-2021-48866282e5 +https://hackaday.com/2021/01/26/whats-the-deal-with-chromium-on-linux-google-at-odds-with-package-maintainers/ + +Bug: https://bugs.gentoo.org/791871 +Signed-off-by: Matt Jolly <kangie@gentoo.org> +--- a/google_apis/google_api_keys-inc.cc ++++ b/google_apis/google_api_keys-inc.cc +@@ -182,11 +182,11 @@ class APIKeyCache { + + std::string default_client_id = CalculateKeyValue( + GOOGLE_DEFAULT_CLIENT_ID, +- STRINGIZE_NO_EXPANSION(GOOGLE_DEFAULT_CLIENT_ID), nullptr, ++ STRINGIZE_NO_EXPANSION(GOOGLE_DEFAULT_CLIENT_ID), ::switches::kOAuth2ClientID, + std::string(), environment.get(), command_line, gaia_config); + std::string default_client_secret = CalculateKeyValue( + GOOGLE_DEFAULT_CLIENT_SECRET, +- STRINGIZE_NO_EXPANSION(GOOGLE_DEFAULT_CLIENT_SECRET), nullptr, ++ STRINGIZE_NO_EXPANSION(GOOGLE_DEFAULT_CLIENT_SECRET), ::switches::kOAuth2ClientSecret, + std::string(), environment.get(), command_line, gaia_config); + + // We currently only allow overriding the baked-in values for the +-- +2.44.0 + diff --git a/www-client/chromium/files/chromium-125-system-zstd.patch b/www-client/chromium/files/chromium-125-system-zstd.patch new file mode 100644 index 0000000..6211662 --- /dev/null +++ b/www-client/chromium/files/chromium-125-system-zstd.patch @@ -0,0 +1,53 @@ +From 4ac5e29c999c7bbcb8409a2008b0061e1ae365dd Mon Sep 17 00:00:00 2001 +From: Matt Jolly <Matt.Jolly@footclan.ninja> +Date: Thu, 18 Apr 2024 21:54:54 +1000 +Subject: [PATCH] Zstd now needs compress, too + +Existing patch updated for 125, added source_set("compress") + +--- a/build/linux/unbundle/replace_gn_files.py ++++ b/build/linux/unbundle/replace_gn_files.py +@@ -80,6 +80,7 @@ REPLACEMENTS = { + 'vulkan_memory_allocator' : 'third_party/vulkan_memory_allocator/BUILD.gn', + 'woff2': 'third_party/woff2/BUILD.gn', + 'zlib': 'third_party/zlib/BUILD.gn', ++ 'zstd': 'third_party/zstd/BUILD.gn', + } + + +--- /dev/null ++++ b/build/linux/unbundle/zstd.gn +@@ -0,0 +1,30 @@ ++import("//build/config/linux/pkg_config.gni") ++import("//build/shim_headers.gni") ++ ++pkg_config("system_zstd") { ++ packages = [ "libzstd" ] ++} ++ ++shim_headers("zstd_shim") { ++ root_path = "src/lib" ++ headers = [ ++ "zdict.h", ++ "zstd.h", ++ "zstd_errors.h", ++ ] ++} ++ ++source_set("zstd") { ++ deps = [ ":zstd_shim" ] ++ public_configs = [ ":system_zstd" ] ++} ++ ++source_set("compress") { ++ deps = [ ":zstd_shim" ] ++ public_configs = [ ":system_zstd" ] ++} ++ ++source_set("decompress") { ++ deps = [ ":zstd_shim" ] ++ public_configs = [ ":system_zstd" ] ++} +-- +2.44.0 + diff --git a/www-client/chromium/files/chromium-126-oauth2-client-switches.patch b/www-client/chromium/files/chromium-126-oauth2-client-switches.patch new file mode 100644 index 0000000..b7ddf79 --- /dev/null +++ b/www-client/chromium/files/chromium-126-oauth2-client-switches.patch @@ -0,0 +1,45 @@ +From b6cda4bc2283a02a5b5209c0f4282a8365f6f33e Mon Sep 17 00:00:00 2001 +From: Matt Jolly <Matt.Jolly@footclan.ninja> +Date: Tue, 21 May 2024 10:04:24 +1000 +Subject: [PATCH] www-client/chromium: work around dead oauth2 credentials - + 126 update + +126 changed the function proto; patch rebased. + +Google doesn't let us bake in OAuth2 credentials, and for some time, +Google sign-in has been broken. Arch dealt with this in March, and so +did we to some degree, but in the last few months, our sign-in +credentials have been broken. It appears that we actually did remove API +credentials in March around Chrome 89, but they got added back, perhaps +when rotating newer versions to replace older versions. Work around this +by following Arch's lead: we remove the predefined credentials, as +before, but also we patch Chromium so that people can use their own +easily, using Arch's patch for that. + +For more info, see: + +https://archlinux.org/news/chromium-losing-sync-support-in-early-march/ +https://bodhi.fedoraproject.org/updates/FEDORA-2021-48866282e5 +https://hackaday.com/2021/01/26/whats-the-deal-with-chromium-on-linux-google-at-odds-with-package-maintainers/ + +Bug: https://bugs.gentoo.org/791871 +Signed-off-by: Matt Jolly <kangie@gentoo.org> +--- a/google_apis/google_api_keys-inc.cc ++++ b/google_apis/google_api_keys-inc.cc +@@ -193,11 +193,11 @@ class APIKeyCache { + std::string default_client_id = CalculateKeyValue( + GOOGLE_DEFAULT_CLIENT_ID, + STRINGIZE_NO_EXPANSION(GOOGLE_DEFAULT_CLIENT_ID), std::string(), +- nullptr, std::string(), environment.get(), command_line, gaia_config); ++ ::switches::kOAuth2ClientID, std::string(), environment.get(), command_line, gaia_config); + std::string default_client_secret = CalculateKeyValue( + GOOGLE_DEFAULT_CLIENT_SECRET, + STRINGIZE_NO_EXPANSION(GOOGLE_DEFAULT_CLIENT_SECRET), std::string(), +- nullptr, std::string(), environment.get(), command_line, gaia_config); ++ ::switches::kOAuth2ClientSecret, std::string(), environment.get(), command_line, gaia_config); + + // We currently only allow overriding the baked-in values for the + // default OAuth2 client ID and secret using a command-line +-- +2.45.1 + diff --git a/www-client/chromium/files/10cpuinfo.patch b/www-client/chromium/files/cpuinfo.patch index 942a658..942a658 100644 --- a/www-client/chromium/files/10cpuinfo.patch +++ b/www-client/chromium/files/cpuinfo.patch diff --git a/www-client/chromium/files/01fix-rust-target.patch b/www-client/chromium/files/fix-rust-target.patch index 51d7056..51d7056 100644 --- a/www-client/chromium/files/01fix-rust-target.patch +++ b/www-client/chromium/files/fix-rust-target.patch diff --git a/www-client/chromium/files/03riscv-dav1d.patch b/www-client/chromium/files/riscv-dav1d.patch index e20413d..e20413d 100644 --- a/www-client/chromium/files/03riscv-dav1d.patch +++ b/www-client/chromium/files/riscv-dav1d.patch diff --git a/www-client/chromium/files/06riscv-ffmpeg.patch b/www-client/chromium/files/riscv-ffmpeg.patch index 2914148..9bb4826 100644 --- a/www-client/chromium/files/06riscv-ffmpeg.patch +++ b/www-client/chromium/files/riscv-ffmpeg.patch @@ -1,24 +1,20 @@ -Index: src/third_party/ffmpeg/chromium/config/Chrome/linux/riscv64/config.h -=================================================================== --- /dev/null -+++ src/third_party/ffmpeg/chromium/config/Chrome/linux/riscv64/config.h -@@ -0,0 +1,768 @@ ++++ b/third_party/ffmpeg/chromium/config/Chrome/linux/riscv64/config.h +@@ -0,0 +1,775 @@ +/* Automatically generated by configure - do not modify! */ +#ifndef FFMPEG_CONFIG_H +#define FFMPEG_CONFIG_H -+/* #define FFMPEG_CONFIGURATION "--disable-everything --disable-all --disable-doc --disable-htmlpages --disable-manpages --disable-podpages --disable-txtpages --disable-static --enable-avcodec --enable-avformat --enable-avutil --enable-static --enable-libopus --disable-debug --disable-bzlib --disable-error-resilience --disable-iconv --disable-network --disable-schannel --disable-sdl2 --disable-symver --disable-xlib --disable-zlib --disable-securetransport --disable-faan --disable-alsa --disable-autodetect --enable-decoder='vorbis,libopus,flac' --enable-decoder='pcm_u8,pcm_s16le,pcm_s24le,pcm_s32le,pcm_f32le,mp3' --enable-decoder='pcm_s16be,pcm_s24be,pcm_mulaw,pcm_alaw' --enable-demuxer='ogg,matroska,wav,flac,mp3,mov' --enable-parser='opus,vorbis,flac,mpegaudio,vp9' --extra-cflags=-I/home/hacker/chromium/chromium/src/third_party/opus/src/include --disable-linux-perf --x86asmexe=nasm --optflags='\"-O2\"' --enable-decoder='theora,vp8' --enable-parser='vp3,vp8' --arch=riscv64 --enable-decoder='aac,h264' --enable-demuxer=aac --enable-parser='aac,h264'" -- elide long configuration string from binary */ ++/* #define FFMPEG_CONFIGURATION "--disable-everything --disable-all --disable-doc --disable-htmlpages --disable-manpages --disable-podpages --disable-txtpages --disable-static --enable-avcodec --enable-avformat --enable-avutil --enable-static --enable-libopus --disable-debug --disable-bzlib --disable-error-resilience --disable-iconv --disable-network --disable-schannel --disable-sdl2 --disable-symver --disable-xlib --disable-zlib --disable-securetransport --disable-faan --disable-alsa --disable-autodetect --enable-decoder='vorbis,libopus,flac' --enable-decoder='pcm_u8,pcm_s16le,pcm_s24le,pcm_s32le,pcm_f32le,mp3' --enable-decoder='pcm_s16be,pcm_s24be,pcm_mulaw,pcm_alaw' --enable-demuxer='ogg,matroska,wav,flac,mp3,mov' --enable-parser='opus,vorbis,flac,mpegaudio,vp9' --extra-cflags=-I/home/hacker/chromium/third_party/opus/src/include --disable-linux-perf --x86asmexe=nasm --optflags='\"-O2\"' --arch=riscv64 --enable-pic --cc=clang --cxx=clang++ --ld=clang --extra-ldflags='-fuse-ld=lld' --enable-decoder='aac,h264' --enable-demuxer=aac --enable-parser='aac,h264'" -- elide long configuration string from binary */ +#define FFMPEG_LICENSE "LGPL version 2.1 or later" +#define CONFIG_THIS_YEAR 2024 +#define FFMPEG_DATADIR "/usr/local/share/ffmpeg" +#define AVCONV_DATADIR "/usr/local/share/ffmpeg" -+#define CC_IDENT "gcc 13.2.1 (GCC) 20230801" ++#define CC_IDENT "Debian clang version 16.0.6 (27)" +#define OS_NAME linux -+#define av_restrict restrict +#define EXTERN_PREFIX "" +#define EXTERN_ASM +#define BUILDSUF "" +#define SLIBSUF ".so" -+#define HAVE_MMX2 HAVE_MMXEXT +#define SWS_MAX_FILTER_SIZE 256 +#define ARCH_AARCH64 0 +#define ARCH_ALPHA 0 @@ -63,8 +59,8 @@ Index: src/third_party/ffmpeg/chromium/config/Chrome/linux/riscv64/config.h +#define HAVE_POWER8 0 +#define HAVE_PPC4XX 0 +#define HAVE_VSX 0 -+#define HAVE_RV 1 -+#define HAVE_RVV 1 ++#define HAVE_RV 0 ++#define HAVE_RVV 0 +#define HAVE_AESNI 0 +#define HAVE_AMD3DNOW 0 +#define HAVE_AMD3DNOWEXT 0 @@ -250,6 +246,7 @@ Index: src/third_party/ffmpeg/chromium/config/Chrome/linux/riscv64/config.h +#define HAVE_OPENCV2_CORE_CORE_C_H 0 +#define HAVE_OPENGL_GL3_H 0 +#define HAVE_POLL_H 1 ++#define HAVE_PTHREAD_NP_H 0 +#define HAVE_SYS_PARAM_H 1 +#define HAVE_SYS_RESOURCE_H 1 +#define HAVE_SYS_SELECT_H 1 @@ -340,6 +337,8 @@ Index: src/third_party/ffmpeg/chromium/config/Chrome/linux/riscv64/config.h +#define HAVE_POSIX_MEMALIGN 1 +#define HAVE_PRCTL 0 /* #define HAVE_PRCTL 1 -- forced to 0 for Fuchsia */ +#define HAVE_PTHREAD_CANCEL 1 ++#define HAVE_PTHREAD_SET_NAME_NP 0 ++#define HAVE_PTHREAD_SETNAME_NP 0 +#define HAVE_SCHED_GETAFFINITY 1 +#define HAVE_SECITEMIMPORT 0 +#define HAVE_SETCONSOLETEXTATTRIBUTE 0 @@ -383,7 +382,7 @@ Index: src/third_party/ffmpeg/chromium/config/Chrome/linux/riscv64/config.h +#define HAVE_INLINE_ASM_NONLOCAL_LABELS 1 +#define HAVE_PRAGMA_DEPRECATED 1 +#define HAVE_RSYNC_CONTIMEOUT 0 -+#define HAVE_SYMVER_ASM_LABEL 0 ++#define HAVE_SYMVER_ASM_LABEL 1 +#define HAVE_SYMVER_GNU_ASM 1 +#define HAVE_VFP_ARGS 0 +#define HAVE_XFORM_ASM 0 @@ -423,18 +422,19 @@ Index: src/third_party/ffmpeg/chromium/config/Chrome/linux/riscv64/config.h +#define HAVE_STRUCT_V4L2_FRMIVALENUM_DISCRETE 0 +#define HAVE_GZIP 1 +#define HAVE_LIBDRM_GETFB2 0 -+#define HAVE_MAKEINFO 1 -+#define HAVE_MAKEINFO_HTML 1 ++#define HAVE_MAKEINFO 0 ++#define HAVE_MAKEINFO_HTML 0 +#define HAVE_OPENCL_D3D11 0 +#define HAVE_OPENCL_DRM_ARM 0 +#define HAVE_OPENCL_DRM_BEIGNET 0 +#define HAVE_OPENCL_DXVA2 0 +#define HAVE_OPENCL_VAAPI_BEIGNET 0 +#define HAVE_OPENCL_VAAPI_INTEL_MEDIA 0 ++#define HAVE_OPENCL_VIDEOTOOLBOX 0 +#define HAVE_PERL 1 +#define HAVE_POD2MAN 1 +#define HAVE_TEXI2HTML 0 -+#define HAVE_XMLLINT 1 ++#define HAVE_XMLLINT 0 +#define HAVE_ZLIB_GZIP 0 +#define HAVE_OPENVINO2 0 +#define CONFIG_DOC 0 @@ -470,6 +470,8 @@ Index: src/third_party/ffmpeg/chromium/config/Chrome/linux/riscv64/config.h +#define CONFIG_FREI0R 0 +#define CONFIG_LIBCDIO 0 +#define CONFIG_LIBDAVS2 0 ++#define CONFIG_LIBDVDNAV 0 ++#define CONFIG_LIBDVDREAD 0 +#define CONFIG_LIBRUBBERBAND 0 +#define CONFIG_LIBVIDSTAB 0 +#define CONFIG_LIBX264 0 @@ -549,6 +551,7 @@ Index: src/third_party/ffmpeg/chromium/config/Chrome/linux/riscv64/config.h +#define CONFIG_LIBTENSORFLOW 0 +#define CONFIG_LIBTESSERACT 0 +#define CONFIG_LIBTHEORA 0 ++#define CONFIG_LIBTORCH 0 +#define CONFIG_LIBTWOLAME 0 +#define CONFIG_LIBUAVS3D 0 +#define CONFIG_LIBV4L2 0 @@ -598,7 +601,6 @@ Index: src/third_party/ffmpeg/chromium/config/Chrome/linux/riscv64/config.h +#define CONFIG_OPENCL 0 +#define CONFIG_AMF 0 +#define CONFIG_AUDIOTOOLBOX 0 -+#define CONFIG_CRYSTALHD 0 +#define CONFIG_CUDA 0 +#define CONFIG_CUDA_LLVM 0 +#define CONFIG_CUVID 0 @@ -711,10 +713,12 @@ Index: src/third_party/ffmpeg/chromium/config/Chrome/linux/riscv64/config.h +#define CONFIG_H264_SEI 1 +#define CONFIG_HEVCPARSE 0 +#define CONFIG_HEVC_SEI 0 -+#define CONFIG_HPELDSP 1 ++#define CONFIG_HPELDSP 0 +#define CONFIG_HUFFMAN 0 +#define CONFIG_HUFFYUVDSP 0 +#define CONFIG_HUFFYUVENCDSP 0 ++#define CONFIG_IAMFDEC 0 ++#define CONFIG_IAMFENC 0 +#define CONFIG_IDCTDSP 0 +#define CONFIG_IIRFILTER 0 +#define CONFIG_INFLATE_WRAPPER 0 @@ -724,6 +728,7 @@ Index: src/third_party/ffmpeg/chromium/config/Chrome/linux/riscv64/config.h +#define CONFIG_JPEGTABLES 0 +#define CONFIG_LGPLV3 0 +#define CONFIG_LIBX262 0 ++#define CONFIG_LIBX264_HDR10 0 +#define CONFIG_LLAUDDSP 0 +#define CONFIG_LLVIDDSP 0 +#define CONFIG_LLVIDENCDSP 0 @@ -765,17 +770,15 @@ Index: src/third_party/ffmpeg/chromium/config/Chrome/linux/riscv64/config.h +#define CONFIG_VAAPI_ENCODE 0 +#define CONFIG_VC1DSP 0 +#define CONFIG_VIDEODSP 1 -+#define CONFIG_VP3DSP 1 ++#define CONFIG_VP3DSP 0 +#define CONFIG_VP56DSP 0 -+#define CONFIG_VP8DSP 1 ++#define CONFIG_VP8DSP 0 +#define CONFIG_WMA_FREQS 0 +#define CONFIG_WMV2DSP 0 +#endif /* FFMPEG_CONFIG_H */ -Index: src/third_party/ffmpeg/chromium/config/Chrome/linux/riscv64/config_components.h -=================================================================== --- /dev/null -+++ src/third_party/ffmpeg/chromium/config/Chrome/linux/riscv64/config_components.h -@@ -0,0 +1,2217 @@ ++++ b/third_party/ffmpeg/chromium/config/Chrome/linux/riscv64/config_components.h +@@ -0,0 +1,2210 @@ +/* Automatically generated by configure - do not modify! */ +#ifndef FFMPEG_CONFIG_COMPONENTS_H +#define FFMPEG_CONFIG_COMPONENTS_H @@ -801,7 +804,6 @@ Index: src/third_party/ffmpeg/chromium/config/Chrome/linux/riscv64/config_compon +#define CONFIG_MEDIA100_TO_MJPEGB_BSF 0 +#define CONFIG_MJPEG2JPEG_BSF 0 +#define CONFIG_MJPEGA_DUMP_HEADER_BSF 0 -+#define CONFIG_MP3_HEADER_DECOMPRESS_BSF 0 +#define CONFIG_MPEG2_METADATA_BSF 0 +#define CONFIG_MPEG4_UNPACK_BFRAMES_BSF 0 +#define CONFIG_MOV2TEXTSUB_BSF 0 @@ -813,6 +815,7 @@ Index: src/third_party/ffmpeg/chromium/config/Chrome/linux/riscv64/config_compon +#define CONFIG_PRORES_METADATA_BSF 0 +#define CONFIG_REMOVE_EXTRADATA_BSF 0 +#define CONFIG_SETTS_BSF 0 ++#define CONFIG_SHOWINFO_BSF 0 +#define CONFIG_TEXT2MOVSUB_BSF 0 +#define CONFIG_TRACE_HEADERS_BSF 0 +#define CONFIG_TRUEHD_CORE_BSF 0 @@ -841,7 +844,6 @@ Index: src/third_party/ffmpeg/chromium/config/Chrome/linux/riscv64/config_compon +#define CONFIG_AVRN_DECODER 0 +#define CONFIG_AVS_DECODER 0 +#define CONFIG_AVUI_DECODER 0 -+#define CONFIG_AYUV_DECODER 0 +#define CONFIG_BETHSOFTVID_DECODER 0 +#define CONFIG_BFI_DECODER 0 +#define CONFIG_BINK_DECODER 0 @@ -908,7 +910,6 @@ Index: src/third_party/ffmpeg/chromium/config/Chrome/linux/riscv64/config_compon +#define CONFIG_H263P_DECODER 0 +#define CONFIG_H263_V4L2M2M_DECODER 0 +#define CONFIG_H264_DECODER 1 -+#define CONFIG_H264_CRYSTALHD_DECODER 0 +#define CONFIG_H264_V4L2M2M_DECODER 0 +#define CONFIG_H264_MEDIACODEC_DECODER 0 +#define CONFIG_H264_MMAL_DECODER 0 @@ -956,13 +957,11 @@ Index: src/third_party/ffmpeg/chromium/config/Chrome/linux/riscv64/config_compon +#define CONFIG_MPEG1VIDEO_DECODER 0 +#define CONFIG_MPEG2VIDEO_DECODER 0 +#define CONFIG_MPEG4_DECODER 0 -+#define CONFIG_MPEG4_CRYSTALHD_DECODER 0 +#define CONFIG_MPEG4_V4L2M2M_DECODER 0 +#define CONFIG_MPEG4_MMAL_DECODER 0 +#define CONFIG_MPEGVIDEO_DECODER 0 +#define CONFIG_MPEG1_V4L2M2M_DECODER 0 +#define CONFIG_MPEG2_MMAL_DECODER 0 -+#define CONFIG_MPEG2_CRYSTALHD_DECODER 0 +#define CONFIG_MPEG2_V4L2M2M_DECODER 0 +#define CONFIG_MPEG2_QSV_DECODER 0 +#define CONFIG_MPEG2_MEDIACODEC_DECODER 0 @@ -971,7 +970,6 @@ Index: src/third_party/ffmpeg/chromium/config/Chrome/linux/riscv64/config_compon +#define CONFIG_MSMPEG4V1_DECODER 0 +#define CONFIG_MSMPEG4V2_DECODER 0 +#define CONFIG_MSMPEG4V3_DECODER 0 -+#define CONFIG_MSMPEG4_CRYSTALHD_DECODER 0 +#define CONFIG_MSP2_DECODER 0 +#define CONFIG_MSRLE_DECODER 0 +#define CONFIG_MSS1_DECODER 0 @@ -1048,7 +1046,7 @@ Index: src/third_party/ffmpeg/chromium/config/Chrome/linux/riscv64/config_compon +#define CONFIG_TARGA_DECODER 0 +#define CONFIG_TARGA_Y216_DECODER 0 +#define CONFIG_TDSC_DECODER 0 -+#define CONFIG_THEORA_DECODER 1 ++#define CONFIG_THEORA_DECODER 0 +#define CONFIG_THP_DECODER 0 +#define CONFIG_TIERTEXSEQVIDEO_DECODER 0 +#define CONFIG_TIFF_DECODER 0 @@ -1070,7 +1068,6 @@ Index: src/third_party/ffmpeg/chromium/config/Chrome/linux/riscv64/config_compon +#define CONFIG_VBN_DECODER 0 +#define CONFIG_VBLE_DECODER 0 +#define CONFIG_VC1_DECODER 0 -+#define CONFIG_VC1_CRYSTALHD_DECODER 0 +#define CONFIG_VC1IMAGE_DECODER 0 +#define CONFIG_VC1_MMAL_DECODER 0 +#define CONFIG_VC1_QSV_DECODER 0 @@ -1079,14 +1076,14 @@ Index: src/third_party/ffmpeg/chromium/config/Chrome/linux/riscv64/config_compon +#define CONFIG_VMDVIDEO_DECODER 0 +#define CONFIG_VMIX_DECODER 0 +#define CONFIG_VMNC_DECODER 0 -+#define CONFIG_VP3_DECODER 1 ++#define CONFIG_VP3_DECODER 0 +#define CONFIG_VP4_DECODER 0 +#define CONFIG_VP5_DECODER 0 +#define CONFIG_VP6_DECODER 0 +#define CONFIG_VP6A_DECODER 0 +#define CONFIG_VP6F_DECODER 0 +#define CONFIG_VP7_DECODER 0 -+#define CONFIG_VP8_DECODER 1 ++#define CONFIG_VP8_DECODER 0 +#define CONFIG_VP8_RKMPP_DECODER 0 +#define CONFIG_VP8_V4L2M2M_DECODER 0 +#define CONFIG_VP9_DECODER 0 @@ -1102,7 +1099,6 @@ Index: src/third_party/ffmpeg/chromium/config/Chrome/linux/riscv64/config_compon +#define CONFIG_WMV1_DECODER 0 +#define CONFIG_WMV2_DECODER 0 +#define CONFIG_WMV3_DECODER 0 -+#define CONFIG_WMV3_CRYSTALHD_DECODER 0 +#define CONFIG_WMV3IMAGE_DECODER 0 +#define CONFIG_WNV1_DECODER 0 +#define CONFIG_XAN_WC3_DECODER 0 @@ -1416,7 +1412,6 @@ Index: src/third_party/ffmpeg/chromium/config/Chrome/linux/riscv64/config_compon +#define CONFIG_ASV2_ENCODER 0 +#define CONFIG_AVRP_ENCODER 0 +#define CONFIG_AVUI_ENCODER 0 -+#define CONFIG_AYUV_ENCODER 0 +#define CONFIG_BITPACKED_ENCODER 0 +#define CONFIG_BMP_ENCODER 0 +#define CONFIG_CFHD_ENCODER 0 @@ -1426,6 +1421,7 @@ Index: src/third_party/ffmpeg/chromium/config/Chrome/linux/riscv64/config_compon +#define CONFIG_DNXHD_ENCODER 0 +#define CONFIG_DPX_ENCODER 0 +#define CONFIG_DVVIDEO_ENCODER 0 ++#define CONFIG_DXV_ENCODER 0 +#define CONFIG_EXR_ENCODER 0 +#define CONFIG_FFV1_ENCODER 0 +#define CONFIG_FFVHUFF_ENCODER 0 @@ -1786,8 +1782,8 @@ Index: src/third_party/ffmpeg/chromium/config/Chrome/linux/riscv64/config_compon +#define CONFIG_TAK_PARSER 0 +#define CONFIG_VC1_PARSER 0 +#define CONFIG_VORBIS_PARSER 1 -+#define CONFIG_VP3_PARSER 1 -+#define CONFIG_VP8_PARSER 1 ++#define CONFIG_VP3_PARSER 0 ++#define CONFIG_VP8_PARSER 0 +#define CONFIG_VP9_PARSER 1 +#define CONFIG_VVC_PARSER 0 +#define CONFIG_WEBP_PARSER 0 @@ -2399,8 +2395,6 @@ Index: src/third_party/ffmpeg/chromium/config/Chrome/linux/riscv64/config_compon +#define CONFIG_AVSYNCTEST_FILTER 0 +#define CONFIG_AMOVIE_FILTER 0 +#define CONFIG_MOVIE_FILTER 0 -+#define CONFIG_AFIFO_FILTER 0 -+#define CONFIG_FIFO_FILTER 0 +#define CONFIG_AA_DEMUXER 0 +#define CONFIG_AAC_DEMUXER 1 +#define CONFIG_AAX_DEMUXER 0 @@ -2484,6 +2478,7 @@ Index: src/third_party/ffmpeg/chromium/config/Chrome/linux/riscv64/config_compon +#define CONFIG_DV_DEMUXER 0 +#define CONFIG_DVBSUB_DEMUXER 0 +#define CONFIG_DVBTXT_DEMUXER 0 ++#define CONFIG_DVDVIDEO_DEMUXER 0 +#define CONFIG_DXA_DEMUXER 0 +#define CONFIG_EA_DEMUXER 0 +#define CONFIG_EA_CDATA_DEMUXER 0 @@ -2765,6 +2760,7 @@ Index: src/third_party/ffmpeg/chromium/config/Chrome/linux/riscv64/config_compon +#define CONFIG_AC4_MUXER 0 +#define CONFIG_ADTS_MUXER 0 +#define CONFIG_ADX_MUXER 0 ++#define CONFIG_AEA_MUXER 0 +#define CONFIG_AIFF_MUXER 0 +#define CONFIG_ALP_MUXER 0 +#define CONFIG_AMR_MUXER 0 @@ -2804,7 +2800,6 @@ Index: src/third_party/ffmpeg/chromium/config/Chrome/linux/riscv64/config_compon +#define CONFIG_F4V_MUXER 0 +#define CONFIG_FFMETADATA_MUXER 0 +#define CONFIG_FIFO_MUXER 0 -+#define CONFIG_FIFO_TEST_MUXER 0 +#define CONFIG_FILMSTRIP_MUXER 0 +#define CONFIG_FITS_MUXER 0 +#define CONFIG_FLAC_MUXER 0 @@ -2894,6 +2889,7 @@ Index: src/third_party/ffmpeg/chromium/config/Chrome/linux/riscv64/config_compon +#define CONFIG_PCM_U8_MUXER 0 +#define CONFIG_PSP_MUXER 0 +#define CONFIG_RAWVIDEO_MUXER 0 ++#define CONFIG_RCWT_MUXER 0 +#define CONFIG_RM_MUXER 0 +#define CONFIG_ROQ_MUXER 0 +#define CONFIG_RSO_MUXER 0 @@ -2993,23 +2989,16 @@ Index: src/third_party/ffmpeg/chromium/config/Chrome/linux/riscv64/config_compon +#define CONFIG_IPFS_GATEWAY_PROTOCOL 0 +#define CONFIG_IPNS_GATEWAY_PROTOCOL 0 +#endif /* FFMPEG_CONFIG_COMPONENTS_H */ -Index: src/third_party/ffmpeg/chromium/config/Chrome/linux/riscv64/libavcodec/bsf_list.c -=================================================================== --- /dev/null -+++ src/third_party/ffmpeg/chromium/config/Chrome/linux/riscv64/libavcodec/bsf_list.c ++++ b/third_party/ffmpeg/chromium/config/Chrome/linux/riscv64/libavcodec/bsf_list.c @@ -0,0 +1,2 @@ +static const FFBitStreamFilter * const bitstream_filters[] = { + NULL }; -Index: src/third_party/ffmpeg/chromium/config/Chrome/linux/riscv64/libavcodec/codec_list.c -=================================================================== --- /dev/null -+++ src/third_party/ffmpeg/chromium/config/Chrome/linux/riscv64/libavcodec/codec_list.c -@@ -0,0 +1,20 @@ ++++ b/third_party/ffmpeg/chromium/config/Chrome/linux/riscv64/libavcodec/codec_list.c +@@ -0,0 +1,17 @@ +static const FFCodec * const codec_list[] = { + &ff_h264_decoder, -+ &ff_theora_decoder, -+ &ff_vp3_decoder, -+ &ff_vp8_decoder, + &ff_aac_decoder, + &ff_flac_decoder, + &ff_mp3_decoder, @@ -3025,11 +3014,9 @@ Index: src/third_party/ffmpeg/chromium/config/Chrome/linux/riscv64/libavcodec/co + &ff_pcm_u8_decoder, + &ff_libopus_decoder, + NULL }; -Index: src/third_party/ffmpeg/chromium/config/Chrome/linux/riscv64/libavcodec/parser_list.c -=================================================================== --- /dev/null -+++ src/third_party/ffmpeg/chromium/config/Chrome/linux/riscv64/libavcodec/parser_list.c -@@ -0,0 +1,11 @@ ++++ b/third_party/ffmpeg/chromium/config/Chrome/linux/riscv64/libavcodec/parser_list.c +@@ -0,0 +1,9 @@ +static const AVCodecParser * const parser_list[] = { + &ff_aac_parser, + &ff_flac_parser, @@ -3037,16 +3024,12 @@ Index: src/third_party/ffmpeg/chromium/config/Chrome/linux/riscv64/libavcodec/pa + &ff_mpegaudio_parser, + &ff_opus_parser, + &ff_vorbis_parser, -+ &ff_vp3_parser, -+ &ff_vp8_parser, + &ff_vp9_parser, + NULL }; -Index: src/third_party/ffmpeg/chromium/config/Chrome/linux/riscv64/libavformat/demuxer_list.c -=================================================================== --- /dev/null -+++ src/third_party/ffmpeg/chromium/config/Chrome/linux/riscv64/libavformat/demuxer_list.c ++++ b/third_party/ffmpeg/chromium/config/Chrome/linux/riscv64/libavformat/demuxer_list.c @@ -0,0 +1,9 @@ -+static const AVInputFormat * const demuxer_list[] = { ++static const FFInputFormat * const demuxer_list[] = { + &ff_aac_demuxer, + &ff_flac_demuxer, + &ff_matroska_demuxer, @@ -3055,24 +3038,18 @@ Index: src/third_party/ffmpeg/chromium/config/Chrome/linux/riscv64/libavformat/d + &ff_ogg_demuxer, + &ff_wav_demuxer, + NULL }; -Index: src/third_party/ffmpeg/chromium/config/Chrome/linux/riscv64/libavformat/muxer_list.c -=================================================================== --- /dev/null -+++ src/third_party/ffmpeg/chromium/config/Chrome/linux/riscv64/libavformat/muxer_list.c ++++ b/third_party/ffmpeg/chromium/config/Chrome/linux/riscv64/libavformat/muxer_list.c @@ -0,0 +1,2 @@ +static const FFOutputFormat * const muxer_list[] = { + NULL }; -Index: src/third_party/ffmpeg/chromium/config/Chrome/linux/riscv64/libavformat/protocol_list.c -=================================================================== --- /dev/null -+++ src/third_party/ffmpeg/chromium/config/Chrome/linux/riscv64/libavformat/protocol_list.c ++++ b/third_party/ffmpeg/chromium/config/Chrome/linux/riscv64/libavformat/protocol_list.c @@ -0,0 +1,2 @@ +static const URLProtocol * const url_protocols[] = { + NULL }; -Index: src/third_party/ffmpeg/chromium/config/Chrome/linux/riscv64/libavutil/avconfig.h -=================================================================== --- /dev/null -+++ src/third_party/ffmpeg/chromium/config/Chrome/linux/riscv64/libavutil/avconfig.h ++++ b/third_party/ffmpeg/chromium/config/Chrome/linux/riscv64/libavutil/avconfig.h @@ -0,0 +1,6 @@ +/* Generated by ffmpeg configure */ +#ifndef AVUTIL_AVCONFIG_H @@ -3080,37 +3057,31 @@ Index: src/third_party/ffmpeg/chromium/config/Chrome/linux/riscv64/libavutil/avc +#define AV_HAVE_BIGENDIAN 0 +#define AV_HAVE_FAST_UNALIGNED 0 +#endif /* AVUTIL_AVCONFIG_H */ -Index: src/third_party/ffmpeg/chromium/config/Chrome/linux/riscv64/libavutil/ffversion.h -=================================================================== --- /dev/null -+++ src/third_party/ffmpeg/chromium/config/Chrome/linux/riscv64/libavutil/ffversion.h ++++ b/third_party/ffmpeg/chromium/config/Chrome/linux/riscv64/libavutil/ffversion.h @@ -0,0 +1,5 @@ +/* Automatically generated by version.sh, do not manually edit! */ +#ifndef AVUTIL_FFVERSION_H +#define AVUTIL_FFVERSION_H +#define FFMPEG_VERSION "5.1.git" +#endif /* AVUTIL_FFVERSION_H */ -Index: src/third_party/ffmpeg/chromium/config/ChromeOS/linux/riscv64/config.h -=================================================================== --- /dev/null -+++ src/third_party/ffmpeg/chromium/config/ChromeOS/linux/riscv64/config.h -@@ -0,0 +1,768 @@ ++++ b/third_party/ffmpeg/chromium/config/ChromeOS/linux/riscv64/config.h +@@ -0,0 +1,775 @@ +/* Automatically generated by configure - do not modify! */ +#ifndef FFMPEG_CONFIG_H +#define FFMPEG_CONFIG_H -+/* #define FFMPEG_CONFIGURATION "--disable-everything --disable-all --disable-doc --disable-htmlpages --disable-manpages --disable-podpages --disable-txtpages --disable-static --enable-avcodec --enable-avformat --enable-avutil --enable-static --enable-libopus --disable-debug --disable-bzlib --disable-iconv --disable-network --disable-schannel --disable-sdl2 --disable-symver --disable-xlib --disable-zlib --disable-securetransport --disable-faan --disable-alsa --disable-autodetect --enable-decoder='vorbis,libopus,flac' --enable-decoder='pcm_u8,pcm_s16le,pcm_s24le,pcm_s32le,pcm_f32le,mp3' --enable-decoder='pcm_s16be,pcm_s24be,pcm_mulaw,pcm_alaw' --enable-demuxer='ogg,matroska,wav,flac,mp3,mov' --enable-parser='opus,vorbis,flac,mpegaudio,vp9' --extra-cflags=-I/home/hacker/chromium/chromium/src/third_party/opus/src/include --disable-linux-perf --x86asmexe=nasm --optflags='\"-O2\"' --enable-decoder='theora,vp8' --enable-parser='vp3,vp8' --arch=riscv64 --enable-decoder='aac,h264' --enable-demuxer=aac --enable-parser='aac,h264' --enable-decoder=mpeg4 --enable-parser='h263,mpeg4video' --enable-demuxer=avi" -- elide long configuration string from binary */ ++/* #define FFMPEG_CONFIGURATION "--disable-everything --disable-all --disable-doc --disable-htmlpages --disable-manpages --disable-podpages --disable-txtpages --disable-static --enable-avcodec --enable-avformat --enable-avutil --enable-static --enable-libopus --disable-debug --disable-bzlib --disable-iconv --disable-network --disable-schannel --disable-sdl2 --disable-symver --disable-xlib --disable-zlib --disable-securetransport --disable-faan --disable-alsa --disable-autodetect --enable-decoder='vorbis,libopus,flac' --enable-decoder='pcm_u8,pcm_s16le,pcm_s24le,pcm_s32le,pcm_f32le,mp3' --enable-decoder='pcm_s16be,pcm_s24be,pcm_mulaw,pcm_alaw' --enable-demuxer='ogg,matroska,wav,flac,mp3,mov' --enable-parser='opus,vorbis,flac,mpegaudio,vp9' --extra-cflags=-I/home/hacker/chromium/third_party/opus/src/include --disable-linux-perf --x86asmexe=nasm --optflags='\"-O2\"' --arch=riscv64 --enable-pic --cc=clang --cxx=clang++ --ld=clang --extra-ldflags='-fuse-ld=lld' --enable-decoder='aac,h264' --enable-demuxer=aac --enable-parser='aac,h264' --enable-decoder=mpeg4 --enable-parser='h263,mpeg4video' --enable-demuxer=avi" -- elide long configuration string from binary */ +#define FFMPEG_LICENSE "LGPL version 2.1 or later" +#define CONFIG_THIS_YEAR 2024 +#define FFMPEG_DATADIR "/usr/local/share/ffmpeg" +#define AVCONV_DATADIR "/usr/local/share/ffmpeg" -+#define CC_IDENT "gcc 13.2.1 (GCC) 20230801" ++#define CC_IDENT "Debian clang version 16.0.6 (27)" +#define OS_NAME linux -+#define av_restrict restrict +#define EXTERN_PREFIX "" +#define EXTERN_ASM +#define BUILDSUF "" +#define SLIBSUF ".so" -+#define HAVE_MMX2 HAVE_MMXEXT +#define SWS_MAX_FILTER_SIZE 256 +#define ARCH_AARCH64 0 +#define ARCH_ALPHA 0 @@ -3155,8 +3126,8 @@ Index: src/third_party/ffmpeg/chromium/config/ChromeOS/linux/riscv64/config.h +#define HAVE_POWER8 0 +#define HAVE_PPC4XX 0 +#define HAVE_VSX 0 -+#define HAVE_RV 1 -+#define HAVE_RVV 1 ++#define HAVE_RV 0 ++#define HAVE_RVV 0 +#define HAVE_AESNI 0 +#define HAVE_AMD3DNOW 0 +#define HAVE_AMD3DNOWEXT 0 @@ -3342,6 +3313,7 @@ Index: src/third_party/ffmpeg/chromium/config/ChromeOS/linux/riscv64/config.h +#define HAVE_OPENCV2_CORE_CORE_C_H 0 +#define HAVE_OPENGL_GL3_H 0 +#define HAVE_POLL_H 1 ++#define HAVE_PTHREAD_NP_H 0 +#define HAVE_SYS_PARAM_H 1 +#define HAVE_SYS_RESOURCE_H 1 +#define HAVE_SYS_SELECT_H 1 @@ -3432,6 +3404,8 @@ Index: src/third_party/ffmpeg/chromium/config/ChromeOS/linux/riscv64/config.h +#define HAVE_POSIX_MEMALIGN 1 +#define HAVE_PRCTL 0 /* #define HAVE_PRCTL 1 -- forced to 0 for Fuchsia */ +#define HAVE_PTHREAD_CANCEL 1 ++#define HAVE_PTHREAD_SET_NAME_NP 0 ++#define HAVE_PTHREAD_SETNAME_NP 0 +#define HAVE_SCHED_GETAFFINITY 1 +#define HAVE_SECITEMIMPORT 0 +#define HAVE_SETCONSOLETEXTATTRIBUTE 0 @@ -3475,7 +3449,7 @@ Index: src/third_party/ffmpeg/chromium/config/ChromeOS/linux/riscv64/config.h +#define HAVE_INLINE_ASM_NONLOCAL_LABELS 1 +#define HAVE_PRAGMA_DEPRECATED 1 +#define HAVE_RSYNC_CONTIMEOUT 0 -+#define HAVE_SYMVER_ASM_LABEL 0 ++#define HAVE_SYMVER_ASM_LABEL 1 +#define HAVE_SYMVER_GNU_ASM 1 +#define HAVE_VFP_ARGS 0 +#define HAVE_XFORM_ASM 0 @@ -3515,18 +3489,19 @@ Index: src/third_party/ffmpeg/chromium/config/ChromeOS/linux/riscv64/config.h +#define HAVE_STRUCT_V4L2_FRMIVALENUM_DISCRETE 0 +#define HAVE_GZIP 1 +#define HAVE_LIBDRM_GETFB2 0 -+#define HAVE_MAKEINFO 1 -+#define HAVE_MAKEINFO_HTML 1 ++#define HAVE_MAKEINFO 0 ++#define HAVE_MAKEINFO_HTML 0 +#define HAVE_OPENCL_D3D11 0 +#define HAVE_OPENCL_DRM_ARM 0 +#define HAVE_OPENCL_DRM_BEIGNET 0 +#define HAVE_OPENCL_DXVA2 0 +#define HAVE_OPENCL_VAAPI_BEIGNET 0 +#define HAVE_OPENCL_VAAPI_INTEL_MEDIA 0 ++#define HAVE_OPENCL_VIDEOTOOLBOX 0 +#define HAVE_PERL 1 +#define HAVE_POD2MAN 1 +#define HAVE_TEXI2HTML 0 -+#define HAVE_XMLLINT 1 ++#define HAVE_XMLLINT 0 +#define HAVE_ZLIB_GZIP 0 +#define HAVE_OPENVINO2 0 +#define CONFIG_DOC 0 @@ -3562,6 +3537,8 @@ Index: src/third_party/ffmpeg/chromium/config/ChromeOS/linux/riscv64/config.h +#define CONFIG_FREI0R 0 +#define CONFIG_LIBCDIO 0 +#define CONFIG_LIBDAVS2 0 ++#define CONFIG_LIBDVDNAV 0 ++#define CONFIG_LIBDVDREAD 0 +#define CONFIG_LIBRUBBERBAND 0 +#define CONFIG_LIBVIDSTAB 0 +#define CONFIG_LIBX264 0 @@ -3641,6 +3618,7 @@ Index: src/third_party/ffmpeg/chromium/config/ChromeOS/linux/riscv64/config.h +#define CONFIG_LIBTENSORFLOW 0 +#define CONFIG_LIBTESSERACT 0 +#define CONFIG_LIBTHEORA 0 ++#define CONFIG_LIBTORCH 0 +#define CONFIG_LIBTWOLAME 0 +#define CONFIG_LIBUAVS3D 0 +#define CONFIG_LIBV4L2 0 @@ -3690,7 +3668,6 @@ Index: src/third_party/ffmpeg/chromium/config/ChromeOS/linux/riscv64/config.h +#define CONFIG_OPENCL 0 +#define CONFIG_AMF 0 +#define CONFIG_AUDIOTOOLBOX 0 -+#define CONFIG_CRYSTALHD 0 +#define CONFIG_CUDA 0 +#define CONFIG_CUDA_LLVM 0 +#define CONFIG_CUVID 0 @@ -3807,6 +3784,8 @@ Index: src/third_party/ffmpeg/chromium/config/ChromeOS/linux/riscv64/config.h +#define CONFIG_HUFFMAN 0 +#define CONFIG_HUFFYUVDSP 0 +#define CONFIG_HUFFYUVENCDSP 0 ++#define CONFIG_IAMFDEC 0 ++#define CONFIG_IAMFENC 0 +#define CONFIG_IDCTDSP 1 +#define CONFIG_IIRFILTER 0 +#define CONFIG_INFLATE_WRAPPER 0 @@ -3816,6 +3795,7 @@ Index: src/third_party/ffmpeg/chromium/config/ChromeOS/linux/riscv64/config.h +#define CONFIG_JPEGTABLES 0 +#define CONFIG_LGPLV3 0 +#define CONFIG_LIBX262 0 ++#define CONFIG_LIBX264_HDR10 0 +#define CONFIG_LLAUDDSP 0 +#define CONFIG_LLVIDDSP 0 +#define CONFIG_LLVIDENCDSP 0 @@ -3857,17 +3837,15 @@ Index: src/third_party/ffmpeg/chromium/config/ChromeOS/linux/riscv64/config.h +#define CONFIG_VAAPI_ENCODE 0 +#define CONFIG_VC1DSP 0 +#define CONFIG_VIDEODSP 1 -+#define CONFIG_VP3DSP 1 ++#define CONFIG_VP3DSP 0 +#define CONFIG_VP56DSP 0 -+#define CONFIG_VP8DSP 1 ++#define CONFIG_VP8DSP 0 +#define CONFIG_WMA_FREQS 0 +#define CONFIG_WMV2DSP 0 +#endif /* FFMPEG_CONFIG_H */ -Index: src/third_party/ffmpeg/chromium/config/ChromeOS/linux/riscv64/config_components.h -=================================================================== --- /dev/null -+++ src/third_party/ffmpeg/chromium/config/ChromeOS/linux/riscv64/config_components.h -@@ -0,0 +1,2217 @@ ++++ b/third_party/ffmpeg/chromium/config/ChromeOS/linux/riscv64/config_components.h +@@ -0,0 +1,2210 @@ +/* Automatically generated by configure - do not modify! */ +#ifndef FFMPEG_CONFIG_COMPONENTS_H +#define FFMPEG_CONFIG_COMPONENTS_H @@ -3893,7 +3871,6 @@ Index: src/third_party/ffmpeg/chromium/config/ChromeOS/linux/riscv64/config_comp +#define CONFIG_MEDIA100_TO_MJPEGB_BSF 0 +#define CONFIG_MJPEG2JPEG_BSF 0 +#define CONFIG_MJPEGA_DUMP_HEADER_BSF 0 -+#define CONFIG_MP3_HEADER_DECOMPRESS_BSF 0 +#define CONFIG_MPEG2_METADATA_BSF 0 +#define CONFIG_MPEG4_UNPACK_BFRAMES_BSF 0 +#define CONFIG_MOV2TEXTSUB_BSF 0 @@ -3905,6 +3882,7 @@ Index: src/third_party/ffmpeg/chromium/config/ChromeOS/linux/riscv64/config_comp +#define CONFIG_PRORES_METADATA_BSF 0 +#define CONFIG_REMOVE_EXTRADATA_BSF 0 +#define CONFIG_SETTS_BSF 0 ++#define CONFIG_SHOWINFO_BSF 0 +#define CONFIG_TEXT2MOVSUB_BSF 0 +#define CONFIG_TRACE_HEADERS_BSF 0 +#define CONFIG_TRUEHD_CORE_BSF 0 @@ -3933,7 +3911,6 @@ Index: src/third_party/ffmpeg/chromium/config/ChromeOS/linux/riscv64/config_comp +#define CONFIG_AVRN_DECODER 0 +#define CONFIG_AVS_DECODER 0 +#define CONFIG_AVUI_DECODER 0 -+#define CONFIG_AYUV_DECODER 0 +#define CONFIG_BETHSOFTVID_DECODER 0 +#define CONFIG_BFI_DECODER 0 +#define CONFIG_BINK_DECODER 0 @@ -4000,7 +3977,6 @@ Index: src/third_party/ffmpeg/chromium/config/ChromeOS/linux/riscv64/config_comp +#define CONFIG_H263P_DECODER 0 +#define CONFIG_H263_V4L2M2M_DECODER 0 +#define CONFIG_H264_DECODER 1 -+#define CONFIG_H264_CRYSTALHD_DECODER 0 +#define CONFIG_H264_V4L2M2M_DECODER 0 +#define CONFIG_H264_MEDIACODEC_DECODER 0 +#define CONFIG_H264_MMAL_DECODER 0 @@ -4048,13 +4024,11 @@ Index: src/third_party/ffmpeg/chromium/config/ChromeOS/linux/riscv64/config_comp +#define CONFIG_MPEG1VIDEO_DECODER 0 +#define CONFIG_MPEG2VIDEO_DECODER 0 +#define CONFIG_MPEG4_DECODER 1 -+#define CONFIG_MPEG4_CRYSTALHD_DECODER 0 +#define CONFIG_MPEG4_V4L2M2M_DECODER 0 +#define CONFIG_MPEG4_MMAL_DECODER 0 +#define CONFIG_MPEGVIDEO_DECODER 0 +#define CONFIG_MPEG1_V4L2M2M_DECODER 0 +#define CONFIG_MPEG2_MMAL_DECODER 0 -+#define CONFIG_MPEG2_CRYSTALHD_DECODER 0 +#define CONFIG_MPEG2_V4L2M2M_DECODER 0 +#define CONFIG_MPEG2_QSV_DECODER 0 +#define CONFIG_MPEG2_MEDIACODEC_DECODER 0 @@ -4063,7 +4037,6 @@ Index: src/third_party/ffmpeg/chromium/config/ChromeOS/linux/riscv64/config_comp +#define CONFIG_MSMPEG4V1_DECODER 0 +#define CONFIG_MSMPEG4V2_DECODER 0 +#define CONFIG_MSMPEG4V3_DECODER 0 -+#define CONFIG_MSMPEG4_CRYSTALHD_DECODER 0 +#define CONFIG_MSP2_DECODER 0 +#define CONFIG_MSRLE_DECODER 0 +#define CONFIG_MSS1_DECODER 0 @@ -4140,7 +4113,7 @@ Index: src/third_party/ffmpeg/chromium/config/ChromeOS/linux/riscv64/config_comp +#define CONFIG_TARGA_DECODER 0 +#define CONFIG_TARGA_Y216_DECODER 0 +#define CONFIG_TDSC_DECODER 0 -+#define CONFIG_THEORA_DECODER 1 ++#define CONFIG_THEORA_DECODER 0 +#define CONFIG_THP_DECODER 0 +#define CONFIG_TIERTEXSEQVIDEO_DECODER 0 +#define CONFIG_TIFF_DECODER 0 @@ -4162,7 +4135,6 @@ Index: src/third_party/ffmpeg/chromium/config/ChromeOS/linux/riscv64/config_comp +#define CONFIG_VBN_DECODER 0 +#define CONFIG_VBLE_DECODER 0 +#define CONFIG_VC1_DECODER 0 -+#define CONFIG_VC1_CRYSTALHD_DECODER 0 +#define CONFIG_VC1IMAGE_DECODER 0 +#define CONFIG_VC1_MMAL_DECODER 0 +#define CONFIG_VC1_QSV_DECODER 0 @@ -4171,14 +4143,14 @@ Index: src/third_party/ffmpeg/chromium/config/ChromeOS/linux/riscv64/config_comp +#define CONFIG_VMDVIDEO_DECODER 0 +#define CONFIG_VMIX_DECODER 0 +#define CONFIG_VMNC_DECODER 0 -+#define CONFIG_VP3_DECODER 1 ++#define CONFIG_VP3_DECODER 0 +#define CONFIG_VP4_DECODER 0 +#define CONFIG_VP5_DECODER 0 +#define CONFIG_VP6_DECODER 0 +#define CONFIG_VP6A_DECODER 0 +#define CONFIG_VP6F_DECODER 0 +#define CONFIG_VP7_DECODER 0 -+#define CONFIG_VP8_DECODER 1 ++#define CONFIG_VP8_DECODER 0 +#define CONFIG_VP8_RKMPP_DECODER 0 +#define CONFIG_VP8_V4L2M2M_DECODER 0 +#define CONFIG_VP9_DECODER 0 @@ -4194,7 +4166,6 @@ Index: src/third_party/ffmpeg/chromium/config/ChromeOS/linux/riscv64/config_comp +#define CONFIG_WMV1_DECODER 0 +#define CONFIG_WMV2_DECODER 0 +#define CONFIG_WMV3_DECODER 0 -+#define CONFIG_WMV3_CRYSTALHD_DECODER 0 +#define CONFIG_WMV3IMAGE_DECODER 0 +#define CONFIG_WNV1_DECODER 0 +#define CONFIG_XAN_WC3_DECODER 0 @@ -4508,7 +4479,6 @@ Index: src/third_party/ffmpeg/chromium/config/ChromeOS/linux/riscv64/config_comp +#define CONFIG_ASV2_ENCODER 0 +#define CONFIG_AVRP_ENCODER 0 +#define CONFIG_AVUI_ENCODER 0 -+#define CONFIG_AYUV_ENCODER 0 +#define CONFIG_BITPACKED_ENCODER 0 +#define CONFIG_BMP_ENCODER 0 +#define CONFIG_CFHD_ENCODER 0 @@ -4518,6 +4488,7 @@ Index: src/third_party/ffmpeg/chromium/config/ChromeOS/linux/riscv64/config_comp +#define CONFIG_DNXHD_ENCODER 0 +#define CONFIG_DPX_ENCODER 0 +#define CONFIG_DVVIDEO_ENCODER 0 ++#define CONFIG_DXV_ENCODER 0 +#define CONFIG_EXR_ENCODER 0 +#define CONFIG_FFV1_ENCODER 0 +#define CONFIG_FFVHUFF_ENCODER 0 @@ -4878,8 +4849,8 @@ Index: src/third_party/ffmpeg/chromium/config/ChromeOS/linux/riscv64/config_comp +#define CONFIG_TAK_PARSER 0 +#define CONFIG_VC1_PARSER 0 +#define CONFIG_VORBIS_PARSER 1 -+#define CONFIG_VP3_PARSER 1 -+#define CONFIG_VP8_PARSER 1 ++#define CONFIG_VP3_PARSER 0 ++#define CONFIG_VP8_PARSER 0 +#define CONFIG_VP9_PARSER 1 +#define CONFIG_VVC_PARSER 0 +#define CONFIG_WEBP_PARSER 0 @@ -5491,8 +5462,6 @@ Index: src/third_party/ffmpeg/chromium/config/ChromeOS/linux/riscv64/config_comp +#define CONFIG_AVSYNCTEST_FILTER 0 +#define CONFIG_AMOVIE_FILTER 0 +#define CONFIG_MOVIE_FILTER 0 -+#define CONFIG_AFIFO_FILTER 0 -+#define CONFIG_FIFO_FILTER 0 +#define CONFIG_AA_DEMUXER 0 +#define CONFIG_AAC_DEMUXER 1 +#define CONFIG_AAX_DEMUXER 0 @@ -5576,6 +5545,7 @@ Index: src/third_party/ffmpeg/chromium/config/ChromeOS/linux/riscv64/config_comp +#define CONFIG_DV_DEMUXER 0 +#define CONFIG_DVBSUB_DEMUXER 0 +#define CONFIG_DVBTXT_DEMUXER 0 ++#define CONFIG_DVDVIDEO_DEMUXER 0 +#define CONFIG_DXA_DEMUXER 0 +#define CONFIG_EA_DEMUXER 0 +#define CONFIG_EA_CDATA_DEMUXER 0 @@ -5857,6 +5827,7 @@ Index: src/third_party/ffmpeg/chromium/config/ChromeOS/linux/riscv64/config_comp +#define CONFIG_AC4_MUXER 0 +#define CONFIG_ADTS_MUXER 0 +#define CONFIG_ADX_MUXER 0 ++#define CONFIG_AEA_MUXER 0 +#define CONFIG_AIFF_MUXER 0 +#define CONFIG_ALP_MUXER 0 +#define CONFIG_AMR_MUXER 0 @@ -5896,7 +5867,6 @@ Index: src/third_party/ffmpeg/chromium/config/ChromeOS/linux/riscv64/config_comp +#define CONFIG_F4V_MUXER 0 +#define CONFIG_FFMETADATA_MUXER 0 +#define CONFIG_FIFO_MUXER 0 -+#define CONFIG_FIFO_TEST_MUXER 0 +#define CONFIG_FILMSTRIP_MUXER 0 +#define CONFIG_FITS_MUXER 0 +#define CONFIG_FLAC_MUXER 0 @@ -5986,6 +5956,7 @@ Index: src/third_party/ffmpeg/chromium/config/ChromeOS/linux/riscv64/config_comp +#define CONFIG_PCM_U8_MUXER 0 +#define CONFIG_PSP_MUXER 0 +#define CONFIG_RAWVIDEO_MUXER 0 ++#define CONFIG_RCWT_MUXER 0 +#define CONFIG_RM_MUXER 0 +#define CONFIG_ROQ_MUXER 0 +#define CONFIG_RSO_MUXER 0 @@ -6085,25 +6056,18 @@ Index: src/third_party/ffmpeg/chromium/config/ChromeOS/linux/riscv64/config_comp +#define CONFIG_IPFS_GATEWAY_PROTOCOL 0 +#define CONFIG_IPNS_GATEWAY_PROTOCOL 0 +#endif /* FFMPEG_CONFIG_COMPONENTS_H */ -Index: src/third_party/ffmpeg/chromium/config/ChromeOS/linux/riscv64/libavcodec/bsf_list.c -=================================================================== --- /dev/null -+++ src/third_party/ffmpeg/chromium/config/ChromeOS/linux/riscv64/libavcodec/bsf_list.c ++++ b/third_party/ffmpeg/chromium/config/ChromeOS/linux/riscv64/libavcodec/bsf_list.c @@ -0,0 +1,2 @@ +static const FFBitStreamFilter * const bitstream_filters[] = { + NULL }; -Index: src/third_party/ffmpeg/chromium/config/ChromeOS/linux/riscv64/libavcodec/codec_list.c -=================================================================== --- /dev/null -+++ src/third_party/ffmpeg/chromium/config/ChromeOS/linux/riscv64/libavcodec/codec_list.c -@@ -0,0 +1,22 @@ ++++ b/third_party/ffmpeg/chromium/config/ChromeOS/linux/riscv64/libavcodec/codec_list.c +@@ -0,0 +1,19 @@ +static const FFCodec * const codec_list[] = { + &ff_h263_decoder, + &ff_h264_decoder, + &ff_mpeg4_decoder, -+ &ff_theora_decoder, -+ &ff_vp3_decoder, -+ &ff_vp8_decoder, + &ff_aac_decoder, + &ff_flac_decoder, + &ff_mp3_decoder, @@ -6119,11 +6083,9 @@ Index: src/third_party/ffmpeg/chromium/config/ChromeOS/linux/riscv64/libavcodec/ + &ff_pcm_u8_decoder, + &ff_libopus_decoder, + NULL }; -Index: src/third_party/ffmpeg/chromium/config/ChromeOS/linux/riscv64/libavcodec/parser_list.c -=================================================================== --- /dev/null -+++ src/third_party/ffmpeg/chromium/config/ChromeOS/linux/riscv64/libavcodec/parser_list.c -@@ -0,0 +1,13 @@ ++++ b/third_party/ffmpeg/chromium/config/ChromeOS/linux/riscv64/libavcodec/parser_list.c +@@ -0,0 +1,11 @@ +static const AVCodecParser * const parser_list[] = { + &ff_aac_parser, + &ff_flac_parser, @@ -6133,16 +6095,12 @@ Index: src/third_party/ffmpeg/chromium/config/ChromeOS/linux/riscv64/libavcodec/ + &ff_mpegaudio_parser, + &ff_opus_parser, + &ff_vorbis_parser, -+ &ff_vp3_parser, -+ &ff_vp8_parser, + &ff_vp9_parser, + NULL }; -Index: src/third_party/ffmpeg/chromium/config/ChromeOS/linux/riscv64/libavformat/demuxer_list.c -=================================================================== --- /dev/null -+++ src/third_party/ffmpeg/chromium/config/ChromeOS/linux/riscv64/libavformat/demuxer_list.c ++++ b/third_party/ffmpeg/chromium/config/ChromeOS/linux/riscv64/libavformat/demuxer_list.c @@ -0,0 +1,10 @@ -+static const AVInputFormat * const demuxer_list[] = { ++static const FFInputFormat * const demuxer_list[] = { + &ff_aac_demuxer, + &ff_avi_demuxer, + &ff_flac_demuxer, @@ -6152,24 +6110,18 @@ Index: src/third_party/ffmpeg/chromium/config/ChromeOS/linux/riscv64/libavformat + &ff_ogg_demuxer, + &ff_wav_demuxer, + NULL }; -Index: src/third_party/ffmpeg/chromium/config/ChromeOS/linux/riscv64/libavformat/muxer_list.c -=================================================================== --- /dev/null -+++ src/third_party/ffmpeg/chromium/config/ChromeOS/linux/riscv64/libavformat/muxer_list.c ++++ b/third_party/ffmpeg/chromium/config/ChromeOS/linux/riscv64/libavformat/muxer_list.c @@ -0,0 +1,2 @@ +static const FFOutputFormat * const muxer_list[] = { + NULL }; -Index: src/third_party/ffmpeg/chromium/config/ChromeOS/linux/riscv64/libavformat/protocol_list.c -=================================================================== --- /dev/null -+++ src/third_party/ffmpeg/chromium/config/ChromeOS/linux/riscv64/libavformat/protocol_list.c ++++ b/third_party/ffmpeg/chromium/config/ChromeOS/linux/riscv64/libavformat/protocol_list.c @@ -0,0 +1,2 @@ +static const URLProtocol * const url_protocols[] = { + NULL }; -Index: src/third_party/ffmpeg/chromium/config/ChromeOS/linux/riscv64/libavutil/avconfig.h -=================================================================== --- /dev/null -+++ src/third_party/ffmpeg/chromium/config/ChromeOS/linux/riscv64/libavutil/avconfig.h ++++ b/third_party/ffmpeg/chromium/config/ChromeOS/linux/riscv64/libavutil/avconfig.h @@ -0,0 +1,6 @@ +/* Generated by ffmpeg configure */ +#ifndef AVUTIL_AVCONFIG_H @@ -6177,37 +6129,31 @@ Index: src/third_party/ffmpeg/chromium/config/ChromeOS/linux/riscv64/libavutil/a +#define AV_HAVE_BIGENDIAN 0 +#define AV_HAVE_FAST_UNALIGNED 0 +#endif /* AVUTIL_AVCONFIG_H */ -Index: src/third_party/ffmpeg/chromium/config/ChromeOS/linux/riscv64/libavutil/ffversion.h -=================================================================== --- /dev/null -+++ src/third_party/ffmpeg/chromium/config/ChromeOS/linux/riscv64/libavutil/ffversion.h ++++ b/third_party/ffmpeg/chromium/config/ChromeOS/linux/riscv64/libavutil/ffversion.h @@ -0,0 +1,5 @@ +/* Automatically generated by version.sh, do not manually edit! */ +#ifndef AVUTIL_FFVERSION_H +#define AVUTIL_FFVERSION_H +#define FFMPEG_VERSION "5.1.git" +#endif /* AVUTIL_FFVERSION_H */ -Index: src/third_party/ffmpeg/chromium/config/Chromium/linux/riscv64/config.h -=================================================================== --- /dev/null -+++ src/third_party/ffmpeg/chromium/config/Chromium/linux/riscv64/config.h -@@ -0,0 +1,768 @@ ++++ b/third_party/ffmpeg/chromium/config/Chromium/linux/riscv64/config.h +@@ -0,0 +1,775 @@ +/* Automatically generated by configure - do not modify! */ +#ifndef FFMPEG_CONFIG_H +#define FFMPEG_CONFIG_H -+/* #define FFMPEG_CONFIGURATION "--disable-everything --disable-all --disable-doc --disable-htmlpages --disable-manpages --disable-podpages --disable-txtpages --disable-static --enable-avcodec --enable-avformat --enable-avutil --enable-static --enable-libopus --disable-debug --disable-bzlib --disable-error-resilience --disable-iconv --disable-network --disable-schannel --disable-sdl2 --disable-symver --disable-xlib --disable-zlib --disable-securetransport --disable-faan --disable-alsa --disable-autodetect --enable-decoder='vorbis,libopus,flac' --enable-decoder='pcm_u8,pcm_s16le,pcm_s24le,pcm_s32le,pcm_f32le,mp3' --enable-decoder='pcm_s16be,pcm_s24be,pcm_mulaw,pcm_alaw' --enable-demuxer='ogg,matroska,wav,flac,mp3,mov' --enable-parser='opus,vorbis,flac,mpegaudio,vp9' --extra-cflags=-I/home/hacker/chromium/chromium/src/third_party/opus/src/include --disable-linux-perf --x86asmexe=nasm --optflags='\"-O2\"' --enable-decoder='theora,vp8' --enable-parser='vp3,vp8' --arch=riscv64" -- elide long configuration string from binary */ ++/* #define FFMPEG_CONFIGURATION "--disable-everything --disable-all --disable-doc --disable-htmlpages --disable-manpages --disable-podpages --disable-txtpages --disable-static --enable-avcodec --enable-avformat --enable-avutil --enable-static --enable-libopus --disable-debug --disable-bzlib --disable-error-resilience --disable-iconv --disable-network --disable-schannel --disable-sdl2 --disable-symver --disable-xlib --disable-zlib --disable-securetransport --disable-faan --disable-alsa --disable-autodetect --enable-decoder='vorbis,libopus,flac' --enable-decoder='pcm_u8,pcm_s16le,pcm_s24le,pcm_s32le,pcm_f32le,mp3' --enable-decoder='pcm_s16be,pcm_s24be,pcm_mulaw,pcm_alaw' --enable-demuxer='ogg,matroska,wav,flac,mp3,mov' --enable-parser='opus,vorbis,flac,mpegaudio,vp9' --extra-cflags=-I/home/hacker/chromium/third_party/opus/src/include --disable-linux-perf --x86asmexe=nasm --optflags='\"-O2\"' --arch=riscv64 --enable-pic --cc=clang --cxx=clang++ --ld=clang --extra-ldflags='-fuse-ld=lld'" -- elide long configuration string from binary */ +#define FFMPEG_LICENSE "LGPL version 2.1 or later" +#define CONFIG_THIS_YEAR 2024 +#define FFMPEG_DATADIR "/usr/local/share/ffmpeg" +#define AVCONV_DATADIR "/usr/local/share/ffmpeg" -+#define CC_IDENT "gcc 13.2.1 (GCC) 20230801" ++#define CC_IDENT "Debian clang version 16.0.6 (27)" +#define OS_NAME linux -+#define av_restrict restrict +#define EXTERN_PREFIX "" +#define EXTERN_ASM +#define BUILDSUF "" +#define SLIBSUF ".so" -+#define HAVE_MMX2 HAVE_MMXEXT +#define SWS_MAX_FILTER_SIZE 256 +#define ARCH_AARCH64 0 +#define ARCH_ALPHA 0 @@ -6252,8 +6198,8 @@ Index: src/third_party/ffmpeg/chromium/config/Chromium/linux/riscv64/config.h +#define HAVE_POWER8 0 +#define HAVE_PPC4XX 0 +#define HAVE_VSX 0 -+#define HAVE_RV 1 -+#define HAVE_RVV 1 ++#define HAVE_RV 0 ++#define HAVE_RVV 0 +#define HAVE_AESNI 0 +#define HAVE_AMD3DNOW 0 +#define HAVE_AMD3DNOWEXT 0 @@ -6439,6 +6385,7 @@ Index: src/third_party/ffmpeg/chromium/config/Chromium/linux/riscv64/config.h +#define HAVE_OPENCV2_CORE_CORE_C_H 0 +#define HAVE_OPENGL_GL3_H 0 +#define HAVE_POLL_H 1 ++#define HAVE_PTHREAD_NP_H 0 +#define HAVE_SYS_PARAM_H 1 +#define HAVE_SYS_RESOURCE_H 1 +#define HAVE_SYS_SELECT_H 1 @@ -6529,6 +6476,8 @@ Index: src/third_party/ffmpeg/chromium/config/Chromium/linux/riscv64/config.h +#define HAVE_POSIX_MEMALIGN 1 +#define HAVE_PRCTL 0 /* #define HAVE_PRCTL 1 -- forced to 0 for Fuchsia */ +#define HAVE_PTHREAD_CANCEL 1 ++#define HAVE_PTHREAD_SET_NAME_NP 0 ++#define HAVE_PTHREAD_SETNAME_NP 0 +#define HAVE_SCHED_GETAFFINITY 1 +#define HAVE_SECITEMIMPORT 0 +#define HAVE_SETCONSOLETEXTATTRIBUTE 0 @@ -6572,7 +6521,7 @@ Index: src/third_party/ffmpeg/chromium/config/Chromium/linux/riscv64/config.h +#define HAVE_INLINE_ASM_NONLOCAL_LABELS 1 +#define HAVE_PRAGMA_DEPRECATED 1 +#define HAVE_RSYNC_CONTIMEOUT 0 -+#define HAVE_SYMVER_ASM_LABEL 0 ++#define HAVE_SYMVER_ASM_LABEL 1 +#define HAVE_SYMVER_GNU_ASM 1 +#define HAVE_VFP_ARGS 0 +#define HAVE_XFORM_ASM 0 @@ -6612,18 +6561,19 @@ Index: src/third_party/ffmpeg/chromium/config/Chromium/linux/riscv64/config.h +#define HAVE_STRUCT_V4L2_FRMIVALENUM_DISCRETE 0 +#define HAVE_GZIP 1 +#define HAVE_LIBDRM_GETFB2 0 -+#define HAVE_MAKEINFO 1 -+#define HAVE_MAKEINFO_HTML 1 ++#define HAVE_MAKEINFO 0 ++#define HAVE_MAKEINFO_HTML 0 +#define HAVE_OPENCL_D3D11 0 +#define HAVE_OPENCL_DRM_ARM 0 +#define HAVE_OPENCL_DRM_BEIGNET 0 +#define HAVE_OPENCL_DXVA2 0 +#define HAVE_OPENCL_VAAPI_BEIGNET 0 +#define HAVE_OPENCL_VAAPI_INTEL_MEDIA 0 ++#define HAVE_OPENCL_VIDEOTOOLBOX 0 +#define HAVE_PERL 1 +#define HAVE_POD2MAN 1 +#define HAVE_TEXI2HTML 0 -+#define HAVE_XMLLINT 1 ++#define HAVE_XMLLINT 0 +#define HAVE_ZLIB_GZIP 0 +#define HAVE_OPENVINO2 0 +#define CONFIG_DOC 0 @@ -6659,6 +6609,8 @@ Index: src/third_party/ffmpeg/chromium/config/Chromium/linux/riscv64/config.h +#define CONFIG_FREI0R 0 +#define CONFIG_LIBCDIO 0 +#define CONFIG_LIBDAVS2 0 ++#define CONFIG_LIBDVDNAV 0 ++#define CONFIG_LIBDVDREAD 0 +#define CONFIG_LIBRUBBERBAND 0 +#define CONFIG_LIBVIDSTAB 0 +#define CONFIG_LIBX264 0 @@ -6738,6 +6690,7 @@ Index: src/third_party/ffmpeg/chromium/config/Chromium/linux/riscv64/config.h +#define CONFIG_LIBTENSORFLOW 0 +#define CONFIG_LIBTESSERACT 0 +#define CONFIG_LIBTHEORA 0 ++#define CONFIG_LIBTORCH 0 +#define CONFIG_LIBTWOLAME 0 +#define CONFIG_LIBUAVS3D 0 +#define CONFIG_LIBV4L2 0 @@ -6787,7 +6740,6 @@ Index: src/third_party/ffmpeg/chromium/config/Chromium/linux/riscv64/config.h +#define CONFIG_OPENCL 0 +#define CONFIG_AMF 0 +#define CONFIG_AUDIOTOOLBOX 0 -+#define CONFIG_CRYSTALHD 0 +#define CONFIG_CUDA 0 +#define CONFIG_CUDA_LLVM 0 +#define CONFIG_CUVID 0 @@ -6895,15 +6847,17 @@ Index: src/third_party/ffmpeg/chromium/config/Chromium/linux/riscv64/config.h +#define CONFIG_H264CHROMA 0 +#define CONFIG_H264DSP 0 +#define CONFIG_H264PARSE 0 -+#define CONFIG_H264PRED 1 ++#define CONFIG_H264PRED 0 +#define CONFIG_H264QPEL 0 +#define CONFIG_H264_SEI 0 +#define CONFIG_HEVCPARSE 0 +#define CONFIG_HEVC_SEI 0 -+#define CONFIG_HPELDSP 1 ++#define CONFIG_HPELDSP 0 +#define CONFIG_HUFFMAN 0 +#define CONFIG_HUFFYUVDSP 0 +#define CONFIG_HUFFYUVENCDSP 0 ++#define CONFIG_IAMFDEC 0 ++#define CONFIG_IAMFENC 0 +#define CONFIG_IDCTDSP 0 +#define CONFIG_IIRFILTER 0 +#define CONFIG_INFLATE_WRAPPER 0 @@ -6913,6 +6867,7 @@ Index: src/third_party/ffmpeg/chromium/config/Chromium/linux/riscv64/config.h +#define CONFIG_JPEGTABLES 0 +#define CONFIG_LGPLV3 0 +#define CONFIG_LIBX262 0 ++#define CONFIG_LIBX264_HDR10 0 +#define CONFIG_LLAUDDSP 0 +#define CONFIG_LLVIDDSP 0 +#define CONFIG_LLVIDENCDSP 0 @@ -6953,18 +6908,16 @@ Index: src/third_party/ffmpeg/chromium/config/Chromium/linux/riscv64/config.h +#define CONFIG_VAAPI_1 0 +#define CONFIG_VAAPI_ENCODE 0 +#define CONFIG_VC1DSP 0 -+#define CONFIG_VIDEODSP 1 -+#define CONFIG_VP3DSP 1 ++#define CONFIG_VIDEODSP 0 ++#define CONFIG_VP3DSP 0 +#define CONFIG_VP56DSP 0 -+#define CONFIG_VP8DSP 1 ++#define CONFIG_VP8DSP 0 +#define CONFIG_WMA_FREQS 0 +#define CONFIG_WMV2DSP 0 +#endif /* FFMPEG_CONFIG_H */ -Index: src/third_party/ffmpeg/chromium/config/Chromium/linux/riscv64/config_components.h -=================================================================== --- /dev/null -+++ src/third_party/ffmpeg/chromium/config/Chromium/linux/riscv64/config_components.h -@@ -0,0 +1,2217 @@ ++++ b/third_party/ffmpeg/chromium/config/Chromium/linux/riscv64/config_components.h +@@ -0,0 +1,2210 @@ +/* Automatically generated by configure - do not modify! */ +#ifndef FFMPEG_CONFIG_COMPONENTS_H +#define FFMPEG_CONFIG_COMPONENTS_H @@ -6990,7 +6943,6 @@ Index: src/third_party/ffmpeg/chromium/config/Chromium/linux/riscv64/config_comp +#define CONFIG_MEDIA100_TO_MJPEGB_BSF 0 +#define CONFIG_MJPEG2JPEG_BSF 0 +#define CONFIG_MJPEGA_DUMP_HEADER_BSF 0 -+#define CONFIG_MP3_HEADER_DECOMPRESS_BSF 0 +#define CONFIG_MPEG2_METADATA_BSF 0 +#define CONFIG_MPEG4_UNPACK_BFRAMES_BSF 0 +#define CONFIG_MOV2TEXTSUB_BSF 0 @@ -7002,6 +6954,7 @@ Index: src/third_party/ffmpeg/chromium/config/Chromium/linux/riscv64/config_comp +#define CONFIG_PRORES_METADATA_BSF 0 +#define CONFIG_REMOVE_EXTRADATA_BSF 0 +#define CONFIG_SETTS_BSF 0 ++#define CONFIG_SHOWINFO_BSF 0 +#define CONFIG_TEXT2MOVSUB_BSF 0 +#define CONFIG_TRACE_HEADERS_BSF 0 +#define CONFIG_TRUEHD_CORE_BSF 0 @@ -7030,7 +6983,6 @@ Index: src/third_party/ffmpeg/chromium/config/Chromium/linux/riscv64/config_comp +#define CONFIG_AVRN_DECODER 0 +#define CONFIG_AVS_DECODER 0 +#define CONFIG_AVUI_DECODER 0 -+#define CONFIG_AYUV_DECODER 0 +#define CONFIG_BETHSOFTVID_DECODER 0 +#define CONFIG_BFI_DECODER 0 +#define CONFIG_BINK_DECODER 0 @@ -7097,7 +7049,6 @@ Index: src/third_party/ffmpeg/chromium/config/Chromium/linux/riscv64/config_comp +#define CONFIG_H263P_DECODER 0 +#define CONFIG_H263_V4L2M2M_DECODER 0 +#define CONFIG_H264_DECODER 0 -+#define CONFIG_H264_CRYSTALHD_DECODER 0 +#define CONFIG_H264_V4L2M2M_DECODER 0 +#define CONFIG_H264_MEDIACODEC_DECODER 0 +#define CONFIG_H264_MMAL_DECODER 0 @@ -7145,13 +7096,11 @@ Index: src/third_party/ffmpeg/chromium/config/Chromium/linux/riscv64/config_comp +#define CONFIG_MPEG1VIDEO_DECODER 0 +#define CONFIG_MPEG2VIDEO_DECODER 0 +#define CONFIG_MPEG4_DECODER 0 -+#define CONFIG_MPEG4_CRYSTALHD_DECODER 0 +#define CONFIG_MPEG4_V4L2M2M_DECODER 0 +#define CONFIG_MPEG4_MMAL_DECODER 0 +#define CONFIG_MPEGVIDEO_DECODER 0 +#define CONFIG_MPEG1_V4L2M2M_DECODER 0 +#define CONFIG_MPEG2_MMAL_DECODER 0 -+#define CONFIG_MPEG2_CRYSTALHD_DECODER 0 +#define CONFIG_MPEG2_V4L2M2M_DECODER 0 +#define CONFIG_MPEG2_QSV_DECODER 0 +#define CONFIG_MPEG2_MEDIACODEC_DECODER 0 @@ -7160,7 +7109,6 @@ Index: src/third_party/ffmpeg/chromium/config/Chromium/linux/riscv64/config_comp +#define CONFIG_MSMPEG4V1_DECODER 0 +#define CONFIG_MSMPEG4V2_DECODER 0 +#define CONFIG_MSMPEG4V3_DECODER 0 -+#define CONFIG_MSMPEG4_CRYSTALHD_DECODER 0 +#define CONFIG_MSP2_DECODER 0 +#define CONFIG_MSRLE_DECODER 0 +#define CONFIG_MSS1_DECODER 0 @@ -7237,7 +7185,7 @@ Index: src/third_party/ffmpeg/chromium/config/Chromium/linux/riscv64/config_comp +#define CONFIG_TARGA_DECODER 0 +#define CONFIG_TARGA_Y216_DECODER 0 +#define CONFIG_TDSC_DECODER 0 -+#define CONFIG_THEORA_DECODER 1 ++#define CONFIG_THEORA_DECODER 0 +#define CONFIG_THP_DECODER 0 +#define CONFIG_TIERTEXSEQVIDEO_DECODER 0 +#define CONFIG_TIFF_DECODER 0 @@ -7259,7 +7207,6 @@ Index: src/third_party/ffmpeg/chromium/config/Chromium/linux/riscv64/config_comp +#define CONFIG_VBN_DECODER 0 +#define CONFIG_VBLE_DECODER 0 +#define CONFIG_VC1_DECODER 0 -+#define CONFIG_VC1_CRYSTALHD_DECODER 0 +#define CONFIG_VC1IMAGE_DECODER 0 +#define CONFIG_VC1_MMAL_DECODER 0 +#define CONFIG_VC1_QSV_DECODER 0 @@ -7268,14 +7215,14 @@ Index: src/third_party/ffmpeg/chromium/config/Chromium/linux/riscv64/config_comp +#define CONFIG_VMDVIDEO_DECODER 0 +#define CONFIG_VMIX_DECODER 0 +#define CONFIG_VMNC_DECODER 0 -+#define CONFIG_VP3_DECODER 1 ++#define CONFIG_VP3_DECODER 0 +#define CONFIG_VP4_DECODER 0 +#define CONFIG_VP5_DECODER 0 +#define CONFIG_VP6_DECODER 0 +#define CONFIG_VP6A_DECODER 0 +#define CONFIG_VP6F_DECODER 0 +#define CONFIG_VP7_DECODER 0 -+#define CONFIG_VP8_DECODER 1 ++#define CONFIG_VP8_DECODER 0 +#define CONFIG_VP8_RKMPP_DECODER 0 +#define CONFIG_VP8_V4L2M2M_DECODER 0 +#define CONFIG_VP9_DECODER 0 @@ -7291,7 +7238,6 @@ Index: src/third_party/ffmpeg/chromium/config/Chromium/linux/riscv64/config_comp +#define CONFIG_WMV1_DECODER 0 +#define CONFIG_WMV2_DECODER 0 +#define CONFIG_WMV3_DECODER 0 -+#define CONFIG_WMV3_CRYSTALHD_DECODER 0 +#define CONFIG_WMV3IMAGE_DECODER 0 +#define CONFIG_WNV1_DECODER 0 +#define CONFIG_XAN_WC3_DECODER 0 @@ -7605,7 +7551,6 @@ Index: src/third_party/ffmpeg/chromium/config/Chromium/linux/riscv64/config_comp +#define CONFIG_ASV2_ENCODER 0 +#define CONFIG_AVRP_ENCODER 0 +#define CONFIG_AVUI_ENCODER 0 -+#define CONFIG_AYUV_ENCODER 0 +#define CONFIG_BITPACKED_ENCODER 0 +#define CONFIG_BMP_ENCODER 0 +#define CONFIG_CFHD_ENCODER 0 @@ -7615,6 +7560,7 @@ Index: src/third_party/ffmpeg/chromium/config/Chromium/linux/riscv64/config_comp +#define CONFIG_DNXHD_ENCODER 0 +#define CONFIG_DPX_ENCODER 0 +#define CONFIG_DVVIDEO_ENCODER 0 ++#define CONFIG_DXV_ENCODER 0 +#define CONFIG_EXR_ENCODER 0 +#define CONFIG_FFV1_ENCODER 0 +#define CONFIG_FFVHUFF_ENCODER 0 @@ -7975,8 +7921,8 @@ Index: src/third_party/ffmpeg/chromium/config/Chromium/linux/riscv64/config_comp +#define CONFIG_TAK_PARSER 0 +#define CONFIG_VC1_PARSER 0 +#define CONFIG_VORBIS_PARSER 1 -+#define CONFIG_VP3_PARSER 1 -+#define CONFIG_VP8_PARSER 1 ++#define CONFIG_VP3_PARSER 0 ++#define CONFIG_VP8_PARSER 0 +#define CONFIG_VP9_PARSER 1 +#define CONFIG_VVC_PARSER 0 +#define CONFIG_WEBP_PARSER 0 @@ -8588,8 +8534,6 @@ Index: src/third_party/ffmpeg/chromium/config/Chromium/linux/riscv64/config_comp +#define CONFIG_AVSYNCTEST_FILTER 0 +#define CONFIG_AMOVIE_FILTER 0 +#define CONFIG_MOVIE_FILTER 0 -+#define CONFIG_AFIFO_FILTER 0 -+#define CONFIG_FIFO_FILTER 0 +#define CONFIG_AA_DEMUXER 0 +#define CONFIG_AAC_DEMUXER 0 +#define CONFIG_AAX_DEMUXER 0 @@ -8673,6 +8617,7 @@ Index: src/third_party/ffmpeg/chromium/config/Chromium/linux/riscv64/config_comp +#define CONFIG_DV_DEMUXER 0 +#define CONFIG_DVBSUB_DEMUXER 0 +#define CONFIG_DVBTXT_DEMUXER 0 ++#define CONFIG_DVDVIDEO_DEMUXER 0 +#define CONFIG_DXA_DEMUXER 0 +#define CONFIG_EA_DEMUXER 0 +#define CONFIG_EA_CDATA_DEMUXER 0 @@ -8954,6 +8899,7 @@ Index: src/third_party/ffmpeg/chromium/config/Chromium/linux/riscv64/config_comp +#define CONFIG_AC4_MUXER 0 +#define CONFIG_ADTS_MUXER 0 +#define CONFIG_ADX_MUXER 0 ++#define CONFIG_AEA_MUXER 0 +#define CONFIG_AIFF_MUXER 0 +#define CONFIG_ALP_MUXER 0 +#define CONFIG_AMR_MUXER 0 @@ -8993,7 +8939,6 @@ Index: src/third_party/ffmpeg/chromium/config/Chromium/linux/riscv64/config_comp +#define CONFIG_F4V_MUXER 0 +#define CONFIG_FFMETADATA_MUXER 0 +#define CONFIG_FIFO_MUXER 0 -+#define CONFIG_FIFO_TEST_MUXER 0 +#define CONFIG_FILMSTRIP_MUXER 0 +#define CONFIG_FITS_MUXER 0 +#define CONFIG_FLAC_MUXER 0 @@ -9083,6 +9028,7 @@ Index: src/third_party/ffmpeg/chromium/config/Chromium/linux/riscv64/config_comp +#define CONFIG_PCM_U8_MUXER 0 +#define CONFIG_PSP_MUXER 0 +#define CONFIG_RAWVIDEO_MUXER 0 ++#define CONFIG_RCWT_MUXER 0 +#define CONFIG_RM_MUXER 0 +#define CONFIG_ROQ_MUXER 0 +#define CONFIG_RSO_MUXER 0 @@ -9182,22 +9128,15 @@ Index: src/third_party/ffmpeg/chromium/config/Chromium/linux/riscv64/config_comp +#define CONFIG_IPFS_GATEWAY_PROTOCOL 0 +#define CONFIG_IPNS_GATEWAY_PROTOCOL 0 +#endif /* FFMPEG_CONFIG_COMPONENTS_H */ -Index: src/third_party/ffmpeg/chromium/config/Chromium/linux/riscv64/libavcodec/bsf_list.c -=================================================================== --- /dev/null -+++ src/third_party/ffmpeg/chromium/config/Chromium/linux/riscv64/libavcodec/bsf_list.c ++++ b/third_party/ffmpeg/chromium/config/Chromium/linux/riscv64/libavcodec/bsf_list.c @@ -0,0 +1,2 @@ +static const FFBitStreamFilter * const bitstream_filters[] = { + NULL }; -Index: src/third_party/ffmpeg/chromium/config/Chromium/linux/riscv64/libavcodec/codec_list.c -=================================================================== --- /dev/null -+++ src/third_party/ffmpeg/chromium/config/Chromium/linux/riscv64/libavcodec/codec_list.c -@@ -0,0 +1,18 @@ ++++ b/third_party/ffmpeg/chromium/config/Chromium/linux/riscv64/libavcodec/codec_list.c +@@ -0,0 +1,15 @@ +static const FFCodec * const codec_list[] = { -+ &ff_theora_decoder, -+ &ff_vp3_decoder, -+ &ff_vp8_decoder, + &ff_flac_decoder, + &ff_mp3_decoder, + &ff_vorbis_decoder, @@ -9212,26 +9151,20 @@ Index: src/third_party/ffmpeg/chromium/config/Chromium/linux/riscv64/libavcodec/ + &ff_pcm_u8_decoder, + &ff_libopus_decoder, + NULL }; -Index: src/third_party/ffmpeg/chromium/config/Chromium/linux/riscv64/libavcodec/parser_list.c -=================================================================== --- /dev/null -+++ src/third_party/ffmpeg/chromium/config/Chromium/linux/riscv64/libavcodec/parser_list.c -@@ -0,0 +1,9 @@ ++++ b/third_party/ffmpeg/chromium/config/Chromium/linux/riscv64/libavcodec/parser_list.c +@@ -0,0 +1,7 @@ +static const AVCodecParser * const parser_list[] = { + &ff_flac_parser, + &ff_mpegaudio_parser, + &ff_opus_parser, + &ff_vorbis_parser, -+ &ff_vp3_parser, -+ &ff_vp8_parser, + &ff_vp9_parser, + NULL }; -Index: src/third_party/ffmpeg/chromium/config/Chromium/linux/riscv64/libavformat/demuxer_list.c -=================================================================== --- /dev/null -+++ src/third_party/ffmpeg/chromium/config/Chromium/linux/riscv64/libavformat/demuxer_list.c ++++ b/third_party/ffmpeg/chromium/config/Chromium/linux/riscv64/libavformat/demuxer_list.c @@ -0,0 +1,8 @@ -+static const AVInputFormat * const demuxer_list[] = { ++static const FFInputFormat * const demuxer_list[] = { + &ff_flac_demuxer, + &ff_matroska_demuxer, + &ff_mov_demuxer, @@ -9239,24 +9172,18 @@ Index: src/third_party/ffmpeg/chromium/config/Chromium/linux/riscv64/libavformat + &ff_ogg_demuxer, + &ff_wav_demuxer, + NULL }; -Index: src/third_party/ffmpeg/chromium/config/Chromium/linux/riscv64/libavformat/muxer_list.c -=================================================================== --- /dev/null -+++ src/third_party/ffmpeg/chromium/config/Chromium/linux/riscv64/libavformat/muxer_list.c ++++ b/third_party/ffmpeg/chromium/config/Chromium/linux/riscv64/libavformat/muxer_list.c @@ -0,0 +1,2 @@ +static const FFOutputFormat * const muxer_list[] = { + NULL }; -Index: src/third_party/ffmpeg/chromium/config/Chromium/linux/riscv64/libavformat/protocol_list.c -=================================================================== --- /dev/null -+++ src/third_party/ffmpeg/chromium/config/Chromium/linux/riscv64/libavformat/protocol_list.c ++++ b/third_party/ffmpeg/chromium/config/Chromium/linux/riscv64/libavformat/protocol_list.c @@ -0,0 +1,2 @@ +static const URLProtocol * const url_protocols[] = { + NULL }; -Index: src/third_party/ffmpeg/chromium/config/Chromium/linux/riscv64/libavutil/avconfig.h -=================================================================== --- /dev/null -+++ src/third_party/ffmpeg/chromium/config/Chromium/linux/riscv64/libavutil/avconfig.h ++++ b/third_party/ffmpeg/chromium/config/Chromium/linux/riscv64/libavutil/avconfig.h @@ -0,0 +1,6 @@ +/* Generated by ffmpeg configure */ +#ifndef AVUTIL_AVCONFIG_H @@ -9264,30 +9191,83 @@ Index: src/third_party/ffmpeg/chromium/config/Chromium/linux/riscv64/libavutil/a +#define AV_HAVE_BIGENDIAN 0 +#define AV_HAVE_FAST_UNALIGNED 0 +#endif /* AVUTIL_AVCONFIG_H */ -Index: src/third_party/ffmpeg/chromium/config/Chromium/linux/riscv64/libavutil/ffversion.h -=================================================================== --- /dev/null -+++ src/third_party/ffmpeg/chromium/config/Chromium/linux/riscv64/libavutil/ffversion.h ++++ b/third_party/ffmpeg/chromium/config/Chromium/linux/riscv64/libavutil/ffversion.h @@ -0,0 +1,5 @@ +/* Automatically generated by version.sh, do not manually edit! */ +#ifndef AVUTIL_FFVERSION_H +#define AVUTIL_FFVERSION_H +#define FFMPEG_VERSION "5.1.git" +#endif /* AVUTIL_FFVERSION_H */ -Index: src/third_party/ffmpeg/ffmpeg_generated.gni -=================================================================== ---- src.orig/third_party/ffmpeg/ffmpeg_generated.gni -+++ src/third_party/ffmpeg/ffmpeg_generated.gni -@@ -638,3 +638,64 @@ if (use_linux_config && current_cpu == " - ] +--- a/media/ffmpeg/scripts/build_ffmpeg.py ++++ b/media/ffmpeg/scripts/build_ffmpeg.py +@@ -43,7 +43,7 @@ + + ARCH_MAP = { + 'android': ['ia32', 'x64', 'arm-neon', 'arm64'], +- 'linux': ['ia32', 'x64', 'noasm-x64', 'arm', 'arm-neon', 'arm64'], ++ 'linux': ['ia32', 'x64', 'noasm-x64', 'arm', 'arm-neon', 'arm64', 'riscv64'], + 'mac': ['x64', 'arm64'], + 'win': ['ia32', 'x64', 'arm64'], } +@@ -672,7 +672,7 @@ + '--disable-securetransport', + '--disable-faan', + '--disable-alsa', +- '--disable-iamf', ++ # '--disable-iamf', + # Disable automatically detected external libraries. This prevents + # automatic inclusion of things like hardware decoders. Each roll should +@@ -898,6 +898,10 @@ + '--extra-cflags=--target=mips64el-linux-gnuabi64', + '--extra-ldflags=--target=mips64el-linux-gnuabi64', + ]) ++ elif target_arch == 'riscv64': ++ configure_flags['Common'].extend([ ++ '--arch=riscv64', ++ ]) + else: + print('Error: Unknown target arch %r for target OS %r!' % + (target_arch, target_os), +--- a/third_party/ffmpeg/chromium/scripts/generate_gn.py ++++ b/third_party/ffmpeg/chromium/scripts/generate_gn.py +@@ -77,7 +77,7 @@ + _Attrs = ('ARCHITECTURE', 'TARGET', 'PLATFORM') + Attr = collections.namedtuple('Attr', _Attrs)(*_Attrs) + SUPPORT_MATRIX = { +- Attr.ARCHITECTURE: set(['ia32', 'x64', 'arm', 'arm64', 'arm-neon']), ++ Attr.ARCHITECTURE: set(['ia32', 'x64', 'arm', 'arm64', 'arm-neon', 'riscv64']), + Attr.TARGET: set(['Chromium', 'Chrome', 'ChromeOS']), + Attr.PLATFORM: set(['android', 'linux', 'win', 'mac']) + } +--- a/media/ffmpeg/scripts/robo_lib/config.py ++++ b/media/ffmpeg/scripts/robo_lib/config.py +@@ -189,6 +189,8 @@ + self._host_architecture = "mips64el" + elif platform.machine().startswith("arm"): + self._host_architecture = "arm" ++ elif platform.machine() == "riscv64": ++ self._host_architecture = "riscv64" + else: + raise ValueError( + f"Unrecognized CPU architecture: {platform.machine()}") +--- a/third_party/ffmpeg/ffmpeg_generated.gni ++++ b/third_party/ffmpeg/ffmpeg_generated.gni +@@ -697,3 +697,90 @@ + if (use_linux_config && current_cpu == "x64" && ffmpeg_branding == "ChromeOS") { + ffmpeg_asm_sources += [ "libavcodec/x86/simple_idct10.asm" ] + } ++ +if (use_linux_config && current_cpu == "riscv64") { + ffmpeg_c_sources += [ ++ "libavcodec/riscv/aacencdsp_init.c", + "libavcodec/riscv/aacpsdsp_init.c", + "libavcodec/riscv/ac3dsp_init.c", + "libavcodec/riscv/alacdsp_init.c", + "libavcodec/riscv/audiodsp_init.c", ++ "libavcodec/riscv/blockdsp_init.c", ++ "libavcodec/riscv/bswapdsp_init.c", + "libavcodec/riscv/exrdsp_init.c", + "libavcodec/riscv/flacdsp_init.c", + "libavcodec/riscv/fmtconvert_init.c", @@ -9298,12 +9278,20 @@ Index: src/third_party/ffmpeg/ffmpeg_generated.gni + "libavcodec/riscv/jpeg2000dsp_init.c", + "libavcodec/riscv/llauddsp_init.c", + "libavcodec/riscv/llviddsp_init.c", ++ "libavcodec/riscv/llvidencdsp_init.c", ++ "libavcodec/riscv/lpc_init.c", ++ "libavcodec/riscv/me_cmp_init.c", + "libavcodec/riscv/opusdsp_init.c", + "libavcodec/riscv/pixblockdsp_init.c", ++ "libavcodec/riscv/rv34dsp_init.c", + "libavcodec/riscv/sbrdsp_init.c", ++ "libavcodec/riscv/svqenc_init.c", ++ "libavcodec/riscv/takdsp_init.c", + "libavcodec/riscv/utvideodsp_init.c", ++ "libavcodec/riscv/vc1dsp_init.c", + "libavcodec/riscv/vorbisdsp_init.c", -+ "libavcodec/riscv/bswapdsp_init.c", ++ "libavcodec/riscv/vp8dsp_init.c", ++ "libavfilter/riscv/af_afir_init.c", + "libavutil/riscv/cpu.c", + "libavutil/riscv/fixed_dsp_init.c", + "libavutil/riscv/float_dsp_init.c", @@ -9314,11 +9302,14 @@ Index: src/third_party/ffmpeg/ffmpeg_generated.gni + "libavutil/riscv/timer.h", + ] + ffmpeg_gas_sources += [ ++ "libavcodec/riscv/aacencdsp_rvv.S", + "libavcodec/riscv/aacpsdsp_rvv.S", + "libavcodec/riscv/ac3dsp_rvb.S", ++ "libavcodec/riscv/ac3dsp_rvv.S", + "libavcodec/riscv/alacdsp_rvv.S", + "libavcodec/riscv/audiodsp_rvf.S", + "libavcodec/riscv/audiodsp_rvv.S", ++ "libavcodec/riscv/blockdsp_rvv.S", + "libavcodec/riscv/bswapdsp_rvb.S", + "libavcodec/riscv/bswapdsp_rvv.S", + "libavcodec/riscv/exrdsp_rvv.S", @@ -9331,141 +9322,27 @@ Index: src/third_party/ffmpeg/ffmpeg_generated.gni + "libavcodec/riscv/jpeg2000dsp_rvv.S", + "libavcodec/riscv/llauddsp_rvv.S", + "libavcodec/riscv/llviddsp_rvv.S", ++ "libavcodec/riscv/llvidencdsp_rvv.S", ++ "libavcodec/riscv/lpc_rvv.S", ++ "libavcodec/riscv/me_cmp_rvv.S", + "libavcodec/riscv/opusdsp_rvv.S", + "libavcodec/riscv/pixblockdsp_rvi.S", + "libavcodec/riscv/pixblockdsp_rvv.S", ++ "libavcodec/riscv/rv34dsp_rvv.S", + "libavcodec/riscv/sbrdsp_rvv.S", ++ "libavcodec/riscv/svqenc_rvv.S", ++ "libavcodec/riscv/takdsp_rvv.S", + "libavcodec/riscv/utvideodsp_rvv.S", ++ "libavcodec/riscv/vc1dsp_rvv.S", + "libavcodec/riscv/vorbisdsp_rvv.S", ++ "libavcodec/riscv/vp8dsp_rvv.S", ++ "libavfilter/riscv/af_afir_rvv.S", + "libavutil/riscv/asm.S", ++ "libavutil/riscv/bswap_rvb.S", + "libavutil/riscv/fixed_dsp_rvv.S", + "libavutil/riscv/float_dsp_rvv.S", ++ "libswscale/riscv/rgb2rgb_rvb.S", + "libswscale/riscv/rgb2rgb_rvv.S", + ] +} -Index: src/third_party/ffmpeg/chromium/scripts/build_ffmpeg.py -=================================================================== ---- src.orig/third_party/ffmpeg/chromium/scripts/build_ffmpeg.py -+++ src/third_party/ffmpeg/chromium/scripts/build_ffmpeg.py -@@ -43,7 +43,7 @@ BRANDINGS = [ - ARCH_MAP = { - 'android': ['ia32', 'x64', 'arm-neon', 'arm64'], - 'linux': [ -- 'ia32', 'x64', 'noasm-x64', 'arm', 'arm-neon', 'arm64' -+ 'ia32', 'x64', 'noasm-x64', 'arm', 'arm-neon', 'arm64', 'riscv64' - ], - 'mac': ['x64', 'arm64'], - 'win': ['ia32', 'x64', 'arm64'], -@@ -889,6 +889,10 @@ def ConfigureAndBuild(target_arch, targe - '--extra-cflags=--target=mips64el-linux-gnuabi64', - '--extra-ldflags=--target=mips64el-linux-gnuabi64', - ]) -+ elif target_arch == 'riscv64': -+ configure_flags['Common'].extend([ -+ '--arch=riscv64', -+ ]) - else: - print( - 'Error: Unknown target arch %r for target OS %r!' % (target_arch, -@@ -902,7 +906,7 @@ def ConfigureAndBuild(target_arch, targe - '--disable-inline-asm', - ]) - -- if 'win' not in target_os and 'android' not in target_os: -+ if 'win' not in target_os and 'android' not in target_os and 'riscv64' not in target_arch: - configure_flags['Common'].extend([ - '--enable-pic', - '--cc=clang', -Index: src/third_party/ffmpeg/chromium/scripts/copy_config.sh -=================================================================== ---- src.orig/third_party/ffmpeg/chromium/scripts/copy_config.sh -+++ src/third_party/ffmpeg/chromium/scripts/copy_config.sh -@@ -10,7 +10,7 @@ for os in android linux linux-noasm mac - # Copy config files for various architectures: - # - ia32/x64 have config.asm, config.h - # - arm/arm-neon have config.h -- for arch in arm arm-neon arm64 ia32 x64 mipsel mips64el; do -+ for arch in arm arm-neon arm64 ia32 x64 mipsel mips64el riscv64; do - # Don't waste time on non-existent configs, if no config.h then skip. - [ ! -e "build.$arch.$os/$target/config.h" ] && continue - for f in config.h config_components.h config.asm libavutil/avconfig.h libavutil/ffversion.h libavcodec/bsf_list.c libavcodec/codec_list.c libavcodec/parser_list.c libavformat/demuxer_list.c libavformat/muxer_list.c libavformat/protocol_list.c; do -Index: src/third_party/ffmpeg/chromium/scripts/generate_gn.py -=================================================================== ---- src.orig/third_party/ffmpeg/chromium/scripts/generate_gn.py -+++ src/third_party/ffmpeg/chromium/scripts/generate_gn.py -@@ -82,7 +82,7 @@ _Attrs = ('ARCHITECTURE', 'TARGET', 'PLA - Attr = collections.namedtuple('Attr', _Attrs)(*_Attrs) - SUPPORT_MATRIX = { - Attr.ARCHITECTURE: -- set(['ia32', 'x64', 'arm', 'arm64', 'arm-neon']), -+ set(['ia32', 'x64', 'arm', 'arm64', 'arm-neon', 'riscv64']), - Attr.TARGET: - set(['Chromium', 'Chrome', 'ChromeOS']), - Attr.PLATFORM: -Index: src/third_party/ffmpeg/chromium/scripts/generate_gn_unittest.py -=================================================================== ---- src.orig/third_party/ffmpeg/chromium/scripts/generate_gn_unittest.py -+++ src/third_party/ffmpeg/chromium/scripts/generate_gn_unittest.py -@@ -329,6 +329,10 @@ class SourceSetUnittest(unittest.TestCas - f = SourceSet( - set(['common', 'arm-neon', 'chrome', 'chromeos']), - set([SourceListCondition('arm-neon', 'ChromeOS', 'linux')])) -+ g = SourceSet( -+ set(['common']), -+ set([SourceListCondition('riscv64', 'Chromium', 'linux')])) -+ - - expected = set() - expected.add( -@@ -340,7 +344,8 @@ class SourceSetUnittest(unittest.TestCas - SourceListCondition('x64', 'Chromium', 'linux'), - SourceListCondition('x64', 'Chrome', 'linux'), - SourceListCondition('arm', 'Chromium', 'linux'), -- SourceListCondition('arm-neon', 'ChromeOS', 'linux') -+ SourceListCondition('arm-neon', 'ChromeOS', 'linux'), -+ SourceListCondition('riscv64', 'Chromium', 'linux') - ]))) - expected.add( - SourceSet( -@@ -368,7 +373,7 @@ class SourceSetUnittest(unittest.TestCas - set(['arm-neon', 'chromeos']), - set([SourceListCondition('arm-neon', 'ChromeOS', 'linux')]))) - -- source_sets = gg.CreatePairwiseDisjointSets([a, b, c, d, e, f]) -+ source_sets = gg.CreatePairwiseDisjointSets([a, b, c, d, e, f, g]) - self.assertEqualSourceSets(expected, set(source_sets)) - - def testReduceConditions(self): -@@ -381,6 +386,7 @@ class SourceSetUnittest(unittest.TestCas - SourceListCondition('arm', 'Chromium', 'linux'), - SourceListCondition('arm64', 'Chromium', 'linux'), - SourceListCondition('arm-neon', 'Chromium', 'linux'), -+ SourceListCondition('riscv64', 'Chromium', 'linux'), - ])) - gg.ReduceConditionalLogic(a) - -Index: src/third_party/ffmpeg/chromium/scripts/robo_lib/config.py -=================================================================== ---- src.orig/third_party/ffmpeg/chromium/scripts/robo_lib/config.py -+++ src/third_party/ffmpeg/chromium/scripts/robo_lib/config.py -@@ -162,6 +162,8 @@ class RoboConfiguration: - self._host_architecture = "mips64el" - elif platform.machine().startswith("arm"): - self._host_architecture = "arm" -+ elif platform.machine() == "riscv64": -+ self._host_architecture = "riscv64" - else: - raise ValueError(f"Unrecognized CPU architecture: {platform.machine()}") - -@@ -235,9 +237,7 @@ class RoboConfiguration: - def EnsureNoMakeInfo(self): - """Ensure that makeinfo is not available.""" - if os.system("makeinfo --version > /dev/null 2>&1") == 0: -- raise errors.UserInstructions( -- "makeinfo is available and we don't need it, so please remove it\nExample: sudo apt-get remove texinfo" -- ) -+ pass - - def llvm_path(self): - return self._llvm_path diff --git a/www-client/chromium/files/05riscv-sandbox.patch b/www-client/chromium/files/riscv-sandbox.patch index eb14a7d..0753bb1 100644 --- a/www-client/chromium/files/05riscv-sandbox.patch +++ b/www-client/chromium/files/riscv-sandbox.patch @@ -1,33 +1,13 @@ -From 50538ec46b4ef930fedf96aa8d5519f678240dfa Mon Sep 17 00:00:00 2001 -From: kxxt <rsworktech@outlook.com> -Date: Sat, 12 Aug 2023 08:34:05 +0800 -Subject: [PATCH] upgpatch: fix sandbox for chromium +From 90499f55f949f95b01c84257d306cf209c04b431 Mon Sep 17 00:00:00 2001 +From: Andreas Schwab <schwab@suse.de> +Date: Fri, 04 Mar 2022 15:27:35 +0100 +Subject: [PATCH] Add support for riscv64-linux +Change-Id: Ibcdaaba1b0c92a1cd85361b9859370c686832c49 --- - sandbox/features.gni | 3 +- - sandbox/linux/bpf_dsl/linux_syscall_ranges.h | 7 + - sandbox/linux/bpf_dsl/seccomp_macros.h | 40 + - .../seccomp-bpf-helpers/baseline_policy.cc | 11 +- - .../syscall_parameters_restrictions.cc | 3 +- - .../linux/seccomp-bpf-helpers/syscall_sets.cc | 69 +- - .../linux/seccomp-bpf-helpers/syscall_sets.h | 14 +- - sandbox/linux/seccomp-bpf/syscall.cc | 36 +- - sandbox/linux/services/credentials.cc | 2 +- - sandbox/linux/services/syscall_wrappers.cc | 2 +- - .../linux/syscall_broker/broker_process.cc | 20 +- - sandbox/linux/system_headers/linux_seccomp.h | 8 + - sandbox/linux/system_headers/linux_signal.h | 2 +- - sandbox/linux/system_headers/linux_stat.h | 2 +- - sandbox/linux/system_headers/linux_syscalls.h | 4 + - .../system_headers/riscv64_linux_syscalls.h | 1222 +++++++++++++++++ - .../linux/bpf_cros_amd_gpu_policy_linux.cc | 2 +- - sandbox/policy/linux/bpf_gpu_policy_linux.cc | 2 +- - .../policy/linux/bpf_network_policy_linux.cc | 2 +- - 19 files changed, 1397 insertions(+), 54 deletions(-) - create mode 100644 sandbox/linux/system_headers/riscv64_linux_syscalls.h diff --git a/sandbox/features.gni b/sandbox/features.gni -index 8434144118b49..8aa52983f78f8 100644 +index 8434144..8aa52983 100644 --- a/sandbox/features.gni +++ b/sandbox/features.gni @@ -9,7 +9,8 @@ @@ -41,7 +21,7 @@ index 8434144118b49..8aa52983f78f8 100644 # SSBD (Speculative Store Bypass Disable) is a mitigation of Spectre Variant 4. # As Spectre Variant 4 can be mitigated by site isolation, opt-out SSBD on site diff --git a/sandbox/linux/bpf_dsl/linux_syscall_ranges.h b/sandbox/linux/bpf_dsl/linux_syscall_ranges.h -index 1d0590b7dd6ce..b722fbc95ee3e 100644 +index 1d0590b..b722fbc9 100644 --- a/sandbox/linux/bpf_dsl/linux_syscall_ranges.h +++ b/sandbox/linux/bpf_dsl/linux_syscall_ranges.h @@ -56,6 +56,13 @@ @@ -59,10 +39,10 @@ index 1d0590b7dd6ce..b722fbc95ee3e 100644 #error "Unsupported architecture" #endif diff --git a/sandbox/linux/bpf_dsl/seccomp_macros.h b/sandbox/linux/bpf_dsl/seccomp_macros.h -index 87d5825aa3ddb..cc9b89ba3714a 100644 +index 87d5825..49fc9a6 100644 --- a/sandbox/linux/bpf_dsl/seccomp_macros.h +++ b/sandbox/linux/bpf_dsl/seccomp_macros.h -@@ -343,6 +343,46 @@ struct regs_struct { +@@ -343,6 +343,48 @@ #define SECCOMP_PT_PARM4(_regs) (_regs).regs[3] #define SECCOMP_PT_PARM5(_regs) (_regs).regs[4] #define SECCOMP_PT_PARM6(_regs) (_regs).regs[5] @@ -85,6 +65,7 @@ index 87d5825aa3ddb..cc9b89ba3714a 100644 +#define SECCOMP_PARM4(_ctx) SECCOMP_REG(_ctx, REG_A0+3) +#define SECCOMP_PARM5(_ctx) SECCOMP_REG(_ctx, REG_A0+4) +#define SECCOMP_PARM6(_ctx) SECCOMP_REG(_ctx, REG_A0+5) ++#define SECCOMP_PARM7(_ctx) SECCOMP_REG(_ctx, REG_A0+6) + +#define SECCOMP_NR_IDX (offsetof(struct arch_seccomp_data, nr)) +#define SECCOMP_ARCH_IDX (offsetof(struct arch_seccomp_data, arch)) @@ -106,24 +87,82 @@ index 87d5825aa3ddb..cc9b89ba3714a 100644 +#define SECCOMP_PT_PARM4(_regs) (_regs).regs[REG_A0+3] +#define SECCOMP_PT_PARM5(_regs) (_regs).regs[REG_A0+4] +#define SECCOMP_PT_PARM6(_regs) (_regs).regs[REG_A0+5] ++#define SECCOMP_PT_PARM7(_regs) (_regs).regs[REG_A0+6] #else #error Unsupported target platform +diff --git a/sandbox/linux/integration_tests/bpf_dsl_seccomp_unittest.cc b/sandbox/linux/integration_tests/bpf_dsl_seccomp_unittest.cc +index 4a2721c..8ef9f51a 100644 +--- a/sandbox/linux/integration_tests/bpf_dsl_seccomp_unittest.cc ++++ b/sandbox/linux/integration_tests/bpf_dsl_seccomp_unittest.cc +@@ -17,6 +17,7 @@ + #include <sys/types.h> + #include <sys/utsname.h> + #include <unistd.h> ++#include <linux/elf.h> + + #include <memory> + #include <vector> +@@ -2029,7 +2030,15 @@ + BPF_ASSERT_EQ(kTraceData, data); + + regs_struct regs; ++#if defined(__riscv) ++ iovec iov; ++ iov.iov_base = ®s; ++ iov.iov_len = sizeof(regs); ++ BPF_ASSERT_NE(-1, ptrace(PTRACE_GETREGSET, pid, ++ reinterpret_case<void*>(NT_PRSTATUS), &iov)); ++#else + BPF_ASSERT_NE(-1, ptrace(PTRACE_GETREGS, pid, NULL, ®s)); ++#endif + switch (SECCOMP_PT_SYSCALL(regs)) { + case __NR_write: + // Skip writes to stdout, make it return kExpectedReturnValue. Allow +@@ -2037,7 +2046,14 @@ + if (SECCOMP_PT_PARM1(regs) == STDOUT_FILENO) { + BPF_ASSERT_NE(-1, SetSyscall(pid, ®s, -1)); + SECCOMP_PT_RESULT(regs) = kExpectedReturnValue; ++#if defined(__riscv) ++ iov.iov_len = sizeof(regs); ++ BPF_ASSERT_NE(-1, ptrace(PTRACE_SETREGSET, pid, ++ reinterpret_cast<void*>(NT_PRSTATUS), ++ &iov)); ++#else + BPF_ASSERT_NE(-1, ptrace(PTRACE_SETREGS, pid, NULL, ®s)); ++#endif + } + break; + +@@ -2045,7 +2061,13 @@ + // Rewrite to exit(kExpectedReturnValue). + BPF_ASSERT_NE(-1, SetSyscall(pid, ®s, __NR_exit)); + SECCOMP_PT_PARM1(regs) = kExpectedReturnValue; ++#if defined(__riscv) ++ iov.iov_len = sizeof(regs); ++ BPF_ASSERT_NE(-1, ptrace(PTRACE_SETREGSET, pid, ++ reinterpret_cast<void*>(NT_PRSTATUS), &iov)); ++#else + BPF_ASSERT_NE(-1, ptrace(PTRACE_SETREGS, pid, NULL, ®s)); ++#endif + break; + + default: diff --git a/sandbox/linux/seccomp-bpf-helpers/baseline_policy.cc b/sandbox/linux/seccomp-bpf-helpers/baseline_policy.cc -index 7bde501115bdf..b92ab3901acd8 100644 +index 7bde501..b92ab39 100644 --- a/sandbox/linux/seccomp-bpf-helpers/baseline_policy.cc +++ b/sandbox/linux/seccomp-bpf-helpers/baseline_policy.cc -@@ -59,6 +59,9 @@ bool IsBaselinePolicyAllowed(int sysno) { - #endif +@@ -60,6 +60,9 @@ #if defined(__mips__) SyscallSets::IsMipsPrivate(sysno) || -+#endif + #endif +#if defined(__riscv) + SyscallSets::IsRiscvPrivate(sysno) || - #endif ++#endif SyscallSets::IsAllowedOperationOnFd(sysno); // clang-format on -@@ -193,7 +196,7 @@ ResultExpr EvaluateSyscallImpl(int fs_denied_errno, + } +@@ -193,7 +196,7 @@ return RestrictFcntlCommands(); #endif @@ -132,7 +171,7 @@ index 7bde501115bdf..b92ab3901acd8 100644 // fork() is never used as a system call (clone() is used instead), but we // have seen it in fallback code on Android. if (sysno == __NR_fork) { -@@ -255,7 +258,7 @@ ResultExpr EvaluateSyscallImpl(int fs_denied_errno, +@@ -255,7 +258,7 @@ } #if defined(__i386__) || defined(__x86_64__) || defined(__mips__) || \ @@ -141,7 +180,7 @@ index 7bde501115bdf..b92ab3901acd8 100644 if (sysno == __NR_mmap) return RestrictMmapFlags(); #endif -@@ -276,7 +279,7 @@ ResultExpr EvaluateSyscallImpl(int fs_denied_errno, +@@ -276,7 +279,7 @@ return RestrictPrctl(); #if defined(__x86_64__) || defined(__arm__) || defined(__mips__) || \ @@ -150,7 +189,7 @@ index 7bde501115bdf..b92ab3901acd8 100644 if (sysno == __NR_socketpair) { // Only allow AF_UNIX, PF_UNIX. Crash if anything else is seen. static_assert(AF_UNIX == PF_UNIX, -@@ -366,7 +369,7 @@ ResultExpr EvaluateSyscallImpl(int fs_denied_errno, +@@ -366,7 +369,7 @@ // Allow creating pipes, but don't allow weird flags to pipe2(). // O_NOTIFICATION_PIPE (== O_EXCL) can be used to create // "notification pipes", which are rarely used. @@ -159,8 +198,39 @@ index 7bde501115bdf..b92ab3901acd8 100644 if (sysno == __NR_pipe) { return Allow(); } +diff --git a/sandbox/linux/seccomp-bpf-helpers/baseline_policy_unittest.cc b/sandbox/linux/seccomp-bpf-helpers/baseline_policy_unittest.cc +index a0a8796..8bea4c9 100644 +--- a/sandbox/linux/seccomp-bpf-helpers/baseline_policy_unittest.cc ++++ b/sandbox/linux/seccomp-bpf-helpers/baseline_policy_unittest.cc +@@ -270,7 +270,7 @@ + } + + // Not all architectures can restrict the domain for socketpair(). +-#if defined(__x86_64__) || defined(__arm__) || defined(__aarch64__) ++#if defined(__x86_64__) || defined(__arm__) || defined(__aarch64__) || defined(__riscv) + BPF_DEATH_TEST_C(BaselinePolicy, + SocketpairWrongDomain, + DEATH_SEGV_MESSAGE(GetErrorMessageContentForTests()), +@@ -279,7 +279,7 @@ + std::ignore = socketpair(AF_INET, SOCK_STREAM, 0, sv); + _exit(1); + } +-#endif // defined(__x86_64__) || defined(__arm__) || defined(__aarch64__) ++#endif // defined(__x86_64__) || defined(__arm__) || defined(__aarch64__) || defined(__riscv) + + BPF_TEST_C(BaselinePolicy, EPERM_open, BaselinePolicy) { + errno = 0; +@@ -343,7 +343,7 @@ + TEST_BASELINE_SIGSYS(__NR_syslog) + TEST_BASELINE_SIGSYS(__NR_timer_create) + +-#if !defined(__aarch64__) ++#if !defined(__aarch64__) && !defined(__riscv) + TEST_BASELINE_SIGSYS(__NR_inotify_init) + TEST_BASELINE_SIGSYS(__NR_vserver) + #endif diff --git a/sandbox/linux/seccomp-bpf-helpers/syscall_parameters_restrictions.cc b/sandbox/linux/seccomp-bpf-helpers/syscall_parameters_restrictions.cc -index 026e86bd85bec..ebb72ddcd5f67 100644 +index 74112e8..b451c19 100644 --- a/sandbox/linux/seccomp-bpf-helpers/syscall_parameters_restrictions.cc +++ b/sandbox/linux/seccomp-bpf-helpers/syscall_parameters_restrictions.cc @@ -37,6 +37,7 @@ @@ -171,20 +241,35 @@ index 026e86bd85bec..ebb72ddcd5f67 100644 !defined(PTRACE_GET_THREAD_AREA) // Also include asm/ptrace-abi.h since ptrace.h in older libc (for instance // the one in Ubuntu 16.04 LTS) is missing PTRACE_GET_THREAD_AREA. -@@ -449,7 +450,7 @@ ResultExpr RestrictPtrace() { +@@ -463,8 +464,10 @@ #endif return Switch(request) .Cases({ -#if !defined(__aarch64__) +#if !defined(__aarch64__) && !defined(__riscv) PTRACE_GETREGS, PTRACE_GETFPREGS, PTRACE_GET_THREAD_AREA, ++#endif ++#if !defined(__aarch64__) PTRACE_GETREGSET, #endif + #if defined(__arm__) +diff --git a/sandbox/linux/seccomp-bpf-helpers/syscall_parameters_restrictions_unittests.cc b/sandbox/linux/seccomp-bpf-helpers/syscall_parameters_restrictions_unittests.cc +index 10e64a2c..ddfd6a7 100644 +--- a/sandbox/linux/seccomp-bpf-helpers/syscall_parameters_restrictions_unittests.cc ++++ b/sandbox/linux/seccomp-bpf-helpers/syscall_parameters_restrictions_unittests.cc +@@ -7,6 +7,7 @@ + #include <errno.h> + #include <fcntl.h> + #include <linux/elf.h> ++#include <asm/ptrace.h> + #include <sched.h> + #include <sys/prctl.h> + #include <sys/ptrace.h> diff --git a/sandbox/linux/seccomp-bpf-helpers/syscall_sets.cc b/sandbox/linux/seccomp-bpf-helpers/syscall_sets.cc -index 27ea264070dcd..8fc2d3c354adb 100644 +index 4cde283..bc680424 100644 --- a/sandbox/linux/seccomp-bpf-helpers/syscall_sets.cc +++ b/sandbox/linux/seccomp-bpf-helpers/syscall_sets.cc -@@ -103,7 +103,7 @@ bool SyscallSets::IsUmask(int sysno) { +@@ -103,7 +103,7 @@ // Both EPERM and ENOENT are valid errno unless otherwise noted in comment. bool SyscallSets::IsFileSystem(int sysno) { switch (sysno) { @@ -193,7 +278,7 @@ index 27ea264070dcd..8fc2d3c354adb 100644 case __NR_access: // EPERM not a valid errno. case __NR_chmod: case __NR_chown: -@@ -136,7 +136,7 @@ bool SyscallSets::IsFileSystem(int sysno) { +@@ -136,7 +136,7 @@ case __NR_faccessat2: case __NR_fchmodat: case __NR_fchownat: // Should be called chownat ? @@ -202,7 +287,7 @@ index 27ea264070dcd..8fc2d3c354adb 100644 case __NR_newfstatat: // fstatat(). EPERM not a valid errno. #elif defined(__i386__) || defined(__arm__) || \ (defined(ARCH_CPU_MIPS_FAMILY) && defined(ARCH_CPU_32_BITS)) -@@ -241,7 +241,7 @@ bool SyscallSets::IsAllowedFileSystemAccessViaFd(int sysno) { +@@ -241,7 +241,7 @@ case __NR_oldfstat: #endif #if defined(__i386__) || defined(__x86_64__) || defined(__mips__) || \ @@ -211,7 +296,7 @@ index 27ea264070dcd..8fc2d3c354adb 100644 case __NR_sync_file_range: // EPERM not a valid errno. #elif defined(__arm__) case __NR_arm_sync_file_range: // EPERM not a valid errno. -@@ -260,7 +260,7 @@ bool SyscallSets::IsDeniedFileSystemAccessViaFd(int sysno) { +@@ -260,7 +260,7 @@ #if defined(__i386__) || defined(__arm__) case __NR_fchown32: #endif @@ -220,7 +305,7 @@ index 27ea264070dcd..8fc2d3c354adb 100644 case __NR_getdents: // EPERM not a valid errno. #endif case __NR_getdents64: // EPERM not a valid errno. -@@ -339,7 +339,7 @@ bool SyscallSets::IsProcessPrivilegeChange(int sysno) { +@@ -339,7 +339,7 @@ bool SyscallSets::IsProcessGroupOrSession(int sysno) { switch (sysno) { case __NR_setpgid: @@ -229,7 +314,7 @@ index 27ea264070dcd..8fc2d3c354adb 100644 case __NR_getpgrp: #endif case __NR_setsid: -@@ -373,7 +373,7 @@ bool SyscallSets::IsAllowedSignalHandling(int sysno) { +@@ -373,7 +373,7 @@ case __NR_rt_sigqueueinfo: case __NR_rt_sigsuspend: case __NR_rt_tgsigqueueinfo: @@ -238,7 +323,7 @@ index 27ea264070dcd..8fc2d3c354adb 100644 case __NR_signalfd: #endif case __NR_signalfd4: -@@ -397,12 +397,12 @@ bool SyscallSets::IsAllowedOperationOnFd(int sysno) { +@@ -397,12 +397,12 @@ switch (sysno) { case __NR_close: case __NR_dup: @@ -253,7 +338,7 @@ index 27ea264070dcd..8fc2d3c354adb 100644 case __NR_shutdown: #endif return true; -@@ -441,7 +441,7 @@ bool SyscallSets::IsAllowedProcessStartOrDeath(int sysno) { +@@ -441,7 +441,7 @@ return true; case __NR_clone: // Should be parameter-restricted. case __NR_setns: // Privileged. @@ -262,7 +347,7 @@ index 27ea264070dcd..8fc2d3c354adb 100644 case __NR_fork: #endif #if defined(__i386__) || defined(__x86_64__) -@@ -452,7 +452,7 @@ bool SyscallSets::IsAllowedProcessStartOrDeath(int sysno) { +@@ -452,7 +452,7 @@ #endif case __NR_set_tid_address: case __NR_unshare: @@ -271,7 +356,7 @@ index 27ea264070dcd..8fc2d3c354adb 100644 case __NR_vfork: #endif default: -@@ -477,7 +477,7 @@ bool SyscallSets::IsAllowedFutex(int sysno) { +@@ -477,7 +477,7 @@ bool SyscallSets::IsAllowedEpoll(int sysno) { switch (sysno) { @@ -280,7 +365,7 @@ index 27ea264070dcd..8fc2d3c354adb 100644 case __NR_epoll_create: case __NR_epoll_wait: #endif -@@ -499,7 +499,7 @@ bool SyscallSets::IsAllowedEpoll(int sysno) { +@@ -499,7 +499,7 @@ bool SyscallSets::IsDeniedGetOrModifySocket(int sysno) { switch (sysno) { #if defined(__x86_64__) || defined(__arm__) || defined(__mips__) || \ @@ -289,7 +374,7 @@ index 27ea264070dcd..8fc2d3c354adb 100644 case __NR_accept: case __NR_accept4: case __NR_bind: -@@ -553,7 +553,7 @@ bool SyscallSets::IsAllowedAddressSpaceAccess(int sysno) { +@@ -553,7 +553,7 @@ case __NR_mincore: case __NR_mlockall: #if defined(__i386__) || defined(__x86_64__) || defined(__mips__) || \ @@ -298,7 +383,7 @@ index 27ea264070dcd..8fc2d3c354adb 100644 case __NR_mmap: #endif #if defined(__i386__) || defined(__arm__) || \ -@@ -586,7 +586,7 @@ bool SyscallSets::IsAllowedGeneralIo(int sysno) { +@@ -586,7 +586,7 @@ (defined(ARCH_CPU_MIPS_FAMILY) && defined(ARCH_CPU_32_BITS)) case __NR__llseek: #endif @@ -307,7 +392,7 @@ index 27ea264070dcd..8fc2d3c354adb 100644 case __NR_poll: #endif case __NR_ppoll: -@@ -607,7 +607,7 @@ bool SyscallSets::IsAllowedGeneralIo(int sysno) { +@@ -607,7 +607,7 @@ case __NR_recv: #endif #if defined(__x86_64__) || defined(__arm__) || defined(__mips__) || \ @@ -316,7 +401,7 @@ index 27ea264070dcd..8fc2d3c354adb 100644 case __NR_recvfrom: // Could specify source. case __NR_recvmsg: // Could specify source. #endif -@@ -622,7 +622,7 @@ bool SyscallSets::IsAllowedGeneralIo(int sysno) { +@@ -622,7 +622,7 @@ case __NR_send: #endif #if defined(__x86_64__) || defined(__arm__) || defined(__mips__) || \ @@ -325,7 +410,7 @@ index 27ea264070dcd..8fc2d3c354adb 100644 case __NR_sendmsg: // Could specify destination. case __NR_sendto: // Could specify destination. #endif -@@ -671,7 +671,7 @@ bool SyscallSets::IsSeccomp(int sysno) { +@@ -671,7 +671,7 @@ bool SyscallSets::IsAllowedBasicScheduler(int sysno) { switch (sysno) { case __NR_sched_yield: @@ -334,7 +419,7 @@ index 27ea264070dcd..8fc2d3c354adb 100644 case __NR_pause: #endif case __NR_nanosleep: -@@ -755,7 +755,7 @@ bool SyscallSets::IsNuma(int sysno) { +@@ -755,7 +755,7 @@ case __NR_getcpu: case __NR_mbind: #if defined(__i386__) || defined(__x86_64__) || defined(__mips__) || \ @@ -343,7 +428,7 @@ index 27ea264070dcd..8fc2d3c354adb 100644 case __NR_migrate_pages: #endif case __NR_move_pages: -@@ -790,7 +790,7 @@ bool SyscallSets::IsGlobalProcessEnvironment(int sysno) { +@@ -790,7 +790,7 @@ switch (sysno) { case __NR_acct: // Privileged. #if defined(__i386__) || defined(__x86_64__) || defined(__mips__) || \ @@ -352,7 +437,7 @@ index 27ea264070dcd..8fc2d3c354adb 100644 case __NR_getrlimit: #endif #if defined(__i386__) || defined(__arm__) -@@ -825,7 +825,7 @@ bool SyscallSets::IsDebug(int sysno) { +@@ -825,7 +825,7 @@ bool SyscallSets::IsGlobalSystemStatus(int sysno) { switch (sysno) { @@ -361,7 +446,7 @@ index 27ea264070dcd..8fc2d3c354adb 100644 case __NR__sysctl: case __NR_sysfs: #endif -@@ -843,7 +843,7 @@ bool SyscallSets::IsGlobalSystemStatus(int sysno) { +@@ -843,7 +843,7 @@ bool SyscallSets::IsEventFd(int sysno) { switch (sysno) { @@ -370,47 +455,40 @@ index 27ea264070dcd..8fc2d3c354adb 100644 case __NR_eventfd: #endif case __NR_eventfd2: -@@ -895,7 +895,8 @@ bool SyscallSets::IsKeyManagement(int sysno) { +@@ -895,6 +895,7 @@ } #if defined(__x86_64__) || defined(__arm__) || defined(__aarch64__) || \ -- (defined(ARCH_CPU_MIPS_FAMILY) && defined(ARCH_CPU_64_BITS)) -+ (defined(ARCH_CPU_MIPS_FAMILY) && defined(ARCH_CPU_64_BITS)) || \ -+ defined(__riscv) ++ defined(__riscv) || \ + (defined(ARCH_CPU_MIPS_FAMILY) && defined(ARCH_CPU_64_BITS)) bool SyscallSets::IsSystemVSemaphores(int sysno) { switch (sysno) { - case __NR_semctl: -@@ -915,7 +916,8 @@ bool SyscallSets::IsSystemVSemaphores(int sysno) { +@@ -914,7 +915,7 @@ + #endif #if defined(__i386__) || defined(__x86_64__) || defined(__arm__) || \ - defined(__aarch64__) || \ -- (defined(ARCH_CPU_MIPS_FAMILY) && defined(ARCH_CPU_64_BITS)) -+ (defined(ARCH_CPU_MIPS_FAMILY) && defined(ARCH_CPU_64_BITS)) || \ -+ defined(__riscv) +- defined(__aarch64__) || \ ++ defined(__aarch64__) || defined(__riscv) || \ + (defined(ARCH_CPU_MIPS_FAMILY) && defined(ARCH_CPU_64_BITS)) // These give a lot of ambient authority and bypass the setuid sandbox. bool SyscallSets::IsSystemVSharedMemory(int sysno) { - switch (sysno) { -@@ -931,7 +933,8 @@ bool SyscallSets::IsSystemVSharedMemory(int sysno) { +@@ -931,6 +932,7 @@ #endif #if defined(__x86_64__) || defined(__arm__) || defined(__aarch64__) || \ -- (defined(ARCH_CPU_MIPS_FAMILY) && defined(ARCH_CPU_64_BITS)) -+ (defined(ARCH_CPU_MIPS_FAMILY) && defined(ARCH_CPU_64_BITS)) || \ -+ defined(__riscv) ++ defined(__riscv) || \ + (defined(ARCH_CPU_MIPS_FAMILY) && defined(ARCH_CPU_64_BITS)) bool SyscallSets::IsSystemVMessageQueue(int sysno) { switch (sysno) { - case __NR_msgctl: -@@ -962,7 +965,8 @@ bool SyscallSets::IsSystemVIpc(int sysno) { +@@ -962,6 +964,7 @@ bool SyscallSets::IsAnySystemV(int sysno) { #if defined(__x86_64__) || defined(__arm__) || defined(__aarch64__) || \ -- (defined(ARCH_CPU_MIPS_FAMILY) && defined(ARCH_CPU_64_BITS)) -+ (defined(ARCH_CPU_MIPS_FAMILY) && defined(ARCH_CPU_64_BITS)) || \ -+ defined(__riscv) ++ defined(__riscv) || \ + (defined(ARCH_CPU_MIPS_FAMILY) && defined(ARCH_CPU_64_BITS)) return IsSystemVMessageQueue(sysno) || IsSystemVSemaphores(sysno) || IsSystemVSharedMemory(sysno); - #elif defined(__i386__) || \ -@@ -999,7 +1003,7 @@ bool SyscallSets::IsAdvancedScheduler(int sysno) { +@@ -999,7 +1002,7 @@ bool SyscallSets::IsInotify(int sysno) { switch (sysno) { case __NR_inotify_add_watch: @@ -419,7 +497,7 @@ index 27ea264070dcd..8fc2d3c354adb 100644 case __NR_inotify_init: #endif case __NR_inotify_init1: -@@ -1137,7 +1141,7 @@ bool SyscallSets::IsMisc(int sysno) { +@@ -1134,7 +1137,7 @@ #if defined(__x86_64__) case __NR_tuxcall: #endif @@ -428,13 +506,14 @@ index 27ea264070dcd..8fc2d3c354adb 100644 case __NR_vserver: #endif return true; -@@ -1196,6 +1200,17 @@ bool SyscallSets::IsMipsMisc(int sysno) { +@@ -1193,6 +1196,18 @@ } #endif // defined(__mips__) +#if defined(__riscv) +bool SyscallSets::IsRiscvPrivate(int sysno) { + switch (sysno) { ++ case __NR_riscv_hwprobe: + case __NR_riscv_flush_icache: + return true; + default: @@ -447,10 +526,10 @@ index 27ea264070dcd..8fc2d3c354adb 100644 switch (sysno) { case __NR_getitimer: diff --git a/sandbox/linux/seccomp-bpf-helpers/syscall_sets.h b/sandbox/linux/seccomp-bpf-helpers/syscall_sets.h -index 9be7b03ec4377..41b3605dce15d 100644 +index 9be7b03..41b3605 100644 --- a/sandbox/linux/seccomp-bpf-helpers/syscall_sets.h +++ b/sandbox/linux/seccomp-bpf-helpers/syscall_sets.h -@@ -52,7 +52,7 @@ class SANDBOX_EXPORT SyscallSets { +@@ -52,7 +52,7 @@ #endif #if defined(__x86_64__) || defined(__arm__) || defined(__mips__) || \ @@ -459,7 +538,7 @@ index 9be7b03ec4377..41b3605dce15d 100644 static bool IsNetworkSocketInformation(int sysno); #endif -@@ -79,18 +79,21 @@ class SANDBOX_EXPORT SyscallSets { +@@ -79,18 +79,21 @@ static bool IsAsyncIo(int sysno); static bool IsKeyManagement(int sysno); #if defined(__x86_64__) || defined(__arm__) || defined(__aarch64__) || \ @@ -484,7 +563,7 @@ index 9be7b03ec4377..41b3605dce15d 100644 static bool IsSystemVMessageQueue(int sysno); #endif -@@ -117,6 +120,9 @@ class SANDBOX_EXPORT SyscallSets { +@@ -117,6 +120,9 @@ static bool IsMipsPrivate(int sysno); static bool IsMipsMisc(int sysno); #endif // defined(__mips__) @@ -495,10 +574,10 @@ index 9be7b03ec4377..41b3605dce15d 100644 }; diff --git a/sandbox/linux/seccomp-bpf/syscall.cc b/sandbox/linux/seccomp-bpf/syscall.cc -index 02cbb047c1558..57da8c1754f46 100644 +index 02cbb04..9eb97f27 100644 --- a/sandbox/linux/seccomp-bpf/syscall.cc +++ b/sandbox/linux/seccomp-bpf/syscall.cc -@@ -18,7 +18,7 @@ namespace sandbox { +@@ -18,7 +18,7 @@ namespace { #if defined(ARCH_CPU_X86_FAMILY) || defined(ARCH_CPU_ARM_FAMILY) || \ @@ -507,7 +586,7 @@ index 02cbb047c1558..57da8c1754f46 100644 // Number that's not currently used by any Linux kernel ABIs. const int kInvalidSyscallNumber = 0x351d3; #else -@@ -308,6 +308,28 @@ asm(// We need to be able to tell the kernel exactly where we made a +@@ -308,6 +308,28 @@ "2:ret\n" ".cfi_endproc\n" ".size SyscallAsm, .-SyscallAsm\n" @@ -518,16 +597,16 @@ index 02cbb047c1558..57da8c1754f46 100644 + "SyscallAsm:\n" + ".cfi_startproc\n" + "bgez a0,1f\n" -+ "la a0,2f\n" ++ "lla a0,2f\n" + "j 2f\n" + "1:mv a7, a0\n" -+ "ld a0, (t0)\n" -+ "ld a1, 8(t0)\n" -+ "ld a2, 16(t0)\n" -+ "ld a3, 24(t0)\n" -+ "ld a4, 32(t0)\n" -+ "ld a5, 40(t0)\n" -+ "ld a6, 48(t0)\n" ++ "ld a0, (a1)\n" ++ "ld a2, 16(a1)\n" ++ "ld a3, 24(a1)\n" ++ "ld a4, 32(a1)\n" ++ "ld a5, 40(a1)\n" ++ "ld a6, 48(a1)\n" ++ "ld a1, 8(a1)\n" + // Enter the kernel + "scall\n" + "2:ret\n" @@ -536,30 +615,65 @@ index 02cbb047c1558..57da8c1754f46 100644 #endif ); // asm -@@ -425,6 +447,18 @@ intptr_t Syscall::Call(int nr, +@@ -319,6 +341,10 @@ + extern "C" { + intptr_t SyscallAsm(intptr_t nr, const intptr_t args[8]); + } ++#elif defined(__riscv) ++extern "C" { ++intptr_t SyscallAsm(intptr_t nr, const intptr_t args[7]); ++} + #endif + + } // namespace +@@ -351,6 +377,10 @@ + // where that makes sense. + #if defined(__mips__) + const intptr_t args[8] = {p0, p1, p2, p3, p4, p5, p6, p7}; ++#elif defined(__riscv) ++ DCHECK_EQ(p7, 0) << " Support for syscalls with more than seven arguments " ++ "not added for this architecture"; ++ const intptr_t args[7] = {p0, p1, p2, p3, p4, p5, p6}; + #else + DCHECK_EQ(p6, 0) << " Support for syscalls with more than six arguments not " + "added for this architecture"; +@@ -425,6 +455,8 @@ ret = inout; } +#elif defined(__riscv) -+ intptr_t ret; -+ { -+ register intptr_t inout __asm__("a0") = nr; -+ register const intptr_t* data __asm__("t0") = args; -+ asm volatile("jal SyscallAsm\n" -+ : "=r"(inout) -+ : "0"(inout), "r"(data) -+ : "memory", "a1", "a2", "a3", "a4", "a5", "a6", "a7"); -+ ret = inout; -+ } -+ ++ intptr_t ret = SyscallAsm(nr, args); #else #error "Unimplemented architecture" #endif +diff --git a/sandbox/linux/seccomp-bpf/trap.cc b/sandbox/linux/seccomp-bpf/trap.cc +index d466e62..a5ed98b7 100644 +--- a/sandbox/linux/seccomp-bpf/trap.cc ++++ b/sandbox/linux/seccomp-bpf/trap.cc +@@ -216,6 +216,18 @@ + SECCOMP_PARM6(ctx), + SECCOMP_PARM7(ctx), + SECCOMP_PARM8(ctx)); ++#elif defined(__riscv) ++ // RISC-V supports up to seven arguments for syscall. ++ // However, seccomp bpf can filter only up to six arguments, so using seven ++ // arguments has sense only when using UnsafeTrap() handler. ++ rc = Syscall::Call(SECCOMP_SYSCALL(ctx), ++ SECCOMP_PARM1(ctx), ++ SECCOMP_PARM2(ctx), ++ SECCOMP_PARM3(ctx), ++ SECCOMP_PARM4(ctx), ++ SECCOMP_PARM5(ctx), ++ SECCOMP_PARM6(ctx), ++ SECCOMP_PARM7(ctx)); + #else + rc = Syscall::Call(SECCOMP_SYSCALL(ctx), + SECCOMP_PARM1(ctx), diff --git a/sandbox/linux/services/credentials.cc b/sandbox/linux/services/credentials.cc -index e284c59d239ae..5b5346a2778bc 100644 +index a33597c..d4180ac 100644 --- a/sandbox/linux/services/credentials.cc +++ b/sandbox/linux/services/credentials.cc -@@ -80,7 +80,7 @@ bool ChrootToSafeEmptyDir() { +@@ -80,7 +80,7 @@ pid_t pid = -1; alignas(16) char stack_buf[PTHREAD_STACK_MIN]; #if defined(ARCH_CPU_X86_FAMILY) || defined(ARCH_CPU_ARM_FAMILY) || \ @@ -569,10 +683,10 @@ index e284c59d239ae..5b5346a2778bc 100644 void* stack = stack_buf + sizeof(stack_buf); #else diff --git a/sandbox/linux/services/syscall_wrappers.cc b/sandbox/linux/services/syscall_wrappers.cc -index 7650e983b3802..bb4bd33236381 100644 +index 7650e98..bb4bd332 100644 --- a/sandbox/linux/services/syscall_wrappers.cc +++ b/sandbox/linux/services/syscall_wrappers.cc -@@ -61,7 +61,7 @@ long sys_clone(unsigned long flags, +@@ -61,7 +61,7 @@ #if defined(ARCH_CPU_X86_64) return syscall(__NR_clone, flags, child_stack, ptid, ctid, tls); #elif defined(ARCH_CPU_X86) || defined(ARCH_CPU_ARM_FAMILY) || \ @@ -582,10 +696,10 @@ index 7650e983b3802..bb4bd33236381 100644 return syscall(__NR_clone, flags, child_stack, ptid, tls, ctid); #endif diff --git a/sandbox/linux/syscall_broker/broker_process.cc b/sandbox/linux/syscall_broker/broker_process.cc -index a55b548a8ec75..39279b947828e 100644 +index c6c1117..779065a 100644 --- a/sandbox/linux/syscall_broker/broker_process.cc +++ b/sandbox/linux/syscall_broker/broker_process.cc -@@ -122,44 +122,46 @@ bool BrokerProcess::IsSyscallBrokerable(int sysno, bool fast_check) const { +@@ -122,44 +122,46 @@ // and are default disabled in Android. So, we should refuse to broker them // to be consistent with the platform's restrictions. switch (sysno) { @@ -639,7 +753,7 @@ index a55b548a8ec75..39279b947828e 100644 case __NR_stat: case __NR_lstat: #endif -@@ -169,7 +171,7 @@ bool BrokerProcess::IsSyscallBrokerable(int sysno, bool fast_check) const { +@@ -169,7 +171,7 @@ #if defined(__NR_fstatat64) case __NR_fstatat64: #endif @@ -648,7 +762,7 @@ index a55b548a8ec75..39279b947828e 100644 case __NR_newfstatat: #endif return !fast_check || policy_->allowed_command_set.test(COMMAND_STAT); -@@ -184,7 +186,7 @@ bool BrokerProcess::IsSyscallBrokerable(int sysno, bool fast_check) const { +@@ -184,7 +186,7 @@ return !fast_check || policy_->allowed_command_set.test(COMMAND_STAT); #endif @@ -658,7 +772,7 @@ index a55b548a8ec75..39279b947828e 100644 return !fast_check || policy_->allowed_command_set.test(COMMAND_UNLINK); #endif diff --git a/sandbox/linux/system_headers/linux_seccomp.h b/sandbox/linux/system_headers/linux_seccomp.h -index 8690a96eb01b1..dec2afc744985 100644 +index 8690a96..dec2afc7 100644 --- a/sandbox/linux/system_headers/linux_seccomp.h +++ b/sandbox/linux/system_headers/linux_seccomp.h @@ -39,6 +39,10 @@ @@ -684,7 +798,7 @@ index 8690a96eb01b1..dec2afc744985 100644 #ifndef PR_SET_SECCOMP #define PR_SET_SECCOMP 22 diff --git a/sandbox/linux/system_headers/linux_signal.h b/sandbox/linux/system_headers/linux_signal.h -index 69ccaf1081578..2ffe30973cd32 100644 +index 69ccaf1..2ffe3097 100644 --- a/sandbox/linux/system_headers/linux_signal.h +++ b/sandbox/linux/system_headers/linux_signal.h @@ -13,7 +13,7 @@ @@ -697,10 +811,10 @@ index 69ccaf1081578..2ffe30973cd32 100644 #define LINUX_SIGHUP 1 #define LINUX_SIGINT 2 diff --git a/sandbox/linux/system_headers/linux_stat.h b/sandbox/linux/system_headers/linux_stat.h -index 3aae8cbced775..74977adb53caf 100644 +index 3aae8cb..74977adb 100644 --- a/sandbox/linux/system_headers/linux_stat.h +++ b/sandbox/linux/system_headers/linux_stat.h -@@ -150,7 +150,7 @@ struct kernel_stat { +@@ -150,7 +150,7 @@ int st_blocks; int st_pad4[14]; }; @@ -710,7 +824,7 @@ index 3aae8cbced775..74977adb53caf 100644 unsigned long st_dev; unsigned long st_ino; diff --git a/sandbox/linux/system_headers/linux_syscalls.h b/sandbox/linux/system_headers/linux_syscalls.h -index 438147b4018b6..d6de8c1cb2340 100644 +index 438147b..d6de8c1 100644 --- a/sandbox/linux/system_headers/linux_syscalls.h +++ b/sandbox/linux/system_headers/linux_syscalls.h @@ -35,5 +35,9 @@ @@ -725,10 +839,10 @@ index 438147b4018b6..d6de8c1cb2340 100644 diff --git a/sandbox/linux/system_headers/riscv64_linux_syscalls.h b/sandbox/linux/system_headers/riscv64_linux_syscalls.h new file mode 100644 -index 0000000000000..822f660dc5086 +index 0000000..50e043d0 --- /dev/null +++ b/sandbox/linux/system_headers/riscv64_linux_syscalls.h -@@ -0,0 +1,1222 @@ +@@ -0,0 +1,1226 @@ +// Copyright 2014 The Chromium Authors +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. @@ -1714,6 +1828,10 @@ index 0000000000000..822f660dc5086 +#define __NR_recvmmsg 243 +#endif + ++#if !defined(__NR_riscv_hwprobe) ++#define __NR_riscv_hwprobe 258 ++#endif ++ +#if !defined(__NR_riscv_flush_icache) +#define __NR_riscv_flush_icache 259 +#endif @@ -1951,11 +2069,24 @@ index 0000000000000..822f660dc5086 +#endif + +#endif // SANDBOX_LINUX_SYSTEM_HEADERS_RISCV64_LINUX_SYSCALLS_H_ +diff --git a/sandbox/policy/linux/bpf_cdm_policy_linux.cc b/sandbox/policy/linux/bpf_cdm_policy_linux.cc +index 433720f..482ce1d 100644 +--- a/sandbox/policy/linux/bpf_cdm_policy_linux.cc ++++ b/sandbox/policy/linux/bpf_cdm_policy_linux.cc +@@ -33,7 +33,7 @@ + case __NR_ftruncate: + case __NR_fallocate: + #if defined(__i386__) || defined(__x86_64__) || defined(__mips__) || \ +- defined(__aarch64__) ++ defined(__aarch64__) || defined(__riscv) + case __NR_getrlimit: + #endif + #if defined(__i386__) || defined(__arm__) diff --git a/sandbox/policy/linux/bpf_cros_amd_gpu_policy_linux.cc b/sandbox/policy/linux/bpf_cros_amd_gpu_policy_linux.cc -index df2567f74981f..41e158a292369 100644 +index df2567f..41e158a 100644 --- a/sandbox/policy/linux/bpf_cros_amd_gpu_policy_linux.cc +++ b/sandbox/policy/linux/bpf_cros_amd_gpu_policy_linux.cc -@@ -38,7 +38,7 @@ ResultExpr CrosAmdGpuProcessPolicy::EvaluateSyscall(int sysno) const { +@@ -38,7 +38,7 @@ case __NR_sched_setscheduler: case __NR_sysinfo: case __NR_uname: @@ -1965,10 +2096,10 @@ index df2567f74981f..41e158a292369 100644 case __NR_stat: #endif diff --git a/sandbox/policy/linux/bpf_gpu_policy_linux.cc b/sandbox/policy/linux/bpf_gpu_policy_linux.cc -index 35ccbb7a7f82b..65a0587e25af5 100644 +index 35ccbb7..65a0587 100644 --- a/sandbox/policy/linux/bpf_gpu_policy_linux.cc +++ b/sandbox/policy/linux/bpf_gpu_policy_linux.cc -@@ -73,7 +73,7 @@ ResultExpr GpuProcessPolicy::EvaluateSyscall(int sysno) const { +@@ -73,7 +73,7 @@ (defined(ARCH_CPU_MIPS_FAMILY) && defined(ARCH_CPU_32_BITS)) case __NR_ftruncate64: #endif @@ -1978,10 +2109,10 @@ index 35ccbb7a7f82b..65a0587e25af5 100644 #endif case __NR_getdents64: diff --git a/sandbox/policy/linux/bpf_network_policy_linux.cc b/sandbox/policy/linux/bpf_network_policy_linux.cc -index 98e738a7e38be..b72914eafc775 100644 +index e5168ff0..3e6f821 100644 --- a/sandbox/policy/linux/bpf_network_policy_linux.cc +++ b/sandbox/policy/linux/bpf_network_policy_linux.cc -@@ -255,7 +255,7 @@ ResultExpr NetworkProcessPolicy::EvaluateSyscall(int sysno) const { +@@ -260,7 +260,7 @@ case __NR_fdatasync: case __NR_fsync: case __NR_mremap: @@ -1990,6 +2121,56 @@ index 98e738a7e38be..b72914eafc775 100644 case __NR_getdents: #endif case __NR_getdents64: --- -2.41.0 +diff --git a/sandbox/policy/linux/bpf_print_compositor_policy_linux.cc b/sandbox/policy/linux/bpf_print_compositor_policy_linux.cc +index bff338a..36acee52 100644 +--- a/sandbox/policy/linux/bpf_print_compositor_policy_linux.cc ++++ b/sandbox/policy/linux/bpf_print_compositor_policy_linux.cc +@@ -33,7 +33,7 @@ + case __NR_fdatasync: + case __NR_fsync: + #if defined(__i386__) || defined(__x86_64__) || defined(__mips__) || \ +- defined(__aarch64__) ++ defined(__aarch64__) || defined (__riscv) + case __NR_getrlimit: + #endif + #if defined(__i386__) || defined(__arm__) +diff --git a/sandbox/policy/linux/bpf_renderer_policy_linux.cc b/sandbox/policy/linux/bpf_renderer_policy_linux.cc +index 0555a85..8f8907f 100644 +--- a/sandbox/policy/linux/bpf_renderer_policy_linux.cc ++++ b/sandbox/policy/linux/bpf_renderer_policy_linux.cc +@@ -82,7 +82,7 @@ + case __NR_ftruncate64: + #endif + #if defined(__i386__) || defined(__x86_64__) || defined(__mips__) || \ +- defined(__aarch64__) ++ defined(__aarch64__) || defined(__riscv) + case __NR_getrlimit: + case __NR_setrlimit: + // We allow setrlimit to dynamically adjust the address space limit as +diff --git a/sandbox/policy/linux/bpf_service_policy_linux.cc b/sandbox/policy/linux/bpf_service_policy_linux.cc +index 32754e6..3f42eabb 100644 +--- a/sandbox/policy/linux/bpf_service_policy_linux.cc ++++ b/sandbox/policy/linux/bpf_service_policy_linux.cc +@@ -26,7 +26,7 @@ + return RestrictIoctl(); + // Allow the system calls below. + #if defined(__i386__) || defined(__x86_64__) || defined(__mips__) || \ +- defined(__aarch64__) ++ defined(__aarch64__) || defined(__riscv) + case __NR_getrlimit: + #endif + #if defined(__i386__) || defined(__arm__) +diff --git a/sandbox/policy/linux/bpf_utility_policy_linux.cc b/sandbox/policy/linux/bpf_utility_policy_linux.cc +index e299ce99..ed110689 100644 +--- a/sandbox/policy/linux/bpf_utility_policy_linux.cc ++++ b/sandbox/policy/linux/bpf_utility_policy_linux.cc +@@ -34,7 +34,7 @@ + case __NR_fdatasync: + case __NR_fsync: + #if defined(__i386__) || defined(__x86_64__) || defined(__mips__) || \ +- defined(__aarch64__) ++ defined(__aarch64__) || defined(__riscv) + case __NR_getrlimit: + #endif + #if defined(__i386__) || defined(__arm__) diff --git a/www-client/chromium/files/09riscv.patch b/www-client/chromium/files/riscv.patch index f72a56c..f72a56c 100644 --- a/www-client/chromium/files/09riscv.patch +++ b/www-client/chromium/files/riscv.patch diff --git a/www-client/chromium/files/00swiftshader-MCDissassembler.patch b/www-client/chromium/files/swiftshader-MCDissassembler.patch index 59a06a1..59a06a1 100644 --- a/www-client/chromium/files/00swiftshader-MCDissassembler.patch +++ b/www-client/chromium/files/swiftshader-MCDissassembler.patch diff --git a/www-client/chromium/files/00swiftshader-use-llvm16.patch b/www-client/chromium/files/swiftshader-use-llvm16.patch index 107990b..107990b 100644 --- a/www-client/chromium/files/00swiftshader-use-llvm16.patch +++ b/www-client/chromium/files/swiftshader-use-llvm16.patch |