diff --git a/meta-chromium/recipes-browser/chromium/chromium-gn.inc b/meta-chromium/recipes-browser/chromium/chromium-gn.inc index 98716ad3a..f6ab2a839 100644 --- a/meta-chromium/recipes-browser/chromium/chromium-gn.inc +++ b/meta-chromium/recipes-browser/chromium/chromium-gn.inc @@ -25,12 +25,10 @@ SRC_URI += "\ file://0008-Use-the-correct-path-to-libclang_rt.builtins.a.patch \ file://0009-Adjust-the-Rust-build-to-our-needs.patch \ file://0010-Don-t-require-profiler_builtins.rlib.patch \ - file://0011-Disable-crabbyavif-to-fix-build-errors.patch \ - file://0012-Revert-Allow-and-use-std-hardware_destructive_interf.patch \ - file://0013-Revert-Set-Rust-symbol-visibility-to-hidden-when-C-s.patch \ - file://0014-pdfium-Fix-missing-PDFiumAPIStringBufferAdapter-temp.patch \ - file://0015-Revert-Connect-the-Rust-log-crate-to-the-base-loggin.patch \ + file://0011-fix-check_version-Only-compare-node.js-major-version.patch \ + file://0012-chromium-fix-v4l2-compiler-error-on-arm.patch \ " + # ARM/AArch64-specific patches. SRC_URI:append:aarch64 = "${@bb.utils.contains('TUNE_FEATURES', 'crypto', '', ' file://arm/0001-Fix-AES-crypto-SIGILL-on-rpi4-64.patch', d)}" @@ -112,7 +110,7 @@ BUILD_CC:toolchain-clang = "clang" BUILD_CXX:toolchain-clang = "clang++" BUILD_LD:toolchain-clang = "clang" -PACKAGECONFIG ??= "upower use-egl" +PACKAGECONFIG ??= "upower use-egl use-v4l2" # this makes sure the dependencies for the EGL mode are present; otherwise, the configure scripts # automatically and silently fall back to GLX @@ -124,10 +122,10 @@ PACKAGECONFIG[use-egl] = ",,virtual/egl virtual/libgles2" # be necessary but are OK to add). PACKAGECONFIG[component-build] = "" -# Starting with M61, Chromium defaults to building with its own copy of libc++ -# instead of the system's libstdc++. Add a knob to control this behavior -# https://groups.google.com/a/chromium.org/d/msg/chromium-packagers/8aYO3me2SCE/SZ8pJXhZAwAJ -PACKAGECONFIG[custom-libcxx] = "use_custom_libcxx=true,use_custom_libcxx=false,," +# As of Chromium 138, libc++ is required unconditionally. +# https://docs.google.com/document/d/193ig0qeM23rK1yH6bW14O3zIgVztyKaY4R1XRwgmUFk/edit?usp=sharing +# Force use_custom_libcxx=true as Chromium 138+ requires libc++ +GN_ARGS += "use_custom_libcxx=true" PACKAGECONFIG[cups] = "use_cups=true,use_cups=false,cups" PACKAGECONFIG[gtk4] = "" @@ -146,6 +144,10 @@ PACKAGECONFIG[upower] = ",,,upower" # but remember to also use proprietary codecs so that H.264 is supported. Also note # that not all the hardware configs might be supported. PACKAGECONFIG[use-vaapi] = "use_vaapi=true use_libgav1_parser=true,use_vaapi=false,libva" +# Enable stateless V4L2 M2M video decoding support. +# This requires 'proprietary-codecs' PACKAGECONFIG +# to decode h264 streams on the V4L2 M2M device. +PACKAGECONFIG[use-v4l2] = "use_v4l2_codec=true,use_v4l2_codec=false" # Base GN arguments, mostly related to features we want to enable or disable. GN_ARGS = " \ @@ -203,6 +205,13 @@ DEBUG_FLAGS:remove:x86 = "-g" DEBUG_FLAGS:append:x86 = "-g1" GN_ARGS += "symbol_level=0" +# For ARM builds, completely remove debug flags that cause binary size issues +# This prevents the "output file too large" linker error on ARM32 +CFLAGS:remove:arm = "-g" +CXXFLAGS:remove:arm = "-g" +TARGET_CFLAGS:remove:arm = "-g" +TARGET_CXXFLAGS:remove:arm = "-g" + # As of Chromium 62.0.3202.94 and Yocto Rocko (GCC 7, binutils 2.29), passing # -g to the compiler results in many linker errors on aarch64, such as: # obj/third_party/WebKit/Source/modules/payments/libpayments.a(PaymentEventDataConversion.o)(.debug_loc+0x4e25): error: relocation overflow in R_AARCH64_ABS32 @@ -255,6 +264,10 @@ GN_ARGS += "disable_fieldtrial_testing_config=true" # See https://crrev.com/c/2424669 GN_ARGS += "chrome_pgo_phase=0" +# Disable passing --warning-suppression-mappings= flag to clang. +# This feature is available on Clang21+ +GN_ARGS += "clang_warning_suppression_file=""" + # API keys for accessing Google services. By default, we use an invalid key # only to prevent the "you are missing an API key" infobar from being shown on # startup. @@ -274,6 +287,9 @@ GN_ARGS += ' \ BUILD_CPPFLAGS:append:runtime-llvm = " -isysroot=${STAGING_DIR_NATIVE} -stdlib=libc++" # Use libgcc for native parts BUILD_LDFLAGS:append:runtime-llvm = " -rtlib=libgcc -unwindlib=libgcc -stdlib=libc++ -lc++abi -rpath ${STAGING_LIBDIR_NATIVE}" +LDFLAGS:append:runtime-llvm = " --target=${TARGET_SYS}" +CXXFLAGS:append:runtime-llvm = " --target=${TARGET_SYS} -nostdlib++" +CFLAGS:append:runtime-llvm = " --target=${TARGET_SYS}" # Toolchains we will use for the build. We need to point to the toolchain file # we've created, set the right target architecture and make sure we are not @@ -341,15 +357,16 @@ ARM_VERSION:armv6 = "6" # overriding what GN wants TUNE_CCARGS:remove = "-mthumb" +# Linking rust with partitionalloc is problematic in arm32 GN_ARGS:append:arm = ' \ arm_float_abi="${ARM_FLOAT_ABI}" \ arm_fpu="${ARM_FPU}" \ arm_tune="${ARM_TUNE}" \ arm_version=${ARM_VERSION} \ + use_partition_alloc_as_malloc=false \ + enable_backup_ref_ptr_support=false \ ' -# tcmalloc's atomicops-internals-arm-v6plus.h uses the "dmb" instruction that -# is not available on (some?) ARMv6 models, which causes the build to fail. -GN_ARGS:append:armv6 = ' use_partition_alloc_as_malloc=false enable_backup_ref_ptr_support=false' + # The WebRTC code fails to build on ARMv6 when NEON is enabled. # https://bugs.chromium.org/p/webrtc/issues/detail?id=6574 GN_ARGS:append:armv6 = ' arm_use_neon=false' @@ -363,6 +380,7 @@ CHROMIUM_EXTRA_ARGS ?= " \ ${@bb.utils.contains('PACKAGECONFIG', 'use-egl', '--use-angle=gles-egl', '', d)} \ ${@bb.utils.contains('PACKAGECONFIG', 'kiosk-mode', '--kiosk --no-first-run --incognito', '', d)} \ ${@bb.utils.contains('PACKAGECONFIG', 'gtk4', '--gtk-version=4', '', d)} \ + ${@bb.utils.contains('PACKAGECONFIG', 'use-v4l2', '--ozone-platform-hint=wayland --enable-features=AcceleratedVideoDecoder,AcceleratedVideoDecodeLinuxGL,AcceleratedVideoDecodeLinuxZeroCopyGL', '', d)} \ " # V8's JIT infrastructure requires binaries such as mksnapshot and @@ -420,6 +438,7 @@ python do_write_toolchain_file () { toolchain_file = os.path.join(toolchain_dir, "BUILD.gn") write_toolchain_file(d, toolchain_file) } + addtask write_toolchain_file after do_patch before do_configure do_add_nodejs_symlink () { @@ -441,16 +460,34 @@ do_add_clang_latest () { # directory that is a copy of /usr/lib/clang/$CLANG_VERSION. Chromium # manually links against libclang_rt.builtins.a and uses the `clang_version` # GN variable to find it. This allows us to set it to the same value for all - # Yocto releases. + # Yocto releases. Also copy headers so bindgen can find system headers. cd "${STAGING_LIBDIR_NATIVE}/clang" rm -rf latest - # find the directory containing the library + + # Find a directory with runtime libraries and copy it as base for dir in *; do - if [ -n "$(find $dir -name 'libclang_rt.builtins*')" ] ; then + if [ -d "$dir" ] && [ -n "$(find $dir -name 'libclang_rt.builtins*' 2>/dev/null)" ]; then + echo "Copying clang directory $dir to latest (runtime libraries)" cp -r "$dir" latest break fi done + + # Find and copy headers from any versioned directory to ensure bindgen can find them + headers_copied=false + for dir in *; do + if [ -d "$dir/include" ]; then + echo "Found headers in $dir/include, copying to latest/include" + mkdir -p latest/include + cp -r "$dir/include/"* latest/include/ + headers_copied=true + break + fi + done + + if [ "$headers_copied" = false ]; then + echo "Warning: No Clang headers found in any versioned directories" + fi } addtask add_clang_latest after do_configure before do_compile @@ -478,6 +515,12 @@ addtask copy_target_rustlibs after do_configure before do_compile do_configure() { cd ${S} python3 ./build/linux/unbundle/replace_gn_files.py --system-libraries ${GN_UNBUNDLE_LIBS} + + # Add Rust-style target triples (converted by Yocto's rust-common.bbclass) + grep -qxF "${RUST_TARGET_SYS}" ${S}/build/rust/known-target-triples.txt || echo "${RUST_TARGET_SYS}" >> ${S}/build/rust/known-target-triples.txt + grep -qxF "${RUST_HOST_SYS}" ${S}/build/rust/known-target-triples.txt || echo "${RUST_HOST_SYS}" >> ${S}/build/rust/known-target-triples.txt + grep -qxF "${RUST_BUILD_SYS}" ${S}/build/rust/known-target-triples.txt || echo "${RUST_BUILD_SYS}" >> ${S}/build/rust/known-target-triples.txt + gn gen --args='${GN_ARGS}' "${OUTPUT_DIR}" } diff --git a/meta-chromium/recipes-browser/chromium/chromium-ozone-wayland_132.0.6834.83.bb b/meta-chromium/recipes-browser/chromium/chromium-ozone-wayland_138.0.7204.157.bb similarity index 100% rename from meta-chromium/recipes-browser/chromium/chromium-ozone-wayland_132.0.6834.83.bb rename to meta-chromium/recipes-browser/chromium/chromium-ozone-wayland_138.0.7204.157.bb diff --git a/meta-chromium/recipes-browser/chromium/chromium-x11_132.0.6834.83.bb b/meta-chromium/recipes-browser/chromium/chromium-x11_138.0.7204.157.bb similarity index 100% rename from meta-chromium/recipes-browser/chromium/chromium-x11_132.0.6834.83.bb rename to meta-chromium/recipes-browser/chromium/chromium-x11_138.0.7204.157.bb diff --git a/meta-chromium/recipes-browser/chromium/chromium.inc b/meta-chromium/recipes-browser/chromium/chromium.inc index 4b003cd4a..db79f56cb 100644 --- a/meta-chromium/recipes-browser/chromium/chromium.inc +++ b/meta-chromium/recipes-browser/chromium/chromium.inc @@ -4,8 +4,7 @@ HOMEPAGE = "https://www.chromium.org/Home" CVE_PRODUCT = "chromium:chromium google:chrome" SRC_URI = "https://commondatastorage.googleapis.com/chromium-browser-official/chromium-${PV}.tar.xz" -SRC_URI[sha256sum] = "f98315eacbf3be106feca37f8243d8c4092d4fd832c918aa36dc229eb6ab39e0" - +SRC_URI[sha256sum] = "835dfd3228f6adb2a8c78e296c7d4981aee35daee401a2fe1493b4657d736d25" S = "${WORKDIR}/chromium-${PV}" # GCC is not tested or officially supported upstream, and supporting it here @@ -70,14 +69,14 @@ LIC_FILES_CHKSUM = "\ file://${S}/base/third_party/superfasthash/LICENSE;md5=c66981f8ad23c9f279a5b9e07385128c \ file://${S}/base/third_party/symbolize/LICENSE;md5=17ae3b22fe8fa438966625593e2eea85 \ file://${S}/base/third_party/xdg_user_dirs/LICENSE;md5=d998f250c491c329a8254dd1ca62c647 \ - file://${S}/chrome/browser/resources/chromeos/accessibility/chromevox/third_party/tamachiyomi/LICENSE;md5=15772cfcf7016e701ce54554516c0688 \ + file://${S}/chrome/browser/resources/chromeos/accessibility/chromevox/mv2/third_party/tamachiyomi/LICENSE;md5=15772cfcf7016e701ce54554516c0688 \ + file://${S}/chrome/browser/resources/chromeos/accessibility/chromevox/mv3/third_party/tamachiyomi/LICENSE;md5=15772cfcf7016e701ce54554516c0688 \ file://${S}/chrome/installer/mac/third_party/bsdiff/LICENSE;md5=0dbe7a50f028269750631fcbded3846a \ file://${S}/chrome/installer/mac/third_party/xz/LICENSE;md5=84982e6bf3ed99ef2647e48626ffa984 \ file://${S}/chrome/third_party/mozilla_security_manager/LICENSE;md5=0c259b853bbf067b361100ce560adce7 \ file://${S}/ios/third_party/blink/LICENSE;md5=9fdb47308c4e0a2b6d07c5af39e5da1a \ file://${S}/ios/third_party/lottie/LICENSE;md5=1e714768add1e7fdb1288bac703bad06 \ file://${S}/ios/third_party/material_components_ios/LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57 \ - file://${S}/ios/third_party/material_font_disk_loader_ios/LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57 \ file://${S}/ios/third_party/material_internationalization_ios/LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57 \ file://${S}/ios/third_party/material_roboto_font_loader_ios/LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57 \ file://${S}/ios/third_party/material_sprited_animation_view_ios/LICENSE;md5=175792518e4ac015ab6696d16c4f607e \ @@ -86,97 +85,242 @@ LIC_FILES_CHKSUM = "\ file://${S}/ios/third_party/motion_interchange_objc/LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57 \ file://${S}/ios/third_party/motion_transitioning_objc/LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57 \ file://${S}/native_client_sdk/src/libraries/third_party/newlib-extras/README;md5=e944d73ca3817b7ca8656eafb9497fed \ + file://${S}/net/third_party/mozilla_security_manager/LICENSE;md5=f19cdef64a433efe7fd2ddbfc3a19313 \ file://${S}/net/third_party/mozilla_win/LICENSE;md5=9b13a17f35cae227ee726ee0108d72a2 \ file://${S}/net/third_party/nss/LICENSE;md5=3b1e88e1b9c0b5a4b2881d46cce06a18 \ file://${S}/net/third_party/quiche/src/LICENSE;md5=0fca02217a5d49a14dfe2d11837bb34d \ file://${S}/net/third_party/uri_template/LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57 \ file://${S}/third_party/abseil-cpp/LICENSE;md5=df52c6edb7adc22e533b2bacc3bd3915 \ - file://${S}/third_party/accessibility-audit/LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57 \ + file://${S}/third_party/android_deps/autorolled/committed/libs/com_google_android_datatransport_transport_api/LICENSE;md5=7f7d74108ee1b7a743cca7d9a86784d6 \ + file://${S}/third_party/android_deps/autorolled/committed/libs/com_google_android_datatransport_transport_backend_cct/LICENSE;md5=7f7d74108ee1b7a743cca7d9a86784d6 \ + file://${S}/third_party/android_deps/autorolled/committed/libs/com_google_android_datatransport_transport_runtime/LICENSE;md5=54d2f6e66dae1f9e4dbf3cb3cc197631 \ + file://${S}/third_party/android_deps/autorolled/committed/libs/com_google_android_gms_play_services_auth/LICENSE;md5=e207fc5a134660990a7068d5a02c7ea8 \ + file://${S}/third_party/android_deps/autorolled/committed/libs/com_google_android_gms_play_services_auth_api_phone/LICENSE;md5=4a37c94d22ef29d62102bef4fc7bd8b0 \ + file://${S}/third_party/android_deps/autorolled/committed/libs/com_google_android_gms_play_services_auth_base/LICENSE;md5=8b3fee5c5451b70decc3ea70f7bc0024 \ + file://${S}/third_party/android_deps/autorolled/committed/libs/com_google_android_gms_play_services_auth_blockstore/LICENSE;md5=fff98c651a1ae8a04462a12f8ea1f7a4 \ + file://${S}/third_party/android_deps/autorolled/committed/libs/com_google_android_gms_play_services_base/LICENSE;md5=4a37c94d22ef29d62102bef4fc7bd8b0 \ + file://${S}/third_party/android_deps/autorolled/committed/libs/com_google_android_gms_play_services_basement/LICENSE;md5=4a37c94d22ef29d62102bef4fc7bd8b0 \ + file://${S}/third_party/android_deps/autorolled/committed/libs/com_google_android_gms_play_services_cast/LICENSE;md5=57bc9b01373a90210affff003e590c19 \ + file://${S}/third_party/android_deps/autorolled/committed/libs/com_google_android_gms_play_services_cast_framework/LICENSE;md5=6e5955fc74e2abf3e5ca0bcb3878f837 \ + file://${S}/third_party/android_deps/autorolled/committed/libs/com_google_android_gms_play_services_clearcut/LICENSE;md5=32c019d8c1f8222a8aad9c3e1f1d2d10 \ + file://${S}/third_party/android_deps/autorolled/committed/libs/com_google_android_gms_play_services_fido/LICENSE;md5=0b31499076a79957f503e7861250586c \ + file://${S}/third_party/android_deps/autorolled/committed/libs/com_google_android_gms_play_services_flags/LICENSE;md5=5c9317538bd492b4fd01eec9d6972640 \ + file://${S}/third_party/android_deps/autorolled/committed/libs/com_google_android_gms_play_services_gcm/LICENSE;md5=92b728c587a67a1b9577e9ca141ca520 \ + file://${S}/third_party/android_deps/autorolled/committed/libs/com_google_android_gms_play_services_identity_credentials/LICENSE;md5=4a37c94d22ef29d62102bef4fc7bd8b0 \ + file://${S}/third_party/android_deps/autorolled/committed/libs/com_google_android_gms_play_services_iid/LICENSE;md5=05fc50851d6d550ef2bb400b326353f0 \ + file://${S}/third_party/android_deps/autorolled/committed/libs/com_google_android_gms_play_services_instantapps/LICENSE;md5=cd033bdb088af16ecdbcd95bd5562a30 \ + file://${S}/third_party/android_deps/autorolled/committed/libs/com_google_android_gms_play_services_location/LICENSE;md5=18ad89b4a01838496ae844c2b9bd2a7f \ + file://${S}/third_party/android_deps/autorolled/committed/libs/com_google_android_gms_play_services_phenotype/LICENSE;md5=32c019d8c1f8222a8aad9c3e1f1d2d10 \ + file://${S}/third_party/android_deps/autorolled/committed/libs/com_google_android_gms_play_services_stats/LICENSE;md5=5c9317538bd492b4fd01eec9d6972640 \ + file://${S}/third_party/android_deps/autorolled/committed/libs/com_google_android_gms_play_services_tasks/LICENSE;md5=4a37c94d22ef29d62102bef4fc7bd8b0 \ + file://${S}/third_party/android_deps/autorolled/committed/libs/com_google_android_gms_play_services_vision/LICENSE;md5=d332b0f8bf5e67cef70541572ba69b61 \ + file://${S}/third_party/android_deps/autorolled/committed/libs/com_google_android_gms_play_services_vision_common/LICENSE;md5=d332b0f8bf5e67cef70541572ba69b61 \ + file://${S}/third_party/android_deps/autorolled/committed/libs/com_google_android_libraries_identity_googleid_googleid/LICENSE;md5=498e555b4ebef5399d944fb662c61913 \ + file://${S}/third_party/android_deps/autorolled/committed/libs/com_google_android_material_material/LICENSE;md5=7f7d74108ee1b7a743cca7d9a86784d6 \ + file://${S}/third_party/android_deps/autorolled/committed/libs/com_google_android_play_core_common/LICENSE;md5=73c6700ef062ad41c3d27cab65d0c1e2 \ + file://${S}/third_party/android_deps/autorolled/committed/libs/com_google_android_play_feature_delivery/LICENSE;md5=014a1ef6f09b1a5ac887d86d5f18918d \ + file://${S}/third_party/android_deps/autorolled/committed/libs/com_google_auto_service_auto_service_annotations/LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57 \ + file://${S}/third_party/android_deps/autorolled/committed/libs/com_google_code_findbugs_jsr305/LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57 \ + file://${S}/third_party/android_deps/autorolled/committed/libs/com_google_errorprone_error_prone_annotations/LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57 \ + file://${S}/third_party/android_deps/autorolled/committed/libs/com_google_firebase_firebase_encoders/LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57 \ + file://${S}/third_party/android_deps/autorolled/committed/libs/com_google_firebase_firebase_encoders_json/LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57 \ + file://${S}/third_party/android_deps/autorolled/committed/libs/com_google_firebase_firebase_encoders_proto/LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57 \ + file://${S}/third_party/android_deps/autorolled/committed/libs/com_google_guava_failureaccess/LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57 \ + file://${S}/third_party/android_deps/autorolled/committed/libs/com_google_guava_guava/LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57 \ + file://${S}/third_party/android_deps/autorolled/committed/libs/com_google_j2objc_j2objc_annotations/LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57 \ + file://${S}/third_party/android_deps/autorolled/committed/libs/com_google_protobuf_protobuf_javalite/LICENSE;md5=37b5762e07f0af8c74ce80a8bda4266b \ + file://${S}/third_party/android_deps/autorolled/committed/libs/com_squareup_okio_okio_jvm/LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57 \ + file://${S}/third_party/android_deps/autorolled/committed/libs/javax_inject_javax_inject/LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57 \ + file://${S}/third_party/android_deps/autorolled/committed/libs/org_checkerframework_checker_qual/LICENSE;md5=f32f668c1f4eea36fb53fc4cc7d96385 \ + file://${S}/third_party/android_deps/autorolled/committed/libs/org_jetbrains_kotlinx_kotlinx_coroutines_android/LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57 \ + file://${S}/third_party/android_deps/autorolled/committed/libs/org_jetbrains_kotlinx_kotlinx_coroutines_core_jvm/LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57 \ + file://${S}/third_party/android_deps/autorolled/committed/libs/org_jetbrains_kotlinx_kotlinx_coroutines_play_services/LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57 \ + file://${S}/third_party/android_deps/autorolled/committed/libs/org_jetbrains_kotlinx_kotlinx_serialization_core_jvm/LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57 \ + file://${S}/third_party/android_deps/autorolled/committed/libs/org_jspecify_jspecify/LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57 \ file://${S}/third_party/android_deps/libs/com_android_support_support_annotations/LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57 \ - file://${S}/third_party/android_deps/libs/com_google_android_annotations/LICENSE;md5=7f7d74108ee1b7a743cca7d9a86784d6 \ - file://${S}/third_party/android_deps/libs/com_google_android_datatransport_transport_api/LICENSE;md5=7f7d74108ee1b7a743cca7d9a86784d6 \ - file://${S}/third_party/android_deps/libs/com_google_android_gms_play_services_auth/LICENSE;md5=c342c84a7fac9459603b5f30a5a93723 \ - file://${S}/third_party/android_deps/libs/com_google_android_gms_play_services_auth_api_phone/LICENSE;md5=e5a8d882f7945961271786002e6a581d \ - file://${S}/third_party/android_deps/libs/com_google_android_gms_play_services_auth_base/LICENSE;md5=d1680c9b9927e21a8e831e443964c3ff \ - file://${S}/third_party/android_deps/libs/com_google_android_gms_play_services_auth_blockstore/LICENSE;md5=fff98c651a1ae8a04462a12f8ea1f7a4 \ - file://${S}/third_party/android_deps/libs/com_google_android_gms_play_services_base/LICENSE;md5=e5a8d882f7945961271786002e6a581d \ - file://${S}/third_party/android_deps/libs/com_google_android_gms_play_services_basement/LICENSE;md5=e5a8d882f7945961271786002e6a581d \ - file://${S}/third_party/android_deps/libs/com_google_android_gms_play_services_cast/LICENSE;md5=1e61529f08860f8fa1c90bf8af8007ff \ - file://${S}/third_party/android_deps/libs/com_google_android_gms_play_services_cast_framework/LICENSE;md5=6688c3d596b2e35dd1928d1ffdf5a9e2 \ - file://${S}/third_party/android_deps/libs/com_google_android_gms_play_services_clearcut/LICENSE;md5=32c019d8c1f8222a8aad9c3e1f1d2d10 \ - file://${S}/third_party/android_deps/libs/com_google_android_gms_play_services_cloud_messaging/LICENSE;md5=fb1c3d71ca3681654ec1604b10fc1ace \ - file://${S}/third_party/android_deps/libs/com_google_android_gms_play_services_fido/LICENSE;md5=ff76e1f91bd64c4593743be9d83a4c5f \ - file://${S}/third_party/android_deps/libs/com_google_android_gms_play_services_flags/LICENSE;md5=92b728c587a67a1b9577e9ca141ca520 \ - file://${S}/third_party/android_deps/libs/com_google_android_gms_play_services_gcm/LICENSE;md5=92b728c587a67a1b9577e9ca141ca520 \ - file://${S}/third_party/android_deps/libs/com_google_android_gms_play_services_identity_credentials/LICENSE;md5=fff98c651a1ae8a04462a12f8ea1f7a4 \ - file://${S}/third_party/android_deps/libs/com_google_android_gms_play_services_iid/LICENSE;md5=05fc50851d6d550ef2bb400b326353f0 \ - file://${S}/third_party/android_deps/libs/com_google_android_gms_play_services_instantapps/LICENSE;md5=cd033bdb088af16ecdbcd95bd5562a30 \ - file://${S}/third_party/android_deps/libs/com_google_android_gms_play_services_location/LICENSE;md5=6a7afdc2d1780ac0a9bd21bd59640cdf \ - file://${S}/third_party/android_deps/libs/com_google_android_gms_play_services_phenotype/LICENSE;md5=32c019d8c1f8222a8aad9c3e1f1d2d10 \ - file://${S}/third_party/android_deps/libs/com_google_android_gms_play_services_stats/LICENSE;md5=92b728c587a67a1b9577e9ca141ca520 \ - file://${S}/third_party/android_deps/libs/com_google_android_gms_play_services_tasks/LICENSE;md5=e5a8d882f7945961271786002e6a581d \ - file://${S}/third_party/android_deps/libs/com_google_android_gms_play_services_vision/LICENSE;md5=d332b0f8bf5e67cef70541572ba69b61 \ - file://${S}/third_party/android_deps/libs/com_google_android_gms_play_services_vision_common/LICENSE;md5=d332b0f8bf5e67cef70541572ba69b61 \ - file://${S}/third_party/android_deps/libs/com_google_android_libraries_identity_googleid_googleid/LICENSE;md5=498e555b4ebef5399d944fb662c61913 \ - file://${S}/third_party/android_deps/libs/com_google_android_material_material/LICENSE;md5=7f7d74108ee1b7a743cca7d9a86784d6 \ - file://${S}/third_party/android_deps/libs/com_google_android_play_core_common/LICENSE;md5=8194dd288cb886b87752b09da8cd9287 \ - file://${S}/third_party/android_deps/libs/com_google_android_play_feature_delivery/LICENSE;md5=f2f92822aef2474358b9e1d21514e278 \ - file://${S}/third_party/android_deps/libs/com_google_auto_service_auto_service_annotations/LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57 \ - file://${S}/third_party/android_deps/libs/com_google_code_findbugs_jsr305/LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57 \ - file://${S}/third_party/android_deps/libs/com_google_code_gson_gson/LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57 \ + file://${S}/third_party/android_deps/libs/com_google_android_gms_play_services_cloud_messaging/LICENSE;md5=fff98c651a1ae8a04462a12f8ea1f7a4 \ + file://${S}/third_party/android_deps/libs/com_google_ar_impress/LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57 \ file://${S}/third_party/android_deps/libs/com_google_dagger_dagger/LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57 \ - file://${S}/third_party/android_deps/libs/com_google_dagger_hilt_core/LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57 \ - file://${S}/third_party/android_deps/libs/com_google_errorprone_error_prone_annotations/LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57 \ file://${S}/third_party/android_deps/libs/com_google_firebase_firebase_annotations/LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57 \ file://${S}/third_party/android_deps/libs/com_google_firebase_firebase_common/LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57 \ + file://${S}/third_party/android_deps/libs/com_google_firebase_firebase_common_ktx/LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57 \ file://${S}/third_party/android_deps/libs/com_google_firebase_firebase_components/LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57 \ - file://${S}/third_party/android_deps/libs/com_google_firebase_firebase_encoders/LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57 \ - file://${S}/third_party/android_deps/libs/com_google_firebase_firebase_encoders_json/LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57 \ - file://${S}/third_party/android_deps/libs/com_google_firebase_firebase_iid/LICENSE;md5=18b56b380e9331ebdf0247a0b10bbaf0 \ - file://${S}/third_party/android_deps/libs/com_google_firebase_firebase_iid_interop/LICENSE;md5=a5923809e496d46d8842ab7d8a52621f \ + file://${S}/third_party/android_deps/libs/com_google_firebase_firebase_datatransport/LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57 \ + file://${S}/third_party/android_deps/libs/com_google_firebase_firebase_iid/LICENSE;md5=57214b126e4e648c9066e6e23d43be77 \ + file://${S}/third_party/android_deps/libs/com_google_firebase_firebase_iid_interop/LICENSE;md5=5c9317538bd492b4fd01eec9d6972640 \ file://${S}/third_party/android_deps/libs/com_google_firebase_firebase_installations/LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57 \ file://${S}/third_party/android_deps/libs/com_google_firebase_firebase_installations_interop/LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57 \ - file://${S}/third_party/android_deps/libs/com_google_firebase_firebase_measurement_connector/LICENSE;md5=a5923809e496d46d8842ab7d8a52621f \ - file://${S}/third_party/android_deps/libs/com_google_firebase_firebase_messaging/LICENSE;md5=6287e01249a45d9de9bc62ca9163c913 \ - file://${S}/third_party/android_deps/libs/com_google_guava_failureaccess/LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57 \ - file://${S}/third_party/android_deps/libs/com_google_guava_guava_android/LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57 \ - file://${S}/third_party/android_deps/libs/com_google_j2objc_j2objc_annotations/LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57 \ - file://${S}/third_party/android_deps/libs/com_google_protobuf_protobuf_javalite/LICENSE;md5=37b5762e07f0af8c74ce80a8bda4266b \ - file://${S}/third_party/android_deps/libs/com_squareup_okio_okio_jvm/LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57 \ - file://${S}/third_party/android_deps/libs/io_grpc_grpc_api/LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57 \ - file://${S}/third_party/android_deps/libs/io_grpc_grpc_binder/LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57 \ - file://${S}/third_party/android_deps/libs/io_grpc_grpc_context/LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57 \ - file://${S}/third_party/android_deps/libs/io_grpc_grpc_core/LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57 \ - file://${S}/third_party/android_deps/libs/io_grpc_grpc_protobuf_lite/LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57 \ - file://${S}/third_party/android_deps/libs/io_grpc_grpc_stub/LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57 \ - file://${S}/third_party/android_deps/libs/io_perfmark_perfmark_api/LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57 \ + file://${S}/third_party/android_deps/libs/com_google_firebase_firebase_measurement_connector/LICENSE;md5=298bd2a9dc20becb6693cfdccd58001a \ + file://${S}/third_party/android_deps/libs/com_google_firebase_firebase_messaging/LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57 \ file://${S}/third_party/android_deps/libs/jakarta_inject_jakarta_inject_api/LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57 \ - file://${S}/third_party/android_deps/libs/javax_inject_javax_inject/LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57 \ - file://${S}/third_party/android_deps/libs/org_checkerframework_checker_compat_qual/LICENSE;md5=f32f668c1f4eea36fb53fc4cc7d96385 \ - file://${S}/third_party/android_deps/libs/org_checkerframework_checker_qual/LICENSE;md5=f32f668c1f4eea36fb53fc4cc7d96385 \ file://${S}/third_party/android_deps/libs/org_checkerframework_checker_util/LICENSE;md5=87abbc18e66acb445c00810347051776 \ file://${S}/third_party/android_deps/libs/org_codehaus_mojo_animal_sniffer_annotations/LICENSE;md5=a5dd953e661e22a77f7b8062ae790f6a \ file://${S}/third_party/android_deps/libs/org_jetbrains_kotlin_kotlin_android_extensions_runtime/LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57 \ file://${S}/third_party/android_deps/libs/org_jetbrains_kotlin_kotlin_parcelize_runtime/LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57 \ file://${S}/third_party/android_deps/libs/org_jetbrains_kotlinx_atomicfu_jvm/LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57 \ - file://${S}/third_party/android_deps/libs/org_jetbrains_kotlinx_kotlinx_coroutines_android/LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57 \ - file://${S}/third_party/android_deps/libs/org_jetbrains_kotlinx_kotlinx_coroutines_core_jvm/LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57 \ file://${S}/third_party/android_deps/libs/org_jetbrains_kotlinx_kotlinx_coroutines_guava/LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57 \ - file://${S}/third_party/android_deps/libs/org_jetbrains_kotlinx_kotlinx_serialization_core_jvm/LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57 \ - file://${S}/third_party/android_deps/libs/org_jspecify_jspecify/LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57 \ file://${S}/third_party/android_media/LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57 \ file://${S}/third_party/android_opengl/LICENSE;md5=d10e92761a860d4113a7a525c78daf13 \ file://${S}/third_party/android_provider/LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57 \ file://${S}/third_party/android_sdk/LICENSE;md5=a9559ed17808a8b10eec6672f993ce75 \ file://${S}/third_party/android_swipe_refresh/LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57 \ file://${S}/third_party/android_toolchain/NOTICE;md5=350d21a23b5ad67f48caa7a8e55d32c0 \ + file://${S}/third_party/androidx/committed/libs/androidx_activity_activity/LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57 \ + file://${S}/third_party/androidx/committed/libs/androidx_activity_activity_compose/LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57 \ + file://${S}/third_party/androidx/committed/libs/androidx_activity_activity_ktx/LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57 \ + file://${S}/third_party/androidx/committed/libs/androidx_annotation_annotation_experimental/LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57 \ + file://${S}/third_party/androidx/committed/libs/androidx_annotation_annotation_jvm/LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57 \ + file://${S}/third_party/androidx/committed/libs/androidx_appcompat_appcompat/LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57 \ + file://${S}/third_party/androidx/committed/libs/androidx_appcompat_appcompat_resources/LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57 \ + file://${S}/third_party/androidx/committed/libs/androidx_appsearch_appsearch/LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57 \ + file://${S}/third_party/androidx/committed/libs/androidx_appsearch_appsearch_builtin_types/LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57 \ + file://${S}/third_party/androidx/committed/libs/androidx_appsearch_appsearch_platform_storage/LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57 \ + file://${S}/third_party/androidx/committed/libs/androidx_arch_core_core_common/LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57 \ + file://${S}/third_party/androidx/committed/libs/androidx_arch_core_core_runtime/LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57 \ + file://${S}/third_party/androidx/committed/libs/androidx_asynclayoutinflater_asynclayoutinflater/LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57 \ + file://${S}/third_party/androidx/committed/libs/androidx_asynclayoutinflater_asynclayoutinflater_appcompat/LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57 \ + file://${S}/third_party/androidx/committed/libs/androidx_autofill_autofill/LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57 \ + file://${S}/third_party/androidx/committed/libs/androidx_biometric_biometric/LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57 \ + file://${S}/third_party/androidx/committed/libs/androidx_browser_browser/LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57 \ + file://${S}/third_party/androidx/committed/libs/androidx_cardview_cardview/LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57 \ + file://${S}/third_party/androidx/committed/libs/androidx_collection_collection_jvm/LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57 \ + file://${S}/third_party/androidx/committed/libs/androidx_collection_collection_ktx/LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57 \ + file://${S}/third_party/androidx/committed/libs/androidx_compose_animation_animation_android/LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57 \ + file://${S}/third_party/androidx/committed/libs/androidx_compose_animation_animation_core_android/LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57 \ + file://${S}/third_party/androidx/committed/libs/androidx_compose_foundation_foundation_android/LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57 \ + file://${S}/third_party/androidx/committed/libs/androidx_compose_foundation_foundation_layout_android/LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57 \ + file://${S}/third_party/androidx/committed/libs/androidx_compose_material3_material3_android/LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57 \ + file://${S}/third_party/androidx/committed/libs/androidx_compose_material_material_ripple_android/LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57 \ + file://${S}/third_party/androidx/committed/libs/androidx_compose_runtime_runtime_android/LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57 \ + file://${S}/third_party/androidx/committed/libs/androidx_compose_runtime_runtime_annotation_android/LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57 \ + file://${S}/third_party/androidx/committed/libs/androidx_compose_runtime_runtime_saveable_android/LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57 \ + file://${S}/third_party/androidx/committed/libs/androidx_compose_ui_ui_android/LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57 \ + file://${S}/third_party/androidx/committed/libs/androidx_compose_ui_ui_geometry_android/LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57 \ + file://${S}/third_party/androidx/committed/libs/androidx_compose_ui_ui_graphics_android/LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57 \ + file://${S}/third_party/androidx/committed/libs/androidx_compose_ui_ui_text_android/LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57 \ + file://${S}/third_party/androidx/committed/libs/androidx_compose_ui_ui_text_google_fonts/LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57 \ + file://${S}/third_party/androidx/committed/libs/androidx_compose_ui_ui_unit_android/LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57 \ + file://${S}/third_party/androidx/committed/libs/androidx_compose_ui_ui_util_android/LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57 \ + file://${S}/third_party/androidx/committed/libs/androidx_concurrent_concurrent_futures/LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57 \ + file://${S}/third_party/androidx/committed/libs/androidx_concurrent_concurrent_futures_ktx/LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57 \ + file://${S}/third_party/androidx/committed/libs/androidx_constraintlayout_constraintlayout/LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57 \ + file://${S}/third_party/androidx/committed/libs/androidx_constraintlayout_constraintlayout_core/LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57 \ + file://${S}/third_party/androidx/committed/libs/androidx_coordinatorlayout_coordinatorlayout/LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57 \ + file://${S}/third_party/androidx/committed/libs/androidx_core_core/LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57 \ + file://${S}/third_party/androidx/committed/libs/androidx_core_core_animation/LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57 \ + file://${S}/third_party/androidx/committed/libs/androidx_core_core_ktx/LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57 \ + file://${S}/third_party/androidx/committed/libs/androidx_core_core_viewtree/LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57 \ + file://${S}/third_party/androidx/committed/libs/androidx_credentials_credentials/LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57 \ + file://${S}/third_party/androidx/committed/libs/androidx_credentials_credentials_play_services_auth/LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57 \ + file://${S}/third_party/androidx/committed/libs/androidx_credentials_registry_registry_provider/LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57 \ + file://${S}/third_party/androidx/committed/libs/androidx_credentials_registry_registry_provider_play_services/LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57 \ + file://${S}/third_party/androidx/committed/libs/androidx_cursoradapter_cursoradapter/LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57 \ + file://${S}/third_party/androidx/committed/libs/androidx_customview_customview/LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57 \ + file://${S}/third_party/androidx/committed/libs/androidx_customview_customview_poolingcontainer/LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57 \ + file://${S}/third_party/androidx/committed/libs/androidx_datastore_datastore_android/LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57 \ + file://${S}/third_party/androidx/committed/libs/androidx_datastore_datastore_core_android/LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57 \ + file://${S}/third_party/androidx/committed/libs/androidx_datastore_datastore_core_okio_jvm/LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57 \ + file://${S}/third_party/androidx/committed/libs/androidx_documentfile_documentfile/LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57 \ + file://${S}/third_party/androidx/committed/libs/androidx_drawerlayout_drawerlayout/LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57 \ + file://${S}/third_party/androidx/committed/libs/androidx_dynamicanimation_dynamicanimation/LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57 \ + file://${S}/third_party/androidx/committed/libs/androidx_emoji2_emoji2/LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57 \ + file://${S}/third_party/androidx/committed/libs/androidx_emoji2_emoji2_views_helper/LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57 \ + file://${S}/third_party/androidx/committed/libs/androidx_emoji_emoji/LICENSE;md5=7773bd2f52bfeaf2c4f9eac7cb9227e6 \ + file://${S}/third_party/androidx/committed/libs/androidx_exifinterface_exifinterface/LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57 \ + file://${S}/third_party/androidx/committed/libs/androidx_fragment_fragment/LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57 \ + file://${S}/third_party/androidx/committed/libs/androidx_fragment_fragment_compose/LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57 \ + file://${S}/third_party/androidx/committed/libs/androidx_fragment_fragment_ktx/LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57 \ + file://${S}/third_party/androidx/committed/libs/androidx_graphics_graphics_path/LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57 \ + file://${S}/third_party/androidx/committed/libs/androidx_graphics_graphics_shapes_android/LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57 \ + file://${S}/third_party/androidx/committed/libs/androidx_gridlayout_gridlayout/LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57 \ + file://${S}/third_party/androidx/committed/libs/androidx_interpolator_interpolator/LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57 \ + file://${S}/third_party/androidx/committed/libs/androidx_leanback_leanback/LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57 \ + file://${S}/third_party/androidx/committed/libs/androidx_leanback_leanback_grid/LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57 \ + file://${S}/third_party/androidx/committed/libs/androidx_leanback_leanback_preference/LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57 \ + file://${S}/third_party/androidx/committed/libs/androidx_legacy_legacy_support_core_ui/LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57 \ + file://${S}/third_party/androidx/committed/libs/androidx_legacy_legacy_support_core_utils/LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57 \ + file://${S}/third_party/androidx/committed/libs/androidx_legacy_legacy_support_v4/LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57 \ + file://${S}/third_party/androidx/committed/libs/androidx_lifecycle_lifecycle_common_java8/LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57 \ + file://${S}/third_party/androidx/committed/libs/androidx_lifecycle_lifecycle_common_jvm/LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57 \ + file://${S}/third_party/androidx/committed/libs/androidx_lifecycle_lifecycle_livedata/LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57 \ + file://${S}/third_party/androidx/committed/libs/androidx_lifecycle_lifecycle_livedata_core/LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57 \ + file://${S}/third_party/androidx/committed/libs/androidx_lifecycle_lifecycle_livedata_core_ktx/LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57 \ + file://${S}/third_party/androidx/committed/libs/androidx_lifecycle_lifecycle_livedata_ktx/LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57 \ + file://${S}/third_party/androidx/committed/libs/androidx_lifecycle_lifecycle_process/LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57 \ + file://${S}/third_party/androidx/committed/libs/androidx_lifecycle_lifecycle_runtime_android/LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57 \ + file://${S}/third_party/androidx/committed/libs/androidx_lifecycle_lifecycle_runtime_compose_android/LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57 \ + file://${S}/third_party/androidx/committed/libs/androidx_lifecycle_lifecycle_runtime_ktx_android/LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57 \ + file://${S}/third_party/androidx/committed/libs/androidx_lifecycle_lifecycle_service/LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57 \ + file://${S}/third_party/androidx/committed/libs/androidx_lifecycle_lifecycle_viewmodel_android/LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57 \ + file://${S}/third_party/androidx/committed/libs/androidx_lifecycle_lifecycle_viewmodel_compose_android/LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57 \ + file://${S}/third_party/androidx/committed/libs/androidx_lifecycle_lifecycle_viewmodel_ktx/LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57 \ + file://${S}/third_party/androidx/committed/libs/androidx_lifecycle_lifecycle_viewmodel_savedstate_android/LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57 \ + file://${S}/third_party/androidx/committed/libs/androidx_loader_loader/LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57 \ + file://${S}/third_party/androidx/committed/libs/androidx_localbroadcastmanager_localbroadcastmanager/LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57 \ + file://${S}/third_party/androidx/committed/libs/androidx_media3_media3_common/LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57 \ + file://${S}/third_party/androidx/committed/libs/androidx_media3_media3_container/LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57 \ + file://${S}/third_party/androidx/committed/libs/androidx_media3_media3_database/LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57 \ + file://${S}/third_party/androidx/committed/libs/androidx_media3_media3_datasource/LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57 \ + file://${S}/third_party/androidx/committed/libs/androidx_media3_media3_decoder/LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57 \ + file://${S}/third_party/androidx/committed/libs/androidx_media3_media3_exoplayer/LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57 \ + file://${S}/third_party/androidx/committed/libs/androidx_media3_media3_extractor/LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57 \ + file://${S}/third_party/androidx/committed/libs/androidx_media3_media3_session/LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57 \ + file://${S}/third_party/androidx/committed/libs/androidx_media3_media3_ui/LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57 \ + file://${S}/third_party/androidx/committed/libs/androidx_media_media/LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57 \ + file://${S}/third_party/androidx/committed/libs/androidx_mediarouter_mediarouter/LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57 \ + file://${S}/third_party/androidx/committed/libs/androidx_multidex_multidex/LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57 \ + file://${S}/third_party/androidx/committed/libs/androidx_navigation_navigation_common_android/LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57 \ + file://${S}/third_party/androidx/committed/libs/androidx_navigation_navigation_compose_android/LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57 \ + file://${S}/third_party/androidx/committed/libs/androidx_navigation_navigation_runtime_android/LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57 \ + file://${S}/third_party/androidx/committed/libs/androidx_navigationevent_navigationevent_android/LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57 \ + file://${S}/third_party/androidx/committed/libs/androidx_paging_paging_common_android/LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57 \ + file://${S}/third_party/androidx/committed/libs/androidx_paging_paging_common_ktx/LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57 \ + file://${S}/third_party/androidx/committed/libs/androidx_paging_paging_compose_android/LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57 \ + file://${S}/third_party/androidx/committed/libs/androidx_paging_paging_runtime/LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57 \ + file://${S}/third_party/androidx/committed/libs/androidx_palette_palette/LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57 \ + file://${S}/third_party/androidx/committed/libs/androidx_pdf_pdf_document_service/LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57 \ + file://${S}/third_party/androidx/committed/libs/androidx_pdf_pdf_viewer/LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57 \ + file://${S}/third_party/androidx/committed/libs/androidx_pdf_pdf_viewer_fragment/LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57 \ + file://${S}/third_party/androidx/committed/libs/androidx_preference_preference/LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57 \ + file://${S}/third_party/androidx/committed/libs/androidx_print_print/LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57 \ + file://${S}/third_party/androidx/committed/libs/androidx_privacysandbox_ads_ads_adservices/LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57 \ + file://${S}/third_party/androidx/committed/libs/androidx_privacysandbox_ads_ads_adservices_java/LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57 \ + file://${S}/third_party/androidx/committed/libs/androidx_profileinstaller_profileinstaller/LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57 \ + file://${S}/third_party/androidx/committed/libs/androidx_recyclerview_recyclerview/LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57 \ + file://${S}/third_party/androidx/committed/libs/androidx_resourceinspection_resourceinspection_annotation/LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57 \ + file://${S}/third_party/androidx/committed/libs/androidx_room_room_common_jvm/LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57 \ + file://${S}/third_party/androidx/committed/libs/androidx_room_room_runtime_android/LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57 \ + file://${S}/third_party/androidx/committed/libs/androidx_savedstate_savedstate_android/LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57 \ + file://${S}/third_party/androidx/committed/libs/androidx_savedstate_savedstate_compose_android/LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57 \ + file://${S}/third_party/androidx/committed/libs/androidx_savedstate_savedstate_ktx/LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57 \ + file://${S}/third_party/androidx/committed/libs/androidx_slidingpanelayout_slidingpanelayout/LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57 \ + file://${S}/third_party/androidx/committed/libs/androidx_sqlite_sqlite_android/LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57 \ + file://${S}/third_party/androidx/committed/libs/androidx_sqlite_sqlite_framework_android/LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57 \ + file://${S}/third_party/androidx/committed/libs/androidx_startup_startup_runtime/LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57 \ + file://${S}/third_party/androidx/committed/libs/androidx_swiperefreshlayout_swiperefreshlayout/LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57 \ + file://${S}/third_party/androidx/committed/libs/androidx_tracing_tracing_android/LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57 \ + file://${S}/third_party/androidx/committed/libs/androidx_transition_transition/LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57 \ + file://${S}/third_party/androidx/committed/libs/androidx_tvprovider_tvprovider/LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57 \ + file://${S}/third_party/androidx/committed/libs/androidx_vectordrawable_vectordrawable/LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57 \ + file://${S}/third_party/androidx/committed/libs/androidx_vectordrawable_vectordrawable_animated/LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57 \ + file://${S}/third_party/androidx/committed/libs/androidx_versionedparcelable_versionedparcelable/LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57 \ + file://${S}/third_party/androidx/committed/libs/androidx_viewpager2_viewpager2/LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57 \ + file://${S}/third_party/androidx/committed/libs/androidx_viewpager_viewpager/LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57 \ + file://${S}/third_party/androidx/committed/libs/androidx_webkit_webkit/LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57 \ + file://${S}/third_party/androidx/committed/libs/androidx_window_extensions_extensions/LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57 \ + file://${S}/third_party/androidx/committed/libs/androidx_window_sidecar_sidecar/LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57 \ + file://${S}/third_party/androidx/committed/libs/androidx_window_window/LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57 \ + file://${S}/third_party/androidx/committed/libs/androidx_window_window_core_android/LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57 \ + file://${S}/third_party/androidx/committed/libs/androidx_xr_arcore_arcore/LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57 \ + file://${S}/third_party/androidx/committed/libs/androidx_xr_runtime_runtime/LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57 \ + file://${S}/third_party/androidx/committed/libs/androidx_xr_runtime_runtime_openxr/LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57 \ + file://${S}/third_party/androidx/committed/libs/androidx_xr_scenecore_scenecore/LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57 \ file://${S}/third_party/angle/LICENSE;md5=7abdb66a6948f39c2f469140db5184e2 \ file://${S}/third_party/angle/src/common/third_party/xxhash/LICENSE;md5=cb91c07001f1ca6fd50b6bd4f042946a \ file://${S}/third_party/angle/src/libANGLE/renderer/vulkan/shaders/src/third_party/etc_decoder/LICENSE;md5=100356b560682b0ae7739e09db42f319 \ file://${S}/third_party/angle/src/libANGLE/renderer/vulkan/shaders/src/third_party/ffx_spd/LICENSE;md5=64356ee6f79c94525e102a3264a62653 \ file://${S}/third_party/angle/src/third_party/libXNVCtrl/LICENSE;md5=9e6c209899aa4986d090320bbca2fc76 \ file://${S}/third_party/angle/src/third_party/volk/LICENSE.md;md5=af213f738e88117b90238ef76ad25ae6 \ - file://${S}/third_party/angle/third_party/android_system_sdk/LICENSE;md5=cbb64e76df0f98fc138b1918c089417e \ file://${S}/third_party/angle/third_party/flatbuffers/LICENSE;md5=a873c5645c184d51e0f9b34e1d7cf559 \ file://${S}/third_party/angle/third_party/spirv-headers/LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57 \ file://${S}/third_party/angle/third_party/spirv-tools/LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57 \ @@ -187,31 +331,33 @@ LIC_FILES_CHKSUM = "\ file://${S}/third_party/arcore-android-sdk/LICENSE;md5=c1bc4f7fbdd7a5a3f2c0dfefd457665e \ file://${S}/third_party/ashmem/LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57 \ file://${S}/third_party/axe-core/LICENSE;md5=f27a50d2e878867827842f2c60e30bfc \ - file://${S}/third_party/beto-core/LICENSE;md5=2b42edef8fa55315f34f2370b4715ca9 \ file://${S}/third_party/bidimapper/LICENSE;md5=2b42edef8fa55315f34f2370b4715ca9 \ file://${S}/third_party/bidimapper/licenses/LICENSE.mitt;md5=4ed316158806c1e39b6b6e457c85b10f \ file://${S}/third_party/bidimapper/licenses/LICENSE.zod;md5=7aa01d261c2ac4ca667875e22474c798 \ file://${S}/third_party/blink/LICENSE_FOR_ABOUT_CREDITS;md5=11e90d553b211de885f245900c4ccf89 \ - file://${S}/third_party/boringssl/src/LICENSE;md5=2ca501bc96ce9ed0814e2c592c3f9593 \ - file://${S}/third_party/boringssl/src/third_party/fiat/LICENSE;md5=8eb8c1cdeb53faab99e4673182bed9f7 \ + file://${S}/third_party/boringssl/src/LICENSE;md5=0131a611be3a37729f61e0b26319da57 \ + file://${S}/third_party/boringssl/src/third_party/fiat/LICENSE;md5=7a7086e01a29257a15f3b0c9a42a12ff \ file://${S}/third_party/brotli/LICENSE;md5=941ee9cd1609382f946352712a319b4b \ file://${S}/third_party/bspatch/LICENSE;md5=3e837ede9697ce4c789c3ca32aabe003 \ file://${S}/third_party/cardboard/LICENSE;md5=3446ed11f63049b8f1e60e833dcdc5b7 \ file://${S}/third_party/cast_core/LICENSE;md5=175792518e4ac015ab6696d16c4f607e \ file://${S}/third_party/catapult/experimental/trace_on_tap/third_party/pako/LICENSE;md5=6b8c8aad0a85200097ec8f989636baf0 \ file://${S}/third_party/catapult/third_party/apiclient/LICENSE;md5=94023d14f6b58272fd885e4e3f2f08b3 \ + file://${S}/third_party/catapult/third_party/beautifulsoup4/COPYING.txt;md5=83e365dc17176bd72ba7d08ca0555efa \ file://${S}/third_party/catapult/third_party/cachetools/LICENSE;md5=27f7518eb6f7dc686d0f953b2f28dae5 \ - file://${S}/third_party/catapult/third_party/chardet/LICENSE;md5=a6f89e2100d9b6cdffcea4f398e37343 \ file://${S}/third_party/catapult/third_party/cloudstorage/COPYING;md5=dcbf253b3d6d09ae7e64cb34b4d0ec33 \ file://${S}/third_party/catapult/third_party/coverage/LICENSE.txt;md5=2ee41112a44fe7014dce33e26468ba93 \ file://${S}/third_party/catapult/third_party/flot/LICENSE.txt;md5=5bc600a435aadbd7dcde045ccb3208bf \ file://${S}/third_party/catapult/third_party/google-auth/LICENSE;md5=86d3f3a95c324c9479bd8986968f4327 \ + file://${S}/third_party/catapult/third_party/graphy/LICENSE;md5=86d3f3a95c324c9479bd8986968f4327 \ file://${S}/third_party/catapult/third_party/gsutil/LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57 \ + file://${S}/third_party/catapult/third_party/idna/LICENSE.rst;md5=782775b32f96098512e283fb5d4546cd \ file://${S}/third_party/catapult/third_party/ijson/LICENSE.txt;md5=2809bd5857eee6be054555222fd89712 \ - file://${S}/third_party/catapult/third_party/oauth2client/LICENSE;md5=88f599f710b9d48dad0929ebd090fc1a \ + file://${S}/third_party/catapult/third_party/jquery/LICENSE.txt;md5=18d9b3a646e7608b8951c4f6aa1bbf25 \ + file://${S}/third_party/catapult/third_party/mapreduce/LICENSE;md5=175792518e4ac015ab6696d16c4f607e \ file://${S}/third_party/catapult/third_party/pipeline/LICENSE;md5=8f7bb094c7232b058c7e9f2e431f389c \ file://${S}/third_party/catapult/third_party/polymer/LICENSE.polymer;md5=324f45ce459ffd97e41d175a4e95a4be \ - file://${S}/third_party/catapult/third_party/polymer3/LICENSE.polymer;md5=a798ede8c314cbc7a31b41bce0008d57 \ + file://${S}/third_party/catapult/third_party/pyasn1_modules/LICENSE.txt;md5=a14482d15c2249de3b6f0e8a47e021fd \ file://${S}/third_party/catapult/third_party/pyfakefs/COPYING;md5=34400b68072d710fecd0a2940a0d1658 \ file://${S}/third_party/catapult/third_party/pyparsing/LICENSE;md5=657a566233888513e1f07ba13e2f47f1 \ file://${S}/third_party/catapult/third_party/python_gflags/COPYING;md5=c80d1a3b623f72bb85a4c75b556551df \ @@ -223,6 +369,7 @@ LIC_FILES_CHKSUM = "\ file://${S}/third_party/catapult/third_party/vinn/third_party/v8/LICENSE.v8;md5=1ea35644f0ec0d9767897115667e901f \ file://${S}/third_party/catapult/third_party/vinn/third_party/v8/LICENSE.valgrind;md5=df3b3d49700e781f7508895abd114277 \ file://${S}/third_party/catapult/third_party/webapp2/LICENSE;md5=40b32c2af961e8ca20e66cdea65bcb36 \ + file://${S}/third_party/catapult/third_party/webtest/license.rst;md5=64f013a9d7a2a8ffc8d016a2d4214bcd \ file://${S}/third_party/catapult/tracing/third_party/jpeg-js/LICENSE;md5=11ed819ab28c14377693b9c990511293 \ file://${S}/third_party/catapult/tracing/third_party/oboe/LICENCE;md5=a50188ab5dc0b5b3963791e0c5f43c6b \ file://${S}/third_party/catapult/tracing/third_party/pako/LICENSE;md5=a4f08d6b2d1bf3f3a1bc296a6109a25b \ @@ -232,6 +379,7 @@ LIC_FILES_CHKSUM = "\ file://${S}/third_party/chromevox/third_party/sre/LICENSE;md5=2ee41112a44fe7014dce33e26468ba93 \ file://${S}/third_party/cld_3/LICENSE;md5=d8b32ba83f8b11e4badd979f4319e706 \ file://${S}/third_party/cldr/LICENSE;md5=fe2500bb52e825476d4b93d6f1458232 \ + file://${S}/third_party/compiler-rt/src/LICENSE.TXT;md5=d846d1d65baf322d4c485d6ee54e877a \ file://${S}/third_party/content_analysis_sdk/LICENSE;md5=ee5fc272be9139e1816c73ce09611ca5 \ file://${S}/third_party/coremltools/mlmodel/format/LICENSE;md5=646b3097f3a7222ada5b4561c39d52e8 \ file://${S}/third_party/cpu_features/src/LICENSE;md5=31a8379f6fe09baf921e654832ac5700 \ @@ -259,6 +407,7 @@ LIC_FILES_CHKSUM = "\ file://${S}/third_party/devtools-frontend/src/front_end/third_party/i18n/LICENSE;md5=a873c5645c184d51e0f9b34e1d7cf559 \ file://${S}/third_party/devtools-frontend/src/front_end/third_party/intl-messageformat/LICENSE;md5=913015c0e75ff89ef9461fadca555f65 \ file://${S}/third_party/devtools-frontend/src/front_end/third_party/json5/LICENSE;md5=d80f2808a405d641840b50a06f80e93c \ + file://${S}/third_party/devtools-frontend/src/front_end/third_party/legacy-javascript/LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57 \ file://${S}/third_party/devtools-frontend/src/front_end/third_party/lighthouse/LICENSE;md5=a873c5645c184d51e0f9b34e1d7cf559 \ file://${S}/third_party/devtools-frontend/src/front_end/third_party/lit/LICENSE;md5=4b390b7b932ca7872d1de2c834797cad \ file://${S}/third_party/devtools-frontend/src/front_end/third_party/marked/LICENSE;md5=449f8b1cf0bfef1e5ec7824a4179ac6f \ @@ -270,12 +419,13 @@ LIC_FILES_CHKSUM = "\ file://${S}/third_party/devtools-frontend/src/front_end/third_party/third-party-web/LICENSE;md5=fdc2dc205eb6e6da8e9d1add67084a96 \ file://${S}/third_party/devtools-frontend/src/front_end/third_party/wasmparser/package/LICENSE;md5=2ee41112a44fe7014dce33e26468ba93 \ file://${S}/third_party/devtools-frontend/src/front_end/third_party/web-vitals/package/LICENSE;md5=2c4a96430ec4639e0a80babbfb239a96 \ - file://${S}/third_party/distributed_point_functions/LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57 \ file://${S}/third_party/dom_distiller_js/LICENSE;md5=6cd778870ce5c0c08c8e16fbdf378532 \ + file://${S}/third_party/dragonbox/src/LICENSE-Apache2-LLVM;md5=2e982d844baa4df1c80de75470e0c5cb \ + file://${S}/third_party/dragonbox/src/LICENSE-Boost;md5=e4224ccaecb14d942c71d31bef20d78c \ file://${S}/third_party/eigen3/LICENSE;md5=48a3fe23ed1353e0995dadfda05ffdb6 \ file://${S}/third_party/emoji-metadata/LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57 \ file://${S}/third_party/emoji-segmenter/LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57 \ - file://${S}/third_party/expat/src/expat/COPYING;md5=7b3b078238d0901d3b339289117cb7fb \ + file://${S}/third_party/expat/src/expat/COPYING;md5=f4fedd6116da0e171f7cb4d2923d7ac2 \ file://${S}/third_party/farmhash/LICENSE;md5=7dfaa79e2b070897e495fec386e3acfc \ file://${S}/third_party/fast_float/src/LICENSE-MIT;md5=32b11d50c7d9788d4270f6a83f3e68eb \ file://${S}/third_party/fdlibm/LICENSE;md5=b17367d6c97e638599071d99a3049dfe \ @@ -285,7 +435,7 @@ LIC_FILES_CHKSUM = "\ file://${S}/third_party/flatbuffers/LICENSE;md5=a873c5645c184d51e0f9b34e1d7cf559 \ file://${S}/third_party/fontconfig/src/COPYING;md5=00252fd272bf2e722925613ad74cb6c7 \ file://${S}/third_party/fp16/LICENSE;md5=855dd24c28c76c916c5c2301b1958728 \ - file://${S}/third_party/freetype/src/docs/FTL.TXT;md5=9f37b4e6afa3fef9dba8932b16bd3f97 \ + file://${S}/third_party/freetype/src/docs/FTL.TXT;md5=72d844cd2f3bcaf6a85244b508032be7 \ file://${S}/third_party/fuchsia-gn-sdk/LICENSE;md5=4c8b7c5e9d0a48795db3dcd70f738ea5 \ file://${S}/third_party/fusejs/LICENSE;md5=f61de6d0d3d200550e44d63cc2a4fb67 \ file://${S}/third_party/fxdiv/src/LICENSE;md5=0c2eed7ba400a6fea8fec2a582b177e8 \ @@ -295,14 +445,12 @@ LIC_FILES_CHKSUM = "\ file://${S}/third_party/google_input_tools/LICENSE;md5=ff0b0f0202337c9d4ae2d869797049d3 \ file://${S}/third_party/google_input_tools/third_party/closure_library/LICENSE;md5=24a5bad64ae7d51b99ecb8864af80e84 \ file://${S}/third_party/google_toolbox_for_mac/LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57 \ - file://${S}/third_party/google_trust_services/src/LICENSE;md5=cfaf8febfe7b4f3e07a08dd4d0db1914 \ - file://${S}/third_party/grpc/src/LICENSE;md5=731e401b36f8077ae0c134b59be5c906 \ + file://${S}/third_party/grpc/source/LICENSE;md5=731e401b36f8077ae0c134b59be5c906 \ file://${S}/third_party/harfbuzz-ng/src/COPYING;md5=b98429b8e8e3c2a67cfef01e99e4893d \ file://${S}/third_party/highway/LICENSE;md5=2b42edef8fa55315f34f2370b4715ca9 \ file://${S}/third_party/hunspell/COPYING.MPL;md5=bfe1f75d606912a4111c90743d6c7325 \ file://${S}/third_party/hyphenation-patterns/LICENSE;md5=23d9bd4878e6f3669ed39b2095b01c13 \ file://${S}/third_party/iaccessible2/LICENSE;md5=43bbd0bfb581347ec10def720000a645 \ - file://${S}/third_party/iccjpeg/LICENSE;md5=26834d132689a03abf860f4572705494 \ file://${S}/third_party/icu/LICENSE;md5=08dc3852df8fffa807301902ad899ff8 \ file://${S}/third_party/ink/LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57 \ file://${S}/third_party/ink_stroke_modeler/LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57 \ @@ -311,23 +459,21 @@ LIC_FILES_CHKSUM = "\ file://${S}/third_party/isimpledom/LICENSE;md5=822502c0e010ccdbb6a3e681dd47888e \ file://${S}/third_party/jni_zero/LICENSE;md5=70dc659673a50c63e07b2287222230e6 \ file://${S}/third_party/jsoncpp/LICENSE;md5=c56ee55c03a55f8105b969d8270632ce \ - file://${S}/third_party/jstemplate/COPYING;md5=3b83ef96387f14655fc854ddc3c6bd57 \ file://${S}/third_party/jszip/LICENSE;md5=401d270383d75b05d76fc13fc1750765 \ file://${S}/third_party/khronos/LICENSE;md5=1d2ef853a9ae7ace4e16fda0d48f597b \ file://${S}/third_party/lens_server_proto/LICENSE;md5=57b69a83c4a9b2401aa4de147cb22bd4 \ file://${S}/third_party/leveldatabase/src/LICENSE;md5=92d1b128950b11ba8495b64938fc164d \ file://${S}/third_party/libaddressinput/LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57 \ file://${S}/third_party/libaom/source/libaom/LICENSE;md5=6ea91368c1bbdf877159435572b931f5 \ - file://${S}/third_party/libavif/LICENSE;md5=15744a27d810133340dc64ad411ec4cd \ + file://${S}/third_party/libaom/source/libaom/PATENTS;md5=a111d47497d3bb49e04eef71377eb8ba \ file://${S}/third_party/libbrlapi/LICENSE;md5=fad9b3332be894bab9bc501572864b29 \ file://${S}/third_party/libc++/src/LICENSE.TXT;md5=55d89dd7eec8d3b4204b680e27da3953 \ file://${S}/third_party/libc++abi/src/LICENSE.TXT;md5=7b9334635b542c56868400a46b272b1e \ file://${S}/third_party/libei/LICENSE;md5=a98fa76460f96f41696611d6f07e8d49 \ - file://${S}/third_party/libevent/LICENSE;md5=a2b0302a710150293fb85d2bfabd3de6 \ file://${S}/third_party/libgav1/src/LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57 \ file://${S}/third_party/libipp/LICENSE;md5=af9e58383a1b2b17c75c6c9ff561ca9d \ file://${S}/third_party/libjingle_xmpp/LICENSE;md5=ad296492125bc71530d06234d9bfebe0 \ - file://${S}/third_party/libjpeg_turbo/LICENSE.md;md5=2a8e0d8226a102f07ab63ed7fd6ce155 \ + file://${S}/third_party/libjpeg_turbo/LICENSE.md;md5=023c2e8942020502d6ea709e2a5453f7 \ file://${S}/third_party/liblouis/LICENSE;md5=8ab69863de0d3a0e00c4f97a4d78dd4a \ file://${S}/third_party/libphonenumber/LICENSE;md5=e23fadd6ceef8c618fc1c65191d846fa \ file://${S}/third_party/libpng/LICENSE;md5=b0085051bf265bac2bfc38bc89f50000 \ @@ -341,18 +487,21 @@ LIC_FILES_CHKSUM = "\ file://${S}/third_party/libusb/src/COPYING;md5=fbc093901857fcd118f065f900982c24 \ file://${S}/third_party/libva_protected_content/LICENSE;md5=2e48940f94acb0af582e5ef03537800f \ file://${S}/third_party/libvpx/source/libvpx/LICENSE;md5=d5b04755015be901744a78cc30d390d4 \ + file://${S}/third_party/libvpx/source/libvpx/PATENTS;md5=c6926d0cb07d296f886ab6e0cc5a85b7 \ file://${S}/third_party/libwebm/source/LICENSE.TXT;md5=6e8dee932c26f2dab503abf70c96d8bb \ - file://${S}/third_party/libwebp/LICENSE;md5=72dceabd78c6f435bb304047aff1745a \ + file://${S}/third_party/libwebm/source/PATENTS.TXT;md5=c6926d0cb07d296f886ab6e0cc5a85b7 \ + file://${S}/third_party/libwebp/src/COPYING;md5=6e8dee932c26f2dab503abf70c96d8bb \ + file://${S}/third_party/libwebp/src/PATENTS;md5=c6926d0cb07d296f886ab6e0cc5a85b7 \ file://${S}/third_party/libx11/LICENSE;md5=28a27b3e1a66e95206d5645b787dad69 \ file://${S}/third_party/libxcb-keysyms/LICENSE;md5=5b0382211c6a98f8e4861daa0f3f4322 \ - file://${S}/third_party/libxml/src/Copyright;md5=f437ed9058e8e5135e47c01e973376ba \ + file://${S}/third_party/libxml/src/Copyright;md5=5873615e8a9ecbf5c8857c4312ee05d6 \ file://${S}/third_party/libxslt/src/Copyright;md5=0cd9a07afbeb24026c9b03aecfeba458 \ file://${S}/third_party/libyuv/LICENSE;md5=464282cfb405b005b9637f11103a7325 \ file://${S}/third_party/libzip/LICENSE;md5=6bb2408fd544544b86946e67ec2da9a0 \ file://${S}/third_party/lit/LICENSE;md5=4b390b7b932ca7872d1de2c834797cad \ file://${S}/third_party/llvm-libc/src/LICENSE.TXT;md5=ff42885ed2ab98f1ecb8c1fc41205343 \ file://${S}/third_party/lottie/LICENSE;md5=827837648055a0bfb7782b91ab42eed1 \ - file://${S}/third_party/lss/LICENSE;md5=dcd794613f580ae04e9633662024c7a2 \ + file://${S}/third_party/lss/LICENSE;md5=31b650551268648966d774a3ecc710cf \ file://${S}/third_party/lzma_sdk/LICENSE;md5=eceed1d308734c8051664bc3d1ca175e \ file://${S}/third_party/material_color_utilities/LICENSE;md5=175792518e4ac015ab6696d16c4f607e \ file://${S}/third_party/material_design_icons/LICENSE;md5=175792518e4ac015ab6696d16c4f607e \ @@ -362,25 +511,30 @@ LIC_FILES_CHKSUM = "\ file://${S}/third_party/metrics_proto/LICENSE;md5=cfaf8febfe7b4f3e07a08dd4d0db1914 \ file://${S}/third_party/microsoft_webauthn/LICENSE;md5=b98fddd052bb2f5ddbcdbd417ffb26a8 \ file://${S}/third_party/minigbm/LICENSE;md5=fcd558ab2fd7f53408826e80eb0c11eb \ + file://${S}/third_party/ml_dtypes/src/LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57 \ file://${S}/third_party/modp_b64/LICENSE;md5=eb7e2e0af1d4971360553aedadee8d86 \ file://${S}/third_party/nearby/LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57 \ file://${S}/third_party/neon_2_sse/LICENSE;md5=53abad1ded16f44100126962f4bbef6c \ - file://${S}/third_party/node/LICENSE;md5=f08301c3b31b4f85e464f95ce1d8bf81 \ + file://${S}/third_party/node/Apache-LICENSE-2.0.txt;md5=3b83ef96387f14655fc854ddc3c6bd57 \ + file://${S}/third_party/node/node_modules/@azure/msal-browser/LICENSE;md5=4f9c2c296f77b3096b6c11a16fa7c66e \ + file://${S}/third_party/node/node_modules/lit/LICENSE;md5=4b390b7b932ca7872d1de2c834797cad \ file://${S}/third_party/omnibox_proto/LICENSE;md5=9956e3ce49f0eea45461cec47a5f96b0 \ file://${S}/third_party/one_euro_filter/LICENSE;md5=5b4d092181a412ae42c63e7fc1e53366 \ file://${S}/third_party/openh264/src/LICENSE;md5=bb6d3771da6a07d33fd50d4d9aa73bcf \ file://${S}/third_party/openscreen/src/LICENSE;md5=5ff965dafeb8e99de6698664decb9e89 \ file://${S}/third_party/openscreen/src/third_party/protobuf/LICENSE;md5=37b5762e07f0af8c74ce80a8bda4266b \ file://${S}/third_party/openscreen/src/third_party/tinycbor/src/LICENSE;md5=6c1ac30774dd6476b42b5b020cd2aa5f \ - file://${S}/third_party/opus/src/COPYING;md5=e304cdf74c2a1b0a33a5084c128a23a3 \ + file://${S}/third_party/opus/src/COPYING;md5=4b365c2155d66e550e1447075d6744a5 \ file://${S}/third_party/ots/LICENSE;md5=e06eff2aa65b917034a81599bea73dc4 \ file://${S}/third_party/pdfium/LICENSE;md5=c93507531cc9bb8e24a05f2a1a4036c7 \ file://${S}/third_party/pdfium/third_party/agg23/copying;md5=d501f87982fe576fa1bfdf4f0ae741af \ file://${S}/third_party/pdfium/third_party/fp16/LICENSE;md5=855dd24c28c76c916c5c2301b1958728 \ file://${S}/third_party/pdfium/third_party/freetype/FTL.TXT;md5=d479e83797f699fe873b38dadd0fcd4c \ + file://${S}/third_party/pdfium/third_party/highway/LICENSE;md5=86d3f3a95c324c9479bd8986968f4327 \ + file://${S}/third_party/pdfium/third_party/lcms/LICENSE;md5=e9ce323c4b71c943a785db90142b228a \ file://${S}/third_party/pdfium/third_party/libopenjpeg/LICENSE;md5=c648878b4840d7babaade1303e7f108c \ file://${S}/third_party/pdfium/third_party/libtiff/LICENSE.md;md5=a3e32d664d6db1386b4689c8121531c3 \ - file://${S}/third_party/perfetto/LICENSE;md5=65fc11c16d093b463bafae828ec00d41 \ + file://${S}/third_party/perfetto/LICENSE;md5=c0c9924c5c63b4834b8b1959816c8e3b \ file://${S}/third_party/pffft/LICENSE;md5=0f39e43e9bc20e7e103e54750e1ec3a2 \ file://${S}/third_party/polymer/LICENSE.polymer;md5=324f45ce459ffd97e41d175a4e95a4be \ file://${S}/third_party/private-join-and-compute/src/LICENSE;md5=175792518e4ac015ab6696d16c4f607e \ @@ -389,17 +543,18 @@ LIC_FILES_CHKSUM = "\ file://${S}/third_party/protobuf/LICENSE;md5=37b5762e07f0af8c74ce80a8bda4266b \ file://${S}/third_party/pthreadpool/src/LICENSE;md5=1609499688b503850848d795dce4da2d \ file://${S}/third_party/puffin/LICENSE;md5=b1ed361f9fc790c1054d81a7ef041a34 \ - file://${S}/third_party/qcms/src/COPYING;md5=65636fa951328d3be95f6047ec3936ce \ file://${S}/third_party/re2/LICENSE;md5=3b5c31eb512bdf3cb11ffd5713963760 \ file://${S}/third_party/rjsmin/LICENSE;md5=34f8c1142fd6208a8be89399cb521df9 \ file://${S}/third_party/rnnoise/COPYING;md5=1890bf89a18f8339491894a0b45428bf \ file://${S}/third_party/ruy/LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57 \ + file://${S}/third_party/screen-ai/THIRD_PARTY_LICENSES;md5=b96cd7885ca6a74ae8f020ddafaa9349 \ file://${S}/third_party/securemessage/LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57 \ file://${S}/third_party/selenium-atoms/LICENSE;md5=5cd827bdaf8605a596a7ac9dcf808ea1 \ file://${S}/third_party/selenium-atoms/LICENSE.sizzle;md5=7a9495742f21b7624515e120b720cc65 \ file://${S}/third_party/selenium-atoms/LICENSE.wgxpath;md5=73a4131394317651a4370c0507a9ccb5 \ file://${S}/third_party/sentencepiece/LICENSE;md5=5cb9ee2840d20280145e929f30f32060 \ file://${S}/third_party/shell-encryption/src/LICENSE;md5=c96a2157133614bf8a135bd27cd230d6 \ + file://${S}/third_party/simdutf/LICENSE;md5=44b8879887e312bc332a205805fb41d1 \ file://${S}/third_party/simplejson/LICENSE.txt;md5=8a9f8dcfcd28c34daa443e5b1d29813b \ file://${S}/third_party/skia/LICENSE;md5=822f02cc7736281816581cd064afbb1c \ file://${S}/third_party/smhasher/LICENSE;md5=0d948322ab524e2b74f55eb8ef57c74a \ @@ -430,6 +585,7 @@ LIC_FILES_CHKSUM = "\ file://${S}/third_party/vulkan-headers/LICENSE.txt;md5=3b83ef96387f14655fc854ddc3c6bd57 \ file://${S}/third_party/vulkan-loader/src/LICENSE.txt;md5=7dbefed23242760aa3475ee42801c5ac \ file://${S}/third_party/vulkan_memory_allocator/LICENSE.txt;md5=6eed3e06ed116324029b9de40eaf0ee5 \ + file://${S}/third_party/wasm_tts_engine/EIGEN_LICENSE;md5=fb0a45fc2d5c3c92cf3e5c8e19e0e758 \ file://${S}/third_party/wayland-protocols/gtk/COPYING;md5=5f30f0716dfdd0d91eb439ebec522ec2 \ file://${S}/third_party/wayland-protocols/kde/COPYING.LIB;md5=2d5025d4aa3495befef8f17206a5b0a1 \ file://${S}/third_party/wayland-protocols/src/COPYING;md5=c7b12b6702da38ca028ace54aae3d484 \ @@ -437,6 +593,9 @@ LIC_FILES_CHKSUM = "\ file://${S}/third_party/webrtc/LICENSE;md5=ad296492125bc71530d06234d9bfebe0 \ file://${S}/third_party/webrtc/common_audio/third_party/ooura/LICENSE;md5=08458468f7a32acf1657071c5396f0c7 \ file://${S}/third_party/webrtc/common_audio/third_party/spl_sqrt_floor/LICENSE;md5=aa45275d6069f8d96c1f99741f72ea3f \ + file://${S}/third_party/webrtc/modules/third_party/fft/LICENSE;md5=0d4cd8529c0756f037fe890b12d1f6f8 \ + file://${S}/third_party/webrtc/modules/third_party/g711/LICENSE;md5=b36ce10e2d3d47fd5e3a465cbc9626da \ + file://${S}/third_party/webrtc/modules/third_party/g722/LICENSE;md5=b6ec8735a974f440bc0cd4d93929336e \ file://${S}/third_party/webrtc/modules/third_party/portaudio/LICENSE;md5=9f48147ba9bd3e7ca9a2392d2a3099c1 \ file://${S}/third_party/webrtc/rtc_base/third_party/sigslot/LICENSE;md5=d31e106d9b0e980d8b5773f151e33ec7 \ file://${S}/third_party/woff2/LICENSE;md5=027c71da9e4664fdf192e6ec615f4d18 \ @@ -450,5 +609,5 @@ LIC_FILES_CHKSUM = "\ file://${S}/third_party/zxcvbn-cpp/LICENSE.txt;md5=50f9303d0b3adb4952217b0d8c00d83f \ file://${S}/tools/mac/power/protos/third_party/pprof/LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57 \ file://${S}/url/third_party/mozilla/LICENSE.txt;md5=437ced1e9b232651b0912a9594da43b2 \ - file://${S}/v8/LICENSE;md5=f38a2942edcfe4abb45e9a83a1ad2f82 \ + file://${S}/v8/LICENSE;md5=3f722db07a0a940a6c859c5c9c2c78fd \ " diff --git a/meta-chromium/recipes-browser/chromium/files/0001-Drop-GN-compiler-settings-conflicting-with-OE.patch b/meta-chromium/recipes-browser/chromium/files/0001-Drop-GN-compiler-settings-conflicting-with-OE.patch index ea996acef..7780e076f 100644 --- a/meta-chromium/recipes-browser/chromium/files/0001-Drop-GN-compiler-settings-conflicting-with-OE.patch +++ b/meta-chromium/recipes-browser/chromium/files/0001-Drop-GN-compiler-settings-conflicting-with-OE.patch @@ -1,7 +1,7 @@ -From 2e867ac9e97b5ae2090b4de212d9c0e50eee653b Mon Sep 17 00:00:00 2001 +From 69bdbc33f4e6f2882f6ac8fb6bae883577887239 Mon Sep 17 00:00:00 2001 From: Max Ihlenfeldt Date: Tue, 25 Jun 2024 11:06:19 +0000 -Subject: [PATCH] Drop GN compiler settings conflicting with OE +Subject: [PATCH 01/11] Drop GN compiler settings conflicting with OE The clang cross compiler built with meta-clang has lots of these settings built-in and specifying them with GN confuses the compiler: @@ -19,10 +19,10 @@ Signed-off-by: Max Ihlenfeldt 1 file changed, 46 deletions(-) diff --git a/build/config/compiler/BUILD.gn b/build/config/compiler/BUILD.gn -index f58320b88f..309c3078a2 100644 +index 59942a3cf6..cf5e62eb15 100644 --- a/build/config/compiler/BUILD.gn +++ b/build/config/compiler/BUILD.gn -@@ -1240,26 +1240,6 @@ config("compiler_cpu_abi") { +@@ -1255,26 +1255,6 @@ config("compiler_cpu_abi") { "-msse3", ] } @@ -49,7 +49,7 @@ index f58320b88f..309c3078a2 100644 } else if (current_cpu == "mipsel" && !is_nacl) { ldflags += [ "-Wl,--hash-style=sysv" ] if (custom_toolchain == "") { -@@ -1267,9 +1247,6 @@ config("compiler_cpu_abi") { +@@ -1282,9 +1262,6 @@ config("compiler_cpu_abi") { if (is_android) { cflags += [ "--target=mipsel-linux-android" ] ldflags += [ "--target=mipsel-linux-android" ] @@ -59,7 +59,7 @@ index f58320b88f..309c3078a2 100644 } } else { cflags += [ "-EL" ] -@@ -1349,8 +1326,6 @@ config("compiler_cpu_abi") { +@@ -1364,8 +1341,6 @@ config("compiler_cpu_abi") { ldflags += [ "-Wl,--hash-style=sysv" ] if (custom_toolchain == "") { if (is_clang) { @@ -68,7 +68,7 @@ index f58320b88f..309c3078a2 100644 } else { cflags += [ "-EB" ] ldflags += [ "-EB" ] -@@ -1399,8 +1374,6 @@ config("compiler_cpu_abi") { +@@ -1414,8 +1389,6 @@ config("compiler_cpu_abi") { cflags += [ "--target=mips64el-linux-android" ] ldflags += [ "--target=mips64el-linux-android" ] } else { @@ -77,7 +77,7 @@ index f58320b88f..309c3078a2 100644 } } else { cflags += [ -@@ -1458,8 +1431,6 @@ config("compiler_cpu_abi") { +@@ -1473,8 +1446,6 @@ config("compiler_cpu_abi") { ldflags += [ "-Wl,--hash-style=sysv" ] if (custom_toolchain == "") { if (is_clang) { @@ -86,11 +86,10 @@ index f58320b88f..309c3078a2 100644 } else { cflags += [ "-EB", -@@ -1628,23 +1599,6 @@ config("compiler_deterministic") { - } +@@ -1656,23 +1627,6 @@ config("compiler_deterministic") { } } -- + - # Tells the compiler not to use absolute paths when passing the default - # paths to the tools it invokes. We don't want this because we don't - # really need it and it can mess up the RBE cache entries. @@ -107,6 +106,10 @@ index f58320b88f..309c3078a2 100644 - ldflags += [ "-no-canonical-prefixes" ] - } - } - } +- + if (use_libcxx_modules) { + cflags += [ + # This removes absolute paths from .pcm files. +-- +2.39.5 - config("clang_revision") { diff --git a/meta-chromium/recipes-browser/chromium/files/0002-v8-qemu-wrapper.patch b/meta-chromium/recipes-browser/chromium/files/0002-v8-qemu-wrapper.patch index 080de6e16..4b9123942 100644 --- a/meta-chromium/recipes-browser/chromium/files/0002-v8-qemu-wrapper.patch +++ b/meta-chromium/recipes-browser/chromium/files/0002-v8-qemu-wrapper.patch @@ -1,7 +1,7 @@ -From 60233d0570b4c9c9a9827616b224c9c93cbf6254 Mon Sep 17 00:00:00 2001 +From d5d34b719189ca2c3318e6636bf55197962e500c Mon Sep 17 00:00:00 2001 From: Raphael Kubo da Costa Date: Tue, 7 Nov 2017 15:24:32 +0100 -Subject: [PATCH] v8: qemu wrapper +Subject: [PATCH 02/11] v8: qemu wrapper The patch below makes the V8 binaries run during the build be invoked through QEMU, as they are built for the target. @@ -10,37 +10,36 @@ Upstream-Status: Inappropriate [embedder specific] Signed-off-by: Raphael Kubo da Costa Signed-off-by: Maksim Sisov - --- tools/v8_context_snapshot/BUILD.gn | 1 + v8/BUILD.gn | 4 ++++ 2 files changed, 5 insertions(+) diff --git a/tools/v8_context_snapshot/BUILD.gn b/tools/v8_context_snapshot/BUILD.gn -index f46bec2eb5..54383655c0 100644 +index 70c32b2fc9..88497d1436 100644 --- a/tools/v8_context_snapshot/BUILD.gn +++ b/tools/v8_context_snapshot/BUILD.gn -@@ -45,6 +45,7 @@ if (use_v8_context_snapshot) { - output_path = rebase_path(output_file, root_build_dir) - - args = [ -+ "./v8-qemu-wrapper.sh", - "./" + rebase_path(get_label_info(":v8_context_snapshot_generator", - "root_out_dir") + - "/v8_context_snapshot_generator", +@@ -49,6 +49,7 @@ if (use_v8_context_snapshot) { + output_path = rebase_path(output_file, root_build_dir) + + args = [ ++ "./v8-qemu-wrapper.sh", + "./" + rebase_path( + get_label_info( + ":v8_context_snapshot_generator($v8_snapshot_toolchain)", diff --git a/v8/BUILD.gn b/v8/BUILD.gn -index 0c559713ea..c8c95eb3a9 100644 +index f2f72a02c6..014104d3e7 100644 --- a/v8/BUILD.gn +++ b/v8/BUILD.gn -@@ -2274,6 +2274,7 @@ template("run_torque") { +@@ -2265,6 +2265,7 @@ template("run_torque") { } - + args = [ + "./v8-qemu-wrapper.sh", "./" + rebase_path( get_label_info(":torque($toolchain)", "root_out_dir") + "/torque", root_build_dir), -@@ -2437,6 +2438,7 @@ action("generate_bytecode_builtins_list") { +@@ -2440,6 +2441,7 @@ action("generate_bytecode_builtins_list") { outputs = [ "$target_gen_dir/builtins-generated/bytecodes-builtins-list.h" ] deps = [ ":bytecode_builtins_list_generator($v8_generator_toolchain)" ] args = [ @@ -48,19 +47,22 @@ index 0c559713ea..c8c95eb3a9 100644 "./" + rebase_path( get_label_info( ":bytecode_builtins_list_generator($v8_generator_toolchain)", -@@ -2509,6 +2511,7 @@ template("run_mksnapshot") { +@@ -2523,6 +2525,7 @@ template("run_mksnapshot") { } - + args += [ + "./v8-qemu-wrapper.sh", "./" + rebase_path(get_label_info(":mksnapshot($v8_snapshot_toolchain)", "root_out_dir") + "/mksnapshot", root_build_dir), -@@ -7451,6 +7454,7 @@ if (v8_enable_i18n_support) { +@@ -7566,6 +7569,7 @@ if (v8_enable_i18n_support) { outputs = [ output_file ] - + args = [ + "./v8-qemu-wrapper.sh", "./" + rebase_path( get_label_info( ":gen-regexp-special-case($v8_generator_toolchain)", +-- +2.39.5 + diff --git a/meta-chromium/recipes-browser/chromium/files/0003-wrapper-extra-flags.patch b/meta-chromium/recipes-browser/chromium/files/0003-wrapper-extra-flags.patch index 56493bbc4..f129d8e54 100644 --- a/meta-chromium/recipes-browser/chromium/files/0003-wrapper-extra-flags.patch +++ b/meta-chromium/recipes-browser/chromium/files/0003-wrapper-extra-flags.patch @@ -1,7 +1,7 @@ -From 71eca88e5d42d4732dfe53ea8fadf2199db519a2 Mon Sep 17 00:00:00 2001 +From 5b09c349a19ed28bbadba3061ca16d5aabb044e5 Mon Sep 17 00:00:00 2001 From: Raphael Kubo da Costa Date: Wed, 8 Nov 2017 16:43:47 +0100 -Subject: [PATCH] wrapper: extra flags +Subject: [PATCH 03/11] wrapper: extra flags The patch below is used to allow running Chromium as root as well as passing extra flags to it by default. @@ -9,7 +9,6 @@ extra flags to it by default. Upstream-Status: Inappropriate [embedder specific] Signed-off-by: Raphael Kubo da Costa - --- chrome/installer/linux/common/wrapper | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) @@ -21,9 +20,12 @@ index aaa46bf71f..7d8c8dd5fb 100755 @@ -36,5 +36,7 @@ exec < /dev/null exec > >(exec cat) exec 2> >(exec cat >&2) - + +CHROME_EXTRA_ARGS="" + # Note: exec -a below is a bashism. -exec -a "$0" "$HERE/@@PROGNAME@@" "$@" +exec -a "$0" "$HERE/@@PROGNAME@@" ${CHROME_EXTRA_ARGS} "$@" +-- +2.39.5 + diff --git a/meta-chromium/recipes-browser/chromium/files/0004-Delete-compiler-options-not-available-in-release-ver.patch b/meta-chromium/recipes-browser/chromium/files/0004-Delete-compiler-options-not-available-in-release-ver.patch index 1b3e23dcb..83e32739d 100644 --- a/meta-chromium/recipes-browser/chromium/files/0004-Delete-compiler-options-not-available-in-release-ver.patch +++ b/meta-chromium/recipes-browser/chromium/files/0004-Delete-compiler-options-not-available-in-release-ver.patch @@ -1,8 +1,8 @@ -From fc3a1af7d8d6ed6bc54d096e72cbf3d35ff4fa97 Mon Sep 17 00:00:00 2001 +From 5d022ee1f84195bafcc6436a6e1f9b6f00e986cc Mon Sep 17 00:00:00 2001 From: Khem Raj Date: Wed, 4 Dec 2019 19:06:54 -0800 -Subject: [PATCH] Delete compiler options not available in release versions of - clang _yet_ +Subject: [PATCH 04/11] Delete compiler options not available in release + versions of clang _yet_ * CREL feature is not supported on the current clang toolchain version, which causes build to fail with the following error: @@ -15,33 +15,31 @@ Upstream-Status: Inappropriate [ clang/master already supports them ] Signed-off-by: Khem Raj Signed-off-by: Randy MacLeod Signed-off-by: Ariel D'Alessandro - --- - build/config/compiler/BUILD.gn | 13 +++++-------- - 1 file changed, 5 insertions(+), 8 deletions(-) + build/config/compiler/BUILD.gn | 12 +++++------- + 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/build/config/compiler/BUILD.gn b/build/config/compiler/BUILD.gn -index 309c3078a2647..5eeb241fc9038 100644 +index cf5e62eb15..58e0fd0a71 100644 --- a/build/config/compiler/BUILD.gn +++ b/build/config/compiler/BUILD.gn -@@ -615,14 +615,6 @@ config("compiler") { - } else { +@@ -629,13 +629,6 @@ config("compiler") { cflags += [ "-ffp-contract=off" ] } -- + - # Enable ELF CREL (see crbug.com/357878242) for all platforms that use ELF - # (excluding toolchains that use an older version of LLVM). - # TODO(crbug.com/376278218): This causes segfault on Linux ARM builds. -- if (is_linux && !llvm_android_mainline && current_cpu != "arm" && +- if (is_linux && use_lld && !llvm_android_mainline && current_cpu != "arm" && - default_toolchain != "//build/toolchain/cros:target") { - cflags += [ "-Wa,--crel,--allow-experimental-crel" ] - } } - + # C11/C++11 compiler flags setup. -@@ -1924,6 +1916,11 @@ config("default_warnings") { +@@ -2083,6 +2076,11 @@ config("default_warnings") { } - + cflags += [ + # Disable unknown warnings, since system clang may not have + # backported newer warning yet unlike internal clang that @@ -50,4 +48,7 @@ index 309c3078a2647..5eeb241fc9038 100644 + # TODO(crbug.com/330524456): -Wcast-function-type is under -Wextra now. "-Wno-cast-function-type", + +-- +2.39.5 diff --git a/meta-chromium/recipes-browser/chromium/files/0005-avoid-link-latomic-failure-on-CentOS-8-host.patch b/meta-chromium/recipes-browser/chromium/files/0005-avoid-link-latomic-failure-on-CentOS-8-host.patch index 9a4359307..d9d034854 100644 --- a/meta-chromium/recipes-browser/chromium/files/0005-avoid-link-latomic-failure-on-CentOS-8-host.patch +++ b/meta-chromium/recipes-browser/chromium/files/0005-avoid-link-latomic-failure-on-CentOS-8-host.patch @@ -1,7 +1,7 @@ -From c68f4f68490005e1576ca2339b1124dca5f83867 Mon Sep 17 00:00:00 2001 +From 9eb5a6ed9a73d7fab673f049ea7e5b9c4218434c Mon Sep 17 00:00:00 2001 From: Hongxu Jia Date: Fri, 22 Jan 2021 00:02:25 +0800 -Subject: [PATCH] avoid link latomic failure on CentOS 8 host +Subject: [PATCH 05/11] avoid link latomic failure on CentOS 8 host When host (such as CentOS 8) did not install libatomic, there was a link failure on native. In fact, only target requires to link atomic, @@ -11,17 +11,16 @@ Upstream-Status: Inappropriate [oe specific] Signed-off-by: Hongxu Jia Signed-off-by: Randy MacLeod - --- base/BUILD.gn | 2 ++ build/config/linux/BUILD.gn | 2 ++ 2 files changed, 4 insertions(+) diff --git a/base/BUILD.gn b/base/BUILD.gn -index 5dee8a9226..bc3e57164a 100644 +index 5b41b3d805..2925aa607e 100644 --- a/base/BUILD.gn +++ b/base/BUILD.gn -@@ -1077,7 +1077,9 @@ component("base") { +@@ -1107,7 +1107,9 @@ component("base") { # Needed for if using newer C++ library than sysroot, except if # building inside the cros_sdk environment - use host_toolchain as a # more robust check for this. @@ -38,10 +37,13 @@ index 131bb71d1d..20f918ab82 100644 @@ -40,7 +40,9 @@ config("runtime_library") { defines = [ "OS_CHROMEOS" ] } - + + # Only target requires if ((!is_chromeos || default_toolchain != "//build/toolchain/cros:target") && + (current_toolchain != host_toolchain) && (!use_custom_libcxx || current_cpu == "mipsel")) { libs = [ "atomic" ] } +-- +2.39.5 + diff --git a/meta-chromium/recipes-browser/chromium/files/0006-Don-t-pass-unknown-LLVM-options.patch b/meta-chromium/recipes-browser/chromium/files/0006-Don-t-pass-unknown-LLVM-options.patch index 4c9bf722a..7e8cf1391 100644 --- a/meta-chromium/recipes-browser/chromium/files/0006-Don-t-pass-unknown-LLVM-options.patch +++ b/meta-chromium/recipes-browser/chromium/files/0006-Don-t-pass-unknown-LLVM-options.patch @@ -1,7 +1,7 @@ -From 651736ea42939ae67169d3429489ae9f304eae3c Mon Sep 17 00:00:00 2001 +From 9a75e4248e3099a26ddcdfb0efc42cf82b4ec131 Mon Sep 17 00:00:00 2001 From: Max Ihlenfeldt Date: Fri, 8 Dec 2023 11:47:43 +0000 -Subject: [PATCH] Don't pass unknown LLVM options +Subject: [PATCH 06/11] Don't pass unknown LLVM options Because we compile and link with an older LLVM version than upstream, we need to drop the following LLVM options that aren't available yet: @@ -17,13 +17,13 @@ Signed-off-by: Max Ihlenfeldt 1 file changed, 18 deletions(-) diff --git a/build/config/compiler/BUILD.gn b/build/config/compiler/BUILD.gn -index 8951f6006c..cc300e7122 100644 +index 58e0fd0a71..b3385edfc0 100644 --- a/build/config/compiler/BUILD.gn +++ b/build/config/compiler/BUILD.gn -@@ -591,24 +591,6 @@ config("compiler") { +@@ -604,24 +604,6 @@ config("compiler") { } } - + - # TODO(crbug.com/40283598): This causes binary size growth and potentially - # other problems. - # TODO(crbug.com/40284925): This isn't supported by Cronet's mainline llvm version. @@ -45,3 +45,6 @@ index 8951f6006c..cc300e7122 100644 # TODO(crbug.com/40192287): Investigate why/if this should be needed. if (is_win) { cflags += [ "/clang:-ffp-contract=off" ] +-- +2.39.5 + diff --git a/meta-chromium/recipes-browser/chromium/files/0007-Fix-constexpr-variable-must-be-initialized-by-a-cons.patch b/meta-chromium/recipes-browser/chromium/files/0007-Fix-constexpr-variable-must-be-initialized-by-a-cons.patch index 46aec8a3d..c13c3607a 100644 --- a/meta-chromium/recipes-browser/chromium/files/0007-Fix-constexpr-variable-must-be-initialized-by-a-cons.patch +++ b/meta-chromium/recipes-browser/chromium/files/0007-Fix-constexpr-variable-must-be-initialized-by-a-cons.patch @@ -1,8 +1,8 @@ -From 5a28cb783a33391476839a5b904f0eab7fb9b13d Mon Sep 17 00:00:00 2001 +From feb7f0598505fa6240a84ef8441c8c47d8e7b8f2 Mon Sep 17 00:00:00 2001 From: Max Ihlenfeldt Date: Fri, 22 Mar 2024 10:43:47 +0000 -Subject: [PATCH] Fix "constexpr variable must be initialized by a constant - expression" +Subject: [PATCH 07/11] Fix "constexpr variable must be initialized by a + constant expression" clang 17 still has some problems with constexpr strings. We need to change the problematic expressions to be const instead. @@ -10,13 +10,13 @@ change the problematic expressions to be const instead. Upstream-Status: Inappropriate [specific to older versions of clang] Signed-off-by: Max Ihlenfeldt --- - .../autofill/core/browser/data_model/autofill_i18n_api.h | 4 ++-- + .../core/browser/data_model/addresses/autofill_i18n_api.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) -diff --git a/components/autofill/core/browser/data_model/autofill_i18n_api.h b/components/autofill/core/browser/data_model/autofill_i18n_api.h -index fa1a06bdad..8e1fe01bfc 100644 ---- a/components/autofill/core/browser/data_model/autofill_i18n_api.h -+++ b/components/autofill/core/browser/data_model/autofill_i18n_api.h +diff --git a/components/autofill/core/browser/data_model/addresses/autofill_i18n_api.h b/components/autofill/core/browser/data_model/addresses/autofill_i18n_api.h +index e926bdca5b..799c4b3f80 100644 +--- a/components/autofill/core/browser/data_model/addresses/autofill_i18n_api.h ++++ b/components/autofill/core/browser/data_model/addresses/autofill_i18n_api.h @@ -16,8 +16,8 @@ namespace autofill::i18n_model_definition { // Country code that represents autofill's legacy address hierarchy model as // stored `kAutofillModelRules`. As a workaround for GCC we declare the @@ -26,5 +26,8 @@ index fa1a06bdad..8e1fe01bfc 100644 +const inline std::string kLegacyHierarchyCountryCodeString{"XX"}; +const AddressCountryCode kLegacyHierarchyCountryCode = AddressCountryCode(kLegacyHierarchyCountryCodeString); - + // Creates an instance of the address hierarchy model corresponding to the +-- +2.39.5 + diff --git a/meta-chromium/recipes-browser/chromium/files/0008-Use-the-correct-path-to-libclang_rt.builtins.a.patch b/meta-chromium/recipes-browser/chromium/files/0008-Use-the-correct-path-to-libclang_rt.builtins.a.patch index 421758343..a3e473b6c 100644 --- a/meta-chromium/recipes-browser/chromium/files/0008-Use-the-correct-path-to-libclang_rt.builtins.a.patch +++ b/meta-chromium/recipes-browser/chromium/files/0008-Use-the-correct-path-to-libclang_rt.builtins.a.patch @@ -1,7 +1,7 @@ -From b9b4dffd99fd57dc3acbce7304284c26a10e695e Mon Sep 17 00:00:00 2001 +From 22bb04cf2c85e78024a59cc0846026d9ecab8237 Mon Sep 17 00:00:00 2001 From: Max Ihlenfeldt Date: Tue, 19 Dec 2023 12:14:05 +0000 -Subject: [PATCH] Use the correct path to libclang_rt.builtins.a +Subject: [PATCH 08/11] Use the correct path to libclang_rt.builtins.a Chromium needs to link against libclang_rt.builtins.a, but it expects it in a slightly different directory than where it actually is in our @@ -17,16 +17,16 @@ code, but only allows us to specify a single `clang_base_path`. Upstream-Status: Inappropriate [specific to our sysroot setup] Signed-off-by: Max Ihlenfeldt --- - build/config/clang/BUILD.gn | 9 +++++---- - 1 file changed, 5 insertions(+), 4 deletions(-) + build/config/clang/BUILD.gn | 11 ++++++----- + 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/build/config/clang/BUILD.gn b/build/config/clang/BUILD.gn -index 44bd202d2b..6789beccdc 100644 +index 8c03235f5d..7933242823 100644 --- a/build/config/clang/BUILD.gn +++ b/build/config/clang/BUILD.gn -@@ -166,14 +166,15 @@ template("clang_lib") { - } else if (is_apple) { - _dir = "darwin" +@@ -208,16 +208,17 @@ template("clang_lib") { + assert(false) # Unhandled cpu type + } } else if (is_linux || is_chromeos) { + _dir = "linux" if (current_cpu == "x64") { @@ -41,6 +41,12 @@ index 44bd202d2b..6789beccdc 100644 } else if (current_cpu == "arm64") { - _dir = "aarch64-unknown-linux-gnu" + _suffix = "-aarch64" + } else if (current_cpu == "loong64") { +- _dir = "loongarch64-unknown-linux-gnu" ++ _suffix = "-loong64" } else { assert(false) # Unhandled cpu type } +-- +2.39.5 + diff --git a/meta-chromium/recipes-browser/chromium/files/0009-Adjust-the-Rust-build-to-our-needs.patch b/meta-chromium/recipes-browser/chromium/files/0009-Adjust-the-Rust-build-to-our-needs.patch index 495a56ada..3ab7a1cf8 100644 --- a/meta-chromium/recipes-browser/chromium/files/0009-Adjust-the-Rust-build-to-our-needs.patch +++ b/meta-chromium/recipes-browser/chromium/files/0009-Adjust-the-Rust-build-to-our-needs.patch @@ -1,7 +1,7 @@ -From f4f50a5de596d13d18f1f9b80f83e446936a4afb Mon Sep 17 00:00:00 2001 +From 8a8e2590d1c05348ed6f3155cf4038a8c7a6ba48 Mon Sep 17 00:00:00 2001 From: Max Ihlenfeldt Date: Tue, 16 Jan 2024 12:29:30 +0000 -Subject: [PATCH] Adjust the Rust build to our needs +Subject: [PATCH 09/11] Adjust the Rust build to our needs 1. Set `RUSTC_BOOTSTRAP=1` environment variable when calling rustc, to avoid the need of a nightly Rust toolchain. @@ -12,21 +12,25 @@ Subject: [PATCH] Adjust the Rust build to our needs part for the Rust "target triple", but Chromium assumes the vendor to always be "-unknown". This new arg lets us override the default when building target code. +4. Use host rust compiler when with host_system_allocator_toolchain +5. Remove arm32 bit specific clang flags from rust compiler invocation Upstream-Status: Inappropriate [specific to our build setup] +Co-authored-by: Caner Altinbasak Signed-off-by: Max Ihlenfeldt --- - build/config/rust.gni | 26 +++++++++++++++++++------- + build/config/rust.gni | 28 ++++++++++++++++++---------- + build/rust/filter_clang_args.py | 5 +++++ build/rust/rustc_wrapper.py | 1 + build/rust/std/BUILD.gn | 28 +++++++++++++++++++++------- build/rust/std/find_std_rlibs.py | 16 +++++++++++----- - 4 files changed, 52 insertions(+), 19 deletions(-) + 5 files changed, 56 insertions(+), 22 deletions(-) diff --git a/build/config/rust.gni b/build/config/rust.gni -index 60856e609d..4baeaecb9c 100644 +index bd18d13119..e260576fba 100644 --- a/build/config/rust.gni +++ b/build/config/rust.gni -@@ -102,6 +102,11 @@ declare_args() { +@@ -95,6 +95,11 @@ declare_args() { # a platform. Mostly applicable to Windows, where new versions can handle ANSI # escape sequences but it's not reliable in general. force_rustc_color_output = false @@ -36,15 +40,15 @@ index 60856e609d..4baeaecb9c 100644 + # platform default. + rust_target_triple_vendor_for_target = "" } - - # Use the Rust toolchain built in-tree. When false, we use the prebuilt Rust -@@ -174,14 +179,21 @@ if (enable_rust) { + + declare_args() { +@@ -187,14 +192,21 @@ if (enable_rust) { # https://issues.chromium.org/u/1/issues/372512092#comment5 for an example. rust_abi_target = "" if (is_linux || is_chromeos) { + vendor = "-unknown" + -+ is_host = current_toolchain == host_toolchain || toolchain_for_rust_host_build_tools ++ is_host = current_toolchain == host_toolchain || current_toolchain == host_system_allocator_toolchain || toolchain_for_rust_host_build_tools + if (!is_host && rust_target_triple_vendor_for_target != "") { + vendor = rust_target_triple_vendor_for_target + } @@ -63,22 +67,29 @@ index 60856e609d..4baeaecb9c 100644 cargo_target_abi = "" } else if (current_cpu == "arm") { if (arm_float_abi == "hard") { -@@ -191,18 +203,18 @@ if (is_linux || is_chromeos) { - } - if (arm_arch == "armv7-a" || arm_arch == "armv7") { - # No way to inform Rust about the -a suffix. -- rust_abi_target = "armv7-unknown-linux-gnueabi" + float_suffix +@@ -213,18 +225,14 @@ if (is_linux || is_chromeos) { + # The thumbv7 vs. armv7 distinction is for legacy reasons and both + # targets in fact target Thumb, see: + # https://github.com/rust-lang/rust/issues/44722 +- if (arm_use_neon) { +- rust_abi_target = "thumbv7neon-unknown-linux-gnueabi" + float_suffix +- } else { +- rust_abi_target = "armv7-unknown-linux-gnueabi" + float_suffix +- } + rust_abi_target = "armv7" + vendor + "-linux-gnueabi" + float_suffix cargo_target_abi = "eabi" + float_suffix } else { -- rust_abi_target = "arm-unknown-linux-gnueabi" + float_suffix -+ rust_abi_target = "arm" + vendor + "-linux-gnueabi" + float_suffix + rust_abi_target = "arm-unknown-linux-gnueabi" + float_suffix cargo_target_abi = "eabi" + float_suffix } } else if (current_cpu == "riscv64") { - rust_abi_target = "riscv64gc-unknown-linux-gnu" + rust_abi_target = "riscv64gc" + vendor + "-linux-gnu" cargo_target_abi = "" + } else if (current_cpu == "ppc64") { + rust_abi_target = "powerpc64le-unknown-linux-gnu" +@@ -237,7 +245,7 @@ if (is_linux || is_chromeos) { + cargo_target_abi = "" } else { # Best guess for other future platforms. - rust_abi_target = current_cpu + "-unknown-linux-gnu" @@ -86,6 +97,22 @@ index 60856e609d..4baeaecb9c 100644 cargo_target_abi = "" } } else if (is_android) { +diff --git a/build/rust/filter_clang_args.py b/build/rust/filter_clang_args.py +index 5a1843c0df..7fb4b49516 100644 +--- a/build/rust/filter_clang_args.py ++++ b/build/rust/filter_clang_args.py +@@ -24,6 +24,11 @@ def filter_clang_args(clangargs): + pass + elif args[i].startswith('-plugin-arg'): + i += 2 ++ # Filter out ARM-specific flags that aren't supported on other architectures ++ elif args[i].startswith('-mbranch-protection'): ++ pass # Skip this argument ++ elif args[i].startswith('-mfpu='): ++ pass + else: + yield args[i] + i += 1 diff --git a/build/rust/rustc_wrapper.py b/build/rust/rustc_wrapper.py index 8f2096dfe5..de43d44eed 100755 --- a/build/rust/rustc_wrapper.py @@ -95,27 +122,27 @@ index 8f2096dfe5..de43d44eed 100755 ldflags = remaining_args[ldflags_separator + 1:rustenv_separator] rustenv = remaining_args[rustenv_separator + 1:sources_separator] + rustenv += ["RUSTC_BOOTSTRAP=1"] - + abs_build_root = os.getcwd().replace('\\', '/') + '/' is_windows = sys.platform == 'win32' or args.target_windows diff --git a/build/rust/std/BUILD.gn b/build/rust/std/BUILD.gn -index b5f5291283..9619dccc45 100644 +index bb2c988452..fdddf68d46 100644 --- a/build/rust/std/BUILD.gn +++ b/build/rust/std/BUILD.gn -@@ -191,7 +191,8 @@ if (toolchain_has_rust) { +@@ -168,7 +168,8 @@ if (toolchain_has_rust) { # our locally-built std. Both reside in root_out_dir: we must only have one of # each per GN toolchain anyway. - + - sysroot_lib_subdir = "lib/rustlib/$rust_abi_target/lib" + sysroot_target_subdir = "lib/rustlib/$rust_abi_target" + sysroot_lib_subdir = "$sysroot_target_subdir/lib" - + if (!rust_prebuilt_stdlib) { local_rustc_sysroot = "$root_out_dir/local_rustc_sysroot" -@@ -320,12 +321,12 @@ if (toolchain_has_rust) { +@@ -295,12 +296,12 @@ if (toolchain_has_rust) { rust_abi_target, ] - + - outputs = [] + outputs = [ "$target_out_dir/target.json" ] foreach(lib, all_stdlibs_to_copy) { @@ -126,9 +153,9 @@ index b5f5291283..9619dccc45 100644 - outputs += [ "$target_out_dir/$lib" ] + outputs += [ "$target_out_dir/lib/$lib" ] } - + visibility = [ ":*" ] -@@ -338,8 +339,18 @@ if (toolchain_has_rust) { +@@ -313,8 +314,18 @@ if (toolchain_has_rust) { "enable_rust=false") deps = [ ":find_stdlib" ] sources = get_target_outputs(":find_stdlib") @@ -146,10 +173,10 @@ index b5f5291283..9619dccc45 100644 + deps = [ ":find_stdlib" ] + sources = [ "$target_out_dir/target.json" ] + outputs = [ "$prebuilt_rustc_sysroot/$sysroot_target_subdir/target.json" ] - + visibility = [ ":*" ] } -@@ -379,7 +390,10 @@ if (toolchain_has_rust) { +@@ -354,7 +365,10 @@ if (toolchain_has_rust) { ":prebuilt_stdlib_libs", ":stdlib_public_dependent_libs", ] @@ -158,26 +185,26 @@ index b5f5291283..9619dccc45 100644 + ":prebuilt_rustc_copy_to_sysroot", + ":prebuilt_rustc_copy_target_json_to_sysroot", + ] - - # The host builds tools toolchain supports Rust only and does not use - # the allocator remapping to point it to PartitionAlloc. + } + } + } diff --git a/build/rust/std/find_std_rlibs.py b/build/rust/std/find_std_rlibs.py index 386258f890..e8fdaa904a 100755 --- a/build/rust/std/find_std_rlibs.py +++ b/build/rust/std/find_std_rlibs.py @@ -17,7 +17,7 @@ import re from collections import defaultdict - + EXPECTED_STDLIB_INPUT_REGEX = re.compile(r"([0-9a-z_]+)(?:-([0-9]+))?$") -RLIB_NAME_REGEX = re.compile(r"lib([0-9a-z_]+)-([0-9a-f]+)\.rlib$") +RLIB_NAME_REGEX = re.compile(r"lib([0-9a-z_]+)(-([0-9a-f]+))?\.rlib$") - - + + def main(): @@ -52,6 +52,8 @@ def main(): rustc_args.extend(["--target", args.target]) rustlib_dir = subprocess.check_output(rustc_args).rstrip().decode() - + + lib_output_dir = os.path.join(args.output, 'lib') + # Copy the rlibs to a predictable location. Whilst we're doing so, @@ -189,7 +216,7 @@ index 386258f890..e8fdaa904a 100755 depfile.write( - "%s:" % (os.path.join(args.output, "lib%s.rlib" % args.depfile_target))) + "%s:" % (os.path.join(lib_output_dir, "lib%s.rlib" % args.depfile_target))) - + def copy_file(infile, outfile): depfile.write(f" {infile}") @@ -99,7 +101,7 @@ def main(): @@ -198,27 +225,30 @@ index 386258f890..e8fdaa904a 100755 # which we need for statically computable gn dependency rules. - (crate_name, metadata) = RLIB_NAME_REGEX.match(f).group(1, 2) + (crate_name, metadata) = RLIB_NAME_REGEX.match(f).group(1, 3) - + # Use the number of times we've seen this name to disambiguate the output # filenames. Since we sort the input filenames including the metadata, @@ -117,14 +119,18 @@ def main(): output_filename = f"lib{concise_name}.rlib" - + infile = os.path.join(rustlib_dir, f) - outfile = os.path.join(args.output, output_filename) + outfile = os.path.join(lib_output_dir, output_filename) copy_file(infile, outfile) - + for f in extra_libs: infile = os.path.join(rustlib_dir, f) - outfile = os.path.join(args.output, f) + outfile = os.path.join(lib_output_dir, f) copy_file(infile, outfile) - + + infile = os.path.join(os.environ['RUST_TARGET_PATH'], f'{args.target}.json') + outfile = os.path.join(args.output, 'target.json') + copy_file(infile, outfile) + depfile.write("\n") - + + +-- +2.39.5 diff --git a/meta-chromium/recipes-browser/chromium/files/0010-Don-t-require-profiler_builtins.rlib.patch b/meta-chromium/recipes-browser/chromium/files/0010-Don-t-require-profiler_builtins.rlib.patch index fa15e7d6a..56c5156a2 100644 --- a/meta-chromium/recipes-browser/chromium/files/0010-Don-t-require-profiler_builtins.rlib.patch +++ b/meta-chromium/recipes-browser/chromium/files/0010-Don-t-require-profiler_builtins.rlib.patch @@ -1,7 +1,7 @@ -From d6862d22d64ddb3e1b85c086eb8c14e69450ceb0 Mon Sep 17 00:00:00 2001 +From 6d8f717cb23cc00c25182d5377ffebc9028761d3 Mon Sep 17 00:00:00 2001 From: Max Ihlenfeldt Date: Wed, 7 Feb 2024 11:58:30 +0000 -Subject: [PATCH] Don't require profiler_builtins.rlib +Subject: [PATCH 10/11] Don't require profiler_builtins.rlib This library is only needed for profiling builds, which we don't do. Including it leads to compile errors on with OE's current master branch @@ -14,10 +14,10 @@ Signed-off-by: Max Ihlenfeldt 1 file changed, 1 deletion(-) diff --git a/build/rust/std/BUILD.gn b/build/rust/std/BUILD.gn -index 38e5ab7645..b5f5291283 100644 +index fdddf68d46..7afe61ab75 100644 --- a/build/rust/std/BUILD.gn +++ b/build/rust/std/BUILD.gn -@@ -100,7 +100,6 @@ if (toolchain_has_rust) { +@@ -76,7 +76,6 @@ if (toolchain_has_rust) { # don't need to pass to the C++ linker because they're used for specialized # purposes. skip_stdlib_files = [ @@ -25,3 +25,6 @@ index 38e5ab7645..b5f5291283 100644 "rustc_std_workspace_alloc", "rustc_std_workspace_core", "rustc_std_workspace_std", +-- +2.39.5 + diff --git a/meta-chromium/recipes-browser/chromium/files/0011-Disable-crabbyavif-to-fix-build-errors.patch b/meta-chromium/recipes-browser/chromium/files/0011-Disable-crabbyavif-to-fix-build-errors.patch deleted file mode 100644 index cdd4e27a1..000000000 --- a/meta-chromium/recipes-browser/chromium/files/0011-Disable-crabbyavif-to-fix-build-errors.patch +++ /dev/null @@ -1,97 +0,0 @@ -From a51bea5534076916587c4bebc2299d7881d6fad7 Mon Sep 17 00:00:00 2001 -From: Max Ihlenfeldt -Date: Mon, 5 Aug 2024 09:33:42 +0000 -Subject: [PATCH] Disable crabbyavif to fix build errors - -It seems the way upstream sets up bindgen does not play well with -cross-compiling in certain configurations. Currently, this only affects -building the crabbyavif third-party library, which is still being tested -behind a feature flag. Until we find a way to fix the bindgen setup -(either upstream or downstream), we just disable crabbyavif by reverting -the CL that added it to the build, https://crrev.com/c/5542730. - -Upstream-Status: Inappropriate [upstream ticket https://crbug.com/357017325] -Signed-off-by: Max Ihlenfeldt ---- - .../renderer/platform/image-decoders/BUILD.gn | 8 +------- - .../platform/image-decoders/image_decoder.cc | 18 ++++-------------- - 2 files changed, 5 insertions(+), 21 deletions(-) - -diff --git a/third_party/blink/renderer/platform/image-decoders/BUILD.gn b/third_party/blink/renderer/platform/image-decoders/BUILD.gn -index 6dbddaa2e3..2b5f660196 100644 ---- a/third_party/blink/renderer/platform/image-decoders/BUILD.gn -+++ b/third_party/blink/renderer/platform/image-decoders/BUILD.gn -@@ -82,12 +82,9 @@ component("image_decoders") { - sources += [ - "avif/avif_image_decoder.cc", - "avif/avif_image_decoder.h", -- "avif/crabbyavif_image_decoder.cc", -- "avif/crabbyavif_image_decoder.h", - ] - - deps += [ -- "//third_party/crabbyavif", - "//third_party/libavif", - ] - } -@@ -136,9 +133,6 @@ source_set("unit_tests") { - } - - if (enable_av1_decoder) { -- sources += [ -- "avif/avif_image_decoder_test.cc", -- "avif/crabbyavif_image_decoder_test.cc", -- ] -+ sources += [ "avif/avif_image_decoder_test.cc" ] - } - } -diff --git a/third_party/blink/renderer/platform/image-decoders/image_decoder.cc b/third_party/blink/renderer/platform/image-decoders/image_decoder.cc -index bdbbe08142..8b08f320cd 100644 ---- a/third_party/blink/renderer/platform/image-decoders/image_decoder.cc -+++ b/third_party/blink/renderer/platform/image-decoders/image_decoder.cc -@@ -37,7 +37,6 @@ - #include "media/media_buildflags.h" - #include "skia/ext/cicp.h" - #include "third_party/blink/public/common/buildflags.h" --#include "third_party/blink/public/common/features.h" - #include "third_party/blink/public/platform/platform.h" - #include "third_party/blink/renderer/platform/image-decoders/bmp/bmp_image_decoder.h" - #include "third_party/blink/renderer/platform/image-decoders/fast_shared_buffer_reader.h" -@@ -53,7 +52,6 @@ - - #if BUILDFLAG(ENABLE_AV1_DECODER) - #include "third_party/blink/renderer/platform/image-decoders/avif/avif_image_decoder.h" --#include "third_party/blink/renderer/platform/image-decoders/avif/crabbyavif_image_decoder.h" - #endif - - namespace blink { -@@ -198,9 +196,7 @@ String SniffMimeTypeInternal(scoped_refptr reader) { - return "image/bmp"; - } - #if BUILDFLAG(ENABLE_AV1_DECODER) -- if (base::FeatureList::IsEnabled(blink::features::kCrabbyAvif) -- ? CrabbyAVIFImageDecoder::MatchesAVIFSignature(fast_reader) -- : AVIFImageDecoder::MatchesAVIFSignature(fast_reader)) { -+ if (AVIFImageDecoder::MatchesAVIFSignature(fast_reader)) { - return "image/avif"; - } - #endif -@@ -310,15 +306,9 @@ std::unique_ptr ImageDecoder::CreateByMimeType( - max_decoded_bytes); - #if BUILDFLAG(ENABLE_AV1_DECODER) - } else if (mime_type == "image/avif") { -- if (base::FeatureList::IsEnabled(blink::features::kCrabbyAvif)) { -- decoder = std::make_unique( -- alpha_option, high_bit_depth_decoding_option, color_behavior, -- aux_image, max_decoded_bytes, animation_option); -- } else { -- decoder = std::make_unique( -- alpha_option, high_bit_depth_decoding_option, color_behavior, -- aux_image, max_decoded_bytes, animation_option); -- } -+ decoder = std::make_unique( -+ alpha_option, high_bit_depth_decoding_option, color_behavior, -+ aux_image, max_decoded_bytes, animation_option); - #endif - } - diff --git a/meta-chromium/recipes-browser/chromium/files/0011-fix-check_version-Only-compare-node.js-major-version.patch b/meta-chromium/recipes-browser/chromium/files/0011-fix-check_version-Only-compare-node.js-major-version.patch new file mode 100644 index 000000000..0ac0c5bd1 --- /dev/null +++ b/meta-chromium/recipes-browser/chromium/files/0011-fix-check_version-Only-compare-node.js-major-version.patch @@ -0,0 +1,42 @@ +From 8dec7cef6d2e041b363371f611156b473a8aca95 Mon Sep 17 00:00:00 2001 +From: Caner Altinbasak +Date: Wed, 2 Jul 2025 15:46:35 +0100 +Subject: [PATCH 11/11] fix(check_version):Only compare node.js major version + number + +Yocto has a slightly newer version of node.js available. Compare only +the major version to avoid build errors. + +Upstream-Status: Inappropriate [specific to our build setup] +--- + third_party/node/check_version.js | 11 ++++++++--- + 1 file changed, 8 insertions(+), 3 deletions(-) + +diff --git a/third_party/node/check_version.js b/third_party/node/check_version.js +index 0a037ab449..72201b473e 100644 +--- a/third_party/node/check_version.js ++++ b/third_party/node/check_version.js +@@ -28,12 +28,17 @@ async function main() { + await readFile(args.expected_version_file, {encoding: 'utf-8'}); + const expectedVersion = extractExpectedVersion(contents); + ++ // Extract major version numbers for comparison ++ const expectedMajor = expectedVersion.match(/^v?(\d+)/)?.[1]; ++ const actualMajor = process.version.match(/^v?(\d+)/)?.[1]; ++ + const errorMessage = +- `Failed NodeJS version check: Expected version '${expectedVersion}', ` + +- `but found '${process.version}'. Did you run 'gclient sync'? If the ` + ++ `Failed NodeJS version check: Expected major version '${expectedMajor}', ` + ++ `but found '${actualMajor}'. Expected full version was '${expectedVersion}', ` + ++ `actual version is '${process.version}'. Did you run 'gclient sync'? If the ` + + `problem persists try running 'gclient sync -f' instead, or deleting ` + + `third_party/node/{linux,win,mac} folders and trying again.`; + +- assert.equal(expectedVersion, process.version, errorMessage); ++ assert.equal(expectedMajor, actualMajor, errorMessage); + } + main(); +-- +2.39.5 + diff --git a/meta-chromium/recipes-browser/chromium/files/0012-Revert-Allow-and-use-std-hardware_destructive_interf.patch b/meta-chromium/recipes-browser/chromium/files/0012-Revert-Allow-and-use-std-hardware_destructive_interf.patch deleted file mode 100644 index c9a94ffd5..000000000 --- a/meta-chromium/recipes-browser/chromium/files/0012-Revert-Allow-and-use-std-hardware_destructive_interf.patch +++ /dev/null @@ -1,116 +0,0 @@ -From 5f8558eedf059e4711d234e6da0413ab26b86334 Mon Sep 17 00:00:00 2001 -From: Max Ihlenfeldt -Date: Mon, 21 Oct 2024 10:08:17 +0000 -Subject: [PATCH] Revert "Allow (and use) - std::hardware_destructive_interference_size." - -libcxx only defines `std::hardware_{con,de}structive_interference_size` -if `__GCC_{CON,DE}STRUCTIVE_SIZE` are defined. clang only defines these -since version 19.1, see -https://github.com/llvm/llvm-project/commit/72c373bf. - -As Scarthgap uses clang 18.1, we need to revert -https://crrev.com/c/5767325, which uses -`std::hardware_destructive_interference_size`. - -Upstream-Status: Inappropriate [specific to older versions of clang] -Signed-off-by: Max Ihlenfeldt ---- - .../providers/cast/channel/enum_table.h | 4 +- - styleguide/c++/c++-features.md | 54 ++++++++++--------- - 2 files changed, 31 insertions(+), 27 deletions(-) - -diff --git a/components/media_router/common/providers/cast/channel/enum_table.h b/components/media_router/common/providers/cast/channel/enum_table.h -index fba9c05770..9cd7596443 100644 ---- a/components/media_router/common/providers/cast/channel/enum_table.h -+++ b/components/media_router/common/providers/cast/channel/enum_table.h -@@ -12,7 +12,6 @@ - - #include - #include --#include - #include - #include - #include -@@ -366,7 +365,8 @@ class EnumTable { - - private: - #ifdef ARCH_CPU_64_BITS -- alignas(std::hardware_destructive_interference_size) -+ // Align the data on a cache line boundary. -+ alignas(64) - #endif - std::initializer_list data_; - bool is_sorted_; -diff --git a/styleguide/c++/c++-features.md b/styleguide/c++/c++-features.md -index 8bde1b84da..a9222082f6 100644 ---- a/styleguide/c++/c++-features.md -+++ b/styleguide/c++/c++-features.md -@@ -574,6 +574,35 @@ Overlaps with utilities in `base/strings/string_number_conversions.h`, which are - easier to use correctly. - *** - -+### std::hardware_{con,de}structive_interference_size [banned] -+ -+```c++ -+struct SharedData { -+ ReadOnlyFrequentlyUsed data; -+ alignas(std::hardware_destructive_interference_size) std::atomic counter; -+}; -+``` -+ -+**Description:** The `std::hardware_destructive_interference_size` constant is -+useful to avoid false sharing (destructive interference) between variables that -+would otherwise occupy the same cacheline. In contrast, -+`std::hardware_constructive_interference_size` is helpful to promote true -+sharing (constructive interference), e.g. to support better locality for -+non-contended data. -+ -+**Documentation:** -+[`std::hardware_destructive_interference_size`](https://en.cppreference.com/w/cpp/thread/hardware_destructive_interference_size), -+[`std::hardware_constructive_interference_size`](https://en.cppreference.com/w/cpp/thread/hardware_destructive_interference_size) -+ -+**Notes:** -+*** promo -+Banned for now since these are -+[not supported yet](https://github.com/llvm/llvm-project/issues/60174). Allow -+once supported. -+ -+[Discussion thread](https://groups.google.com/a/chromium.org/g/cxx/c/cwktrFxxUY4) -+*** -+ - ### std::in_place{_type,_index}[_t] [banned] - - ```c++ -@@ -1200,31 +1229,6 @@ avoiding the need to use the `erase(remove(...` paradigm. - [Migration bug](https://crbug.com/1414639) - *** - --### std::hardware_{con,de}structive_interference_size [allowed] -- --```c++ --struct SharedData { -- ReadOnlyFrequentlyUsed data; -- alignas(std::hardware_destructive_interference_size) std::atomic counter; --}; --``` -- --**Description:** The `std::hardware_destructive_interference_size` constant is --useful to avoid false sharing (destructive interference) between variables that --would otherwise occupy the same cacheline. In contrast, --`std::hardware_constructive_interference_size` is helpful to promote true --sharing (constructive interference), e.g. to support better locality for --non-contended data. -- --**Documentation:** --[`std::hardware_destructive_interference_size`](https://en.cppreference.com/w/cpp/thread/hardware_destructive_interference_size), --[`std::hardware_constructive_interference_size`](https://en.cppreference.com/w/cpp/thread/hardware_destructive_interference_size) -- --**Notes:** --*** promo --[Discussion thread](https://groups.google.com/a/chromium.org/g/cxx/c/cwktrFxxUY4) --*** -- - ### std::is_[un]bounded_array [allowed] - - ```c++ diff --git a/meta-chromium/recipes-browser/chromium/files/0012-chromium-fix-v4l2-compiler-error-on-arm.patch b/meta-chromium/recipes-browser/chromium/files/0012-chromium-fix-v4l2-compiler-error-on-arm.patch new file mode 100644 index 000000000..6fd9cc17e --- /dev/null +++ b/meta-chromium/recipes-browser/chromium/files/0012-chromium-fix-v4l2-compiler-error-on-arm.patch @@ -0,0 +1,31 @@ +From 335090e8e3480bdeea12687f8aa2b0e3dd4bf868 Mon Sep 17 00:00:00 2001 +From: Caner Altinbasak +Date: Sat, 26 Jul 2025 12:47:57 +0100 +Subject: [PATCH] chromium: fix v4l2 compiler error on arm + +fixes: +../../media/gpu/v4l2/legacy/v4l2_video_decoder_backend_stateful.cc:450:20: +error: non-constant-expression cannot be narrowed from type '__suseconds64_t' +(aka 'long long') to 'long' in initializer list [-Wc++11-narrowing] + +Upstream-Status: Inappropriate [specific to our build setup] +--- + media/gpu/v4l2/legacy/v4l2_video_decoder_backend_stateful.cc | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/media/gpu/v4l2/legacy/v4l2_video_decoder_backend_stateful.cc b/media/gpu/v4l2/legacy/v4l2_video_decoder_backend_stateful.cc +index b77f2b08d7..9069b97c02 100644 +--- a/media/gpu/v4l2/legacy/v4l2_video_decoder_backend_stateful.cc ++++ b/media/gpu/v4l2/legacy/v4l2_video_decoder_backend_stateful.cc +@@ -447,7 +447,7 @@ void V4L2StatefulVideoDecoderBackend::OnOutputBufferDequeued( + const struct timeval timeval = buffer->GetTimeStamp(); + const struct timespec timespec = { + .tv_sec = timeval.tv_sec, +- .tv_nsec = timeval.tv_usec * 1000, ++ .tv_nsec = static_cast(timeval.tv_usec * 1000), + }; + + const int64_t flat_timespec = +-- +2.39.5 + diff --git a/meta-chromium/recipes-browser/chromium/files/0013-Revert-Set-Rust-symbol-visibility-to-hidden-when-C-s.patch b/meta-chromium/recipes-browser/chromium/files/0013-Revert-Set-Rust-symbol-visibility-to-hidden-when-C-s.patch deleted file mode 100644 index 0d291298b..000000000 --- a/meta-chromium/recipes-browser/chromium/files/0013-Revert-Set-Rust-symbol-visibility-to-hidden-when-C-s.patch +++ /dev/null @@ -1,73 +0,0 @@ -From 6302ea4936e24232af4d50257b94a079471063cf Mon Sep 17 00:00:00 2001 -From: Ariel D'Alessandro -Date: Thu, 14 Nov 2024 22:23:28 -0300 -Subject: [PATCH] Revert "Set Rust symbol visibility to hidden when C++ symbols - are" - -This reverts chromium commit ee3900fd57b3c580aefff15c64052904d81b7760. -* Change-Id: https://crrev.com/c/5966273 - -Fixes the following compilation error: - -``` -| FAILED: obj/third_party/rust/ryu/v1/lib/libryu_lib.rlib -[...] -| error: unknown unstable option: `default-visibility` -``` - -This patch will be dropped once Rust >= 1.83 is available, which -includes: -* rust-lang/rust#130005 [0] -* rust-lang/rust#131519 [1] - -Note that currently meta-lts-mixins [2] provides the following versions: -* kirkstone: `1.80.1` -* scarthgap: `1.81.0` - -[0] https://github.com/rust-lang/rust/pull/130005 -[1] https://github.com/rust-lang/rust/pull/131519 -[2] https://git.yoctoproject.org/meta-lts-mixins - -Upstream-Status: Inappropriate [specific to older versions of rust] -Signed-off-by: Ariel D'Alessandro ---- - build/config/gcc/BUILD.gn | 1 - - build/sanitizers/asan_suppressions.cc | 13 +++++++++++++ - 2 files changed, 13 insertions(+), 1 deletion(-) - -diff --git a/build/config/gcc/BUILD.gn b/build/config/gcc/BUILD.gn -index a659210b196aa..147ebfc53426c 100644 ---- a/build/config/gcc/BUILD.gn -+++ b/build/config/gcc/BUILD.gn -@@ -32,7 +32,6 @@ declare_args() { - # See http://gcc.gnu.org/wiki/Visibility - config("symbol_visibility_hidden") { - cflags = [ "-fvisibility=hidden" ] -- rustflags = [ "-Zdefault-visibility=hidden" ] - - # Visibility attribute is not supported on AIX. - if (current_os != "aix") { -diff --git a/build/sanitizers/asan_suppressions.cc b/build/sanitizers/asan_suppressions.cc -index bfbd4b792a919..f0557be762c40 100644 ---- a/build/sanitizers/asan_suppressions.cc -+++ b/build/sanitizers/asan_suppressions.cc -@@ -15,6 +15,19 @@ - // // http://crbug.com/178677 - // "interceptor_via_lib:libsqlite3.so\n" - char kASanDefaultSuppressions[] = -+ // https://crbug.com/1471542 false positive odr violations from Rust code. -+ "odr_violation:^core::\n" -+ "odr_violation:^object::\n" -+ "odr_violation:^std::io::\n" -+ "odr_violation:^serde::\n" -+ "odr_violation:^serde_json_lenient::\n" -+ "odr_violation:^std::panicking::\n" -+ "odr_violation:^std::thread::Builder::\n" -+ "odr_violation:^read_fonts::tables::\n" -+ "odr_violation:^std_detect::detect::cache::\n" -+ "odr_violation:^alloc::sync::\n" -+ "odr_violation:^log::\n" -+ - // End of suppressions. - // PLEASE READ ABOVE BEFORE ADDING NEW SUPPRESSIONS. - ""; // Please keep this semicolon. diff --git a/meta-chromium/recipes-browser/chromium/files/0014-pdfium-Fix-missing-PDFiumAPIStringBufferAdapter-temp.patch b/meta-chromium/recipes-browser/chromium/files/0014-pdfium-Fix-missing-PDFiumAPIStringBufferAdapter-temp.patch deleted file mode 100644 index e47cc472f..000000000 --- a/meta-chromium/recipes-browser/chromium/files/0014-pdfium-Fix-missing-PDFiumAPIStringBufferAdapter-temp.patch +++ /dev/null @@ -1,50 +0,0 @@ -From 20deec0782b78d1c8302764e852ff174f7a4f564 Mon Sep 17 00:00:00 2001 -From: Ariel D'Alessandro -Date: Fri, 15 Nov 2024 00:49:27 -0300 -Subject: [PATCH] pdfium: Fix missing PDFiumAPIStringBufferAdapter template - argument - -Fix the following compilation error: - -``` -| ../../pdf/pdfium/pdfium_api_wrappers.cc:150:32: error: alias template - 'PDFiumAPIStringBufferAdapter' requires template arguments; argument - deduction only allowed for class templates -| 150 | PDFiumAPIStringBufferAdapter adapter(&name, expected_size, -| | ^ -| ../../pdf/pdfium/pdfium_api_string_buffer_adapter.h:173:1: note: template - is declared here -| 173 | using PDFiumAPIStringBufferAdapter = -| | ^ -| 1 error generated. -``` - -This patch will be dropped once clang >= 19.1.0 is available, which -includes support for class template argument deduction (CTAD) for type -alias templates (P1814R0 [0]) (#54051 [1]). - -Note that currently meta-clang [2] provides the clang version `18.1.6`. - -[0] https://wg21.link/p1814r0 -[1] https://github.com/llvm/llvm-project/issues/54051 -[2] https://github.com/kraj/meta-clang - -Upstream-Status: Inappropriate [specific to older versions of clang] -Signed-off-by: Ariel D'Alessandro ---- - pdf/pdfium/pdfium_api_wrappers.cc | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/pdf/pdfium/pdfium_api_wrappers.cc b/pdf/pdfium/pdfium_api_wrappers.cc -index b13fe20875e61..60c973b7152ab 100644 ---- a/pdf/pdfium/pdfium_api_wrappers.cc -+++ b/pdf/pdfium/pdfium_api_wrappers.cc -@@ -147,7 +147,7 @@ std::u16string GetPageObjectMarkName(FPDF_PAGEOBJECTMARK mark) { - - // Number of characters, including the NUL. - const size_t expected_size = base::checked_cast(buflen_bytes / 2); -- PDFiumAPIStringBufferAdapter adapter(&name, expected_size, -+ PDFiumAPIStringBufferAdapter adapter(&name, expected_size, - /*check_expected_size=*/true); - unsigned long actual_buflen_bytes = 0; // NOLINT(runtime/int) - bool result = diff --git a/meta-chromium/recipes-browser/chromium/files/0015-Revert-Connect-the-Rust-log-crate-to-the-base-loggin.patch b/meta-chromium/recipes-browser/chromium/files/0015-Revert-Connect-the-Rust-log-crate-to-the-base-loggin.patch deleted file mode 100644 index 637bbad0e..000000000 --- a/meta-chromium/recipes-browser/chromium/files/0015-Revert-Connect-the-Rust-log-crate-to-the-base-loggin.patch +++ /dev/null @@ -1,488 +0,0 @@ -From a8d282ffd65a8de353a446485d730b27ccd5cd67 Mon Sep 17 00:00:00 2001 -From: Ariel D'Alessandro -Date: Fri, 1 Nov 2024 08:48:02 -0300 -Subject: [PATCH] Revert "Connect the Rust log crate to the //base logging - implementation" - -This reverts chromium commit 7ea0a5e831dd5 ("Connect the Rust log crate -to the //base logging implementation". - -The above commit enabled bindgen for the Rust logger. Similar to patch -0011-Disable-crabbyavif-to-fix-build-errors.patch added in commit [0], -this fixes a build error that's most likely because the way upstream -configures bindgen makes it incompatible with our cross-architecture -builds. - -``` -| FAILED: gen/base/logging_rust_log_integration_bindgen_generator/bindings.rs -| [...] -| panicked at bindgen-cli/main.rs:52:36: -| Unable to generate bindings: ClangDiagnostic("error: unsupported option '-mbranch-protection=' for target 'x86_64-unknown-linux-gnu'\n") -``` - -[0] meta-browser commit fd347dc ("chromium: Update to 127.0.6533.99") - -Upstream-Status: Inappropriate [specific to our build setup] -Signed-off-by: Ariel D'Alessandro ---- - base/BUILD.gn | 42 ---------- - base/logging.cc | 9 --- - base/logging/rust_log_integration.cc | 24 ------ - base/logging/rust_log_integration.h | 29 ------- - base/logging/rust_log_integration_unittest.cc | 76 ------------------- - base/logging/rust_logger.rs | 74 ------------------ - base/test/BUILD.gn | 13 ---- - .../test/logging/test_rust_logger_consumer.rs | 41 ---------- - .../rust/chromium_crates_io/gnrt_config.toml | 1 + - third_party/rust/log/v0_4/BUILD.gn | 2 + - 10 files changed, 3 insertions(+), 308 deletions(-) - delete mode 100644 base/logging/rust_log_integration.cc - delete mode 100644 base/logging/rust_log_integration.h - delete mode 100644 base/logging/rust_log_integration_unittest.cc - delete mode 100644 base/logging/rust_logger.rs - delete mode 100644 base/test/logging/test_rust_logger_consumer.rs - -diff --git a/base/BUILD.gn b/base/BUILD.gn -index bc3e57164a010..ba0a6cad17477 100644 ---- a/base/BUILD.gn -+++ b/base/BUILD.gn -@@ -38,8 +38,6 @@ import("//build/config/sanitizers/sanitizers.gni") - import("//build/config/sysroot.gni") - import("//build/config/ui.gni") - import("//build/nocompile.gni") --import("//build/rust/rust_bindgen.gni") --import("//build/rust/rust_static_library.gni") - import("//build/timestamp.gni") - import("//build/util/process_version.gni") - import("//build_overrides/build.gni") -@@ -1022,9 +1020,7 @@ component("base") { - # Used by metrics/crc32, except on NaCl builds. - deps += [ "//third_party/zlib" ] - -- # NaCl does not support Rust. - deps += [ -- ":rust_logger", - "//third_party/rust/serde_json_lenient/v0_2/wrapper", - ] - } -@@ -1545,8 +1541,6 @@ component("base") { - "files/scoped_temp_file.h", - "json/json_file_value_serializer.cc", - "json/json_file_value_serializer.h", -- "logging/rust_log_integration.cc", -- "logging/rust_log_integration.h", - "memory/discardable_memory.cc", - "memory/discardable_memory.h", - "memory/discardable_memory_allocator.cc", -@@ -2449,41 +2443,6 @@ component("base") { - } - } - --rust_bindgen("logging_log_severity_bindgen") { -- # TODO(danakj): Maybe combine all base bindgen targets, or all base/logging -- # ones even) into a single GN target? But the GN rule needs to handle multiple -- # headers then. -- header = "logging/log_severity.h" -- cpp = true -- visibility = [ ":*" ] -- -- # Transitive generated header dependency. -- deps = [ ":debugging_buildflags" ] --} -- --rust_bindgen("logging_rust_log_integration_bindgen") { -- header = "logging/rust_log_integration.h" -- cpp = true -- visibility = [ ":*" ] -- -- # Transitive generated header dependency. -- deps = [ ":debugging_buildflags" ] --} -- --rust_static_library("rust_logger") { -- allow_unsafe = true # Unsafe needed for FFI. -- deps = [ -- ":logging_log_severity_bindgen", -- ":logging_rust_log_integration_bindgen", -- "//third_party/rust/log/v0_4:lib", -- ] -- visibility = [ ":base" ] -- sources = [ "logging/rust_logger.rs" ] -- crate_root = "logging/rust_logger.rs" -- -- cxx_bindings = [ "logging/rust_logger.rs" ] --} -- - if (is_linux || is_chromeos) { - # Split out as a separate target for two reasons: - # - the line number reader is 2x slower in debug builds if not optimized, -@@ -3287,7 +3246,6 @@ test("base_unittests") { - "json/string_escape_unittest.cc", - "json/values_util_unittest.cc", - "lazy_instance_unittest.cc", -- "logging/rust_log_integration_unittest.cc", - "logging_unittest.cc", - "memory/aligned_memory_unittest.cc", - "memory/discardable_memory_backing_field_trial_unittest.cc", -diff --git a/base/logging.cc b/base/logging.cc -index 508ce135131aa..d296b81fa6d36 100644 ---- a/base/logging.cc -+++ b/base/logging.cc -@@ -126,10 +126,6 @@ typedef FILE* FileHandle; - #include "base/fuchsia/scoped_fx_logger.h" - #endif - --#if !BUILDFLAG(IS_NACL) --#include "base/logging/rust_logger.rs.h" --#endif -- - namespace logging { - - namespace { -@@ -526,11 +522,6 @@ bool BaseInitLoggingImpl(const LoggingSettings& settings) { - } - #endif - --#if !BUILDFLAG(IS_NACL) -- // Connects Rust logging with the //base logging functionality. -- internal::init_rust_log_crate(); --#endif -- - // Ignore file options unless logging to file is set. - if ((g_logging_destination & LOG_TO_FILE) == 0) - return true; -diff --git a/base/logging/rust_log_integration.cc b/base/logging/rust_log_integration.cc -deleted file mode 100644 -index 1dba55d18a64a..0000000000000 ---- a/base/logging/rust_log_integration.cc -+++ /dev/null -@@ -1,24 +0,0 @@ --// Copyright 2024 The Chromium Authors --// Use of this source code is governed by a BSD-style license that can be --// found in the LICENSE file. -- --#include "base/logging/rust_log_integration.h" -- --#include "base/logging.h" --#include "base/logging/log_severity.h" -- --namespace logging { --namespace internal { -- --BASE_EXPORT void print_rust_log(const char* msg, -- const char* file, -- int line, -- LogSeverity severity, -- bool verbose) { -- // TODO(danakj): If `verbose` make the log equivalent to VLOG instead of LOG. -- logging::LogMessage log_message(file, line, severity); -- log_message.stream() << msg; --} -- --} // namespace internal --} // namespace logging -diff --git a/base/logging/rust_log_integration.h b/base/logging/rust_log_integration.h -deleted file mode 100644 -index 1795950e18557..0000000000000 ---- a/base/logging/rust_log_integration.h -+++ /dev/null -@@ -1,29 +0,0 @@ --// Copyright 2024 The Chromium Authors --// Use of this source code is governed by a BSD-style license that can be --// found in the LICENSE file. -- --#ifndef BASE_LOGGING_RUST_LOG_INTEGRATION_H_ --#define BASE_LOGGING_RUST_LOG_INTEGRATION_H_ -- --#include "base/base_export.h" --#include "base/logging/log_severity.h" -- --namespace logging { --namespace internal { -- --// Receives a log line from Rust and forwards it to base logging, because --// logging::LogMessage is not accessible from Rust yet with our current interop --// tools. --// --// TODO(danakj): Should this helper function be replaced with C-like apis next --// to logging::LogMessage that Rust uses more directly? --void BASE_EXPORT print_rust_log(const char* msg, -- const char* file, -- int line, -- LogSeverity severity, -- bool verbose); -- --} // namespace internal --} // namespace logging -- --#endif // BASE_LOGGING_RUST_LOG_INTEGRATION_H_ -diff --git a/base/logging/rust_log_integration_unittest.cc b/base/logging/rust_log_integration_unittest.cc -deleted file mode 100644 -index 8fc0fec7e1350..0000000000000 ---- a/base/logging/rust_log_integration_unittest.cc -+++ /dev/null -@@ -1,76 +0,0 @@ --// Copyright 2024 The Chromium Authors --// Use of this source code is governed by a BSD-style license that can be --// found in the LICENSE file. -- --#include "base/logging.h" --#include "base/test/logging/test_rust_logger_consumer.rs.h" --#include "base/test/mock_log.h" -- --using testing::_; -- --namespace logging { --namespace { -- --class RustLogIntegrationTest : public testing::Test { -- public: -- void SetUp() override { log_.StartCapturingLogs(); } -- -- void TearDown() override { log_.StopCapturingLogs(); } -- -- base::test::MockLog log_; --}; -- --// TODO(crbug.com/374023535): Logging does not work in component builds. --#if defined(COMPONENT_BUILD) --#define MAYBE_CheckAllSeverity DISABLED_CheckAllSeverity --#else --#define MAYBE_CheckAllSeverity CheckAllSeverity --#endif --TEST_F(RustLogIntegrationTest, MAYBE_CheckAllSeverity) { --#if DCHECK_IS_ON() -- // Debug and Trace logs from Rust are discarded when DCHECK_IS_ON() is false; -- // otherwise, they are logged as info. -- EXPECT_CALL(log_, -- Log(LOGGING_INFO, _, _, _, testing::HasSubstr("test trace log"))) -- .WillOnce(testing::Return(true)); -- -- EXPECT_CALL(log_, -- Log(LOGGING_INFO, _, _, _, testing::HasSubstr("test debug log"))) -- .WillOnce(testing::Return(true)); --#endif -- -- EXPECT_CALL(log_, -- Log(LOGGING_INFO, _, _, _, testing::HasSubstr("test info log"))) -- .WillOnce(testing::Return(true)); -- -- EXPECT_CALL(log_, Log(LOGGING_WARNING, _, _, _, -- testing::HasSubstr("test warning log"))) -- .WillOnce(testing::Return(true)); -- -- EXPECT_CALL(log_, -- Log(LOGGING_ERROR, _, _, _, testing::HasSubstr("test error log"))) -- .WillOnce(testing::Return(true)); -- -- base::test::print_test_trace_log(); -- base::test::print_test_debug_log(); -- base::test::print_test_info_log(); -- base::test::print_test_warning_log(); -- base::test::print_test_error_log(); --} -- --// TODO(crbug.com/374023535): Logging does not work in component builds. --#if defined(COMPONENT_BUILD) --#define MAYBE_Placeholders DISABLED_Placeholders --#else --#define MAYBE_Placeholders Placeholders --#endif --TEST_F(RustLogIntegrationTest, MAYBE_Placeholders) { -- EXPECT_CALL(log_, Log(LOGGING_ERROR, _, _, _, -- testing::HasSubstr("test log with placeholder 2"))) -- .WillOnce(testing::Return(true)); -- -- base::test::print_test_error_log_with_placeholder(2); --} -- --} // namespace --} // namespace logging -diff --git a/base/logging/rust_logger.rs b/base/logging/rust_logger.rs -deleted file mode 100644 -index 918c1ce0f58bd..0000000000000 ---- a/base/logging/rust_logger.rs -+++ /dev/null -@@ -1,74 +0,0 @@ --// Copyright 2024 The Chromium Authors --// Use of this source code is governed by a BSD-style license that can be --// found in the LICENSE file. -- --chromium::import! { -- "//base:logging_log_severity_bindgen" as log_severity; -- "//base:logging_rust_log_integration_bindgen" as rust_log_integration; --} -- --use log::Level::{Debug, Error, Info, Trace, Warn}; --use log::{LevelFilter, Metadata, Record}; --use log_severity::logging::{LOGGING_ERROR, LOGGING_INFO, LOGGING_WARNING}; --use rust_log_integration::logging::internal::print_rust_log; --use std::ffi::CString; -- --struct RustLogger; -- --impl log::Log for RustLogger { -- fn enabled(&self, _metadata: &Metadata) -> bool { -- // Always enabled, as it's controlled by command line flags managed by the C++ -- // implementation. -- true -- } -- -- fn log(&self, record: &Record) { -- // TODO(thiruak1024@gmail.com): Rather than using heap allocation to pass |msg| -- // and |file|, we should return a pointer and size object to leverage the -- // string_view object in C++. https://crbug.com/371112531 -- let msg = match record.args().as_str() { -- Some(s) => CString::new(s), -- None => CString::new(&*record.args().to_string()), -- } -- .expect("CString::new failed to create the log message!"); -- let file = CString::new(record.file().unwrap()) -- .expect("CString::new failed to create the log file name!"); -- unsafe { -- print_rust_log( -- msg.as_ptr(), -- file.as_ptr(), -- record.line().unwrap() as i32, -- match record.metadata().level() { -- Error => LOGGING_ERROR, -- Warn => LOGGING_WARNING, -- Info => LOGGING_INFO, -- // Note that Debug and Trace level logs are dropped at -- // compile time at the macro call-site when DCHECK_IS_ON() -- // is false. This is done through a Cargo feature. -- Debug | Trace => LOGGING_INFO, -- }, -- record.metadata().level() == Trace, -- ) -- } -- } -- fn flush(&self) {} --} -- --static RUST_LOGGER: RustLogger = RustLogger; -- --#[cxx::bridge(namespace = "logging::internal")] --mod ffi { -- extern "Rust" { -- fn init_rust_log_crate(); -- } --} -- --pub fn init_rust_log_crate() { -- // An error may occur if set_logger has already been called, which can happen -- // during unit tests. In that case, return from the method without executing the -- // subsequent code. -- if let Err(_) = log::set_logger(&RUST_LOGGER) { -- return; -- }; -- log::set_max_level(LevelFilter::Trace); --} -diff --git a/base/test/BUILD.gn b/base/test/BUILD.gn -index ddf58b1d496e0..77b571c31a31c 100644 ---- a/base/test/BUILD.gn -+++ b/base/test/BUILD.gn -@@ -7,7 +7,6 @@ import("//build/config/chromeos/ui_mode.gni") - import("//build/config/features.gni") - import("//build/config/nacl/config.gni") - import("//build/config/ui.gni") --import("//build/rust/rust_static_library.gni") - import("//build_overrides/build.gni") - import("//third_party/protobuf/proto_library.gni") - -@@ -39,17 +38,6 @@ static_library("test_config") { - ] - } - --rust_static_library("test_rust_logger_consumer") { -- allow_unsafe = true # Unsafe needed for FFI -- testonly = true -- deps = [ "//third_party/rust/log/v0_4:lib" ] -- sources = [ "logging/test_rust_logger_consumer.rs" ] -- -- crate_root = "logging/test_rust_logger_consumer.rs" -- -- cxx_bindings = [ "logging/test_rust_logger_consumer.rs" ] --} -- - static_library("test_support") { - testonly = true - sources = [ -@@ -189,7 +177,6 @@ static_library("test_support") { - - public_deps = [ - ":test_config", -- ":test_rust_logger_consumer", - "//base", - "//base:base_static", - "//base:i18n", -diff --git a/base/test/logging/test_rust_logger_consumer.rs b/base/test/logging/test_rust_logger_consumer.rs -deleted file mode 100644 -index dc8adc6b85f22..0000000000000 ---- a/base/test/logging/test_rust_logger_consumer.rs -+++ /dev/null -@@ -1,41 +0,0 @@ --// Copyright 2024 The Chromium Authors --// Use of this source code is governed by a BSD-style license that can be --// found in the LICENSE file. -- --use log::{debug, error, info, trace, warn}; -- --#[cxx::bridge(namespace = "base::test")] --mod ffi { -- extern "Rust" { -- fn print_test_info_log(); -- fn print_test_warning_log(); -- fn print_test_error_log(); -- fn print_test_debug_log(); -- fn print_test_trace_log(); -- fn print_test_error_log_with_placeholder(i: i32); -- } --} -- --pub fn print_test_info_log() { -- info!("test info log"); --} -- --pub fn print_test_warning_log() { -- warn!("test warning log"); --} -- --pub fn print_test_error_log() { -- error!("test error log"); --} -- --pub fn print_test_debug_log() { -- debug!("test debug log"); --} -- --pub fn print_test_trace_log() { -- trace!("test trace log"); --} -- --fn print_test_error_log_with_placeholder(i: i32) { -- error!("test log with placeholder {}", i); --} -diff --git a/third_party/rust/chromium_crates_io/gnrt_config.toml b/third_party/rust/chromium_crates_io/gnrt_config.toml -index 9f36dd0efc3d3..828786f06ff8c 100644 ---- a/third_party/rust/chromium_crates_io/gnrt_config.toml -+++ b/third_party/rust/chromium_crates_io/gnrt_config.toml -@@ -163,6 +163,7 @@ ban_features = [ - ] - - [crate.log] -+group = 'test' - - [crate.nom] - remove_deps = ['minimal-lexical'] -diff --git a/third_party/rust/log/v0_4/BUILD.gn b/third_party/rust/log/v0_4/BUILD.gn -index 6db643f2c446b..6e871e1b71808 100644 ---- a/third_party/rust/log/v0_4/BUILD.gn -+++ b/third_party/rust/log/v0_4/BUILD.gn -@@ -43,4 +43,6 @@ cargo_crate("lib") { - "release_max_level_info", - "std", - ] -+ -+ testonly = true - } diff --git a/meta-chromium/recipes-browser/chromium/files/0019-Reduce-minimum-browser-window-width-to-480px.patch b/meta-chromium/recipes-browser/chromium/files/0019-Reduce-minimum-browser-window-width-to-480px.patch new file mode 100644 index 000000000..55fa86eb6 --- /dev/null +++ b/meta-chromium/recipes-browser/chromium/files/0019-Reduce-minimum-browser-window-width-to-480px.patch @@ -0,0 +1,37 @@ +From 567930b5887c80f666433ba78810cab37cc1f680 Mon Sep 17 00:00:00 2001 +From: Marek Vasut +Date: Wed, 1 Mar 2023 23:54:47 +0100 +Subject: [PATCH] Reduce minimum browser window width to 480px + +The TST043015CNHX panel is a 480x272 panel. Chromium browser limits the +minimum window width to 500px since commits: + +6b0ecc1e4532c ("Set lower bound on contents pane size.") +580d6900dc7fc ("In tab dragging, the window size should be larger than its minimum size.") + +To make chromium browser usable on those tiny panels as well, reduce +the minimum window width to 480px. The upstreaming of this change is +in progress. + +Upstream-Status: Pending +Signed-off-by: Marek Vasut +--- + chrome/browser/ui/views/frame/browser_view_layout.h | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/chrome/browser/ui/views/frame/browser_view_layout.h b/chrome/browser/ui/views/frame/browser_view_layout.h +index 9fc925e06e5e9..9346f321476c3 100644 +--- a/chrome/browser/ui/views/frame/browser_view_layout.h ++++ b/chrome/browser/ui/views/frame/browser_view_layout.h +@@ -48,7 +48,7 @@ class BrowserViewLayout : public views::LayoutManager { + // very small window, even on large monitors (which is why a minimum height is + // not specified). This value is used for the main browser window only, not + // for popups. +- static constexpr int kMainBrowserContentsMinimumWidth = 500; ++ static constexpr int kMainBrowserContentsMinimumWidth = 480; + + // |browser_view| may be null in tests. + BrowserViewLayout(std::unique_ptr delegate, +-- +2.39.2 + diff --git a/meta-chromium/recipes-browser/chromium/gn-native_132.0.6834.83.bb b/meta-chromium/recipes-browser/chromium/gn-native_138.0.7204.157.bb similarity index 100% rename from meta-chromium/recipes-browser/chromium/gn-native_132.0.6834.83.bb rename to meta-chromium/recipes-browser/chromium/gn-native_138.0.7204.157.bb diff --git a/meta-chromium/recipes-devtools/nodejs/nodejs-oe-cache-22.11/oe-npm-cache b/meta-chromium/recipes-devtools/nodejs/nodejs-oe-cache-22.11/oe-npm-cache new file mode 100755 index 000000000..eb0f143ea --- /dev/null +++ b/meta-chromium/recipes-devtools/nodejs/nodejs-oe-cache-22.11/oe-npm-cache @@ -0,0 +1,77 @@ +#!/usr/bin/env node + +/// Usage: oe-npm-cache +/// ... meta - metainformation about package +/// tgz - tarball + +const process = require("node:process"); + +module.paths.unshift("@@libdir@@/node_modules/npm/node_modules"); + +const cacache = require('cacache') +const fs = require('fs') + +// argv[0] is 'node', argv[1] is this script +const cache_dir = process.argv[2] +const type = process.argv[3] +const key = process.argv[4] +const file = process.argv[5] + +const data = fs.readFileSync(file) + +// metadata content is highly nodejs dependent; when cache entries are not +// found, place debug statements in 'make-fetch-happen/lib/cache/policy.js' +// (CachePolicy::satisfies()) +const xlate = { + 'meta': { + 'key_prefix': 'make-fetch-happen:request-cache:', + 'metadata': function() { + return { + time: Date.now(), + url: key, + reqHeaders: { + 'accept': 'application/json', + }, + resHeaders: { + "content-type": "application/json", + "status": 200, + }, + options: { + compress: true, + } + }; + }, + }, + + 'tgz': { + 'key_prefix': 'make-fetch-happen:request-cache:', + 'metadata': function() { + return { + time: Date.now(), + url: key, + reqHeaders: { + 'accept': '*/*', + }, + resHeaders: { + "content-type": "application/octet-stream", + "status": 200, + }, + options: { + compress: true, + }, + }; + }, + }, +}; + +const info = xlate[type]; +let opts = {} + +if (info.metadata) { + opts['metadata'] = info.metadata(); +} + +cacache.put(cache_dir, info.key_prefix + key, data, opts) + .then(integrity => { + console.log(`Saved content of ${key} (${file}).`); +}) diff --git a/meta-chromium/recipes-devtools/nodejs/nodejs-oe-cache-native_22.11.bb b/meta-chromium/recipes-devtools/nodejs/nodejs-oe-cache-native_22.11.bb new file mode 100644 index 000000000..d4b818f96 --- /dev/null +++ b/meta-chromium/recipes-devtools/nodejs/nodejs-oe-cache-native_22.11.bb @@ -0,0 +1,24 @@ +DESCRIPTION = "OE helper for manipulating npm cache" +LICENSE = "Apache-2.0" +LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/Apache-2.0;md5=89aea4e17d99a7cacdbeed46a0096b10" + +SRC_URI = "\ + file://oe-npm-cache \ +" + +inherit native + +S = "${WORKDIR}/sources" +UNPACKDIR = "${S}" + +B = "${WORKDIR}/build" + +do_configure() { + sed -e 's!@@libdir@@!${libdir}!g' < '${UNPACKDIR}/oe-npm-cache' > '${B}/oe-npm-cache' +} + +do_install() { + install -D -p -m 0755 ${B}/oe-npm-cache ${D}${bindir}/oe-npm-cache +} + +RDEPENDS:${PN} = "nodejs-native" diff --git a/meta-chromium/recipes-devtools/nodejs/nodejs/0001-Disable-running-gyp-files-for-bundled-deps.patch b/meta-chromium/recipes-devtools/nodejs/nodejs/0001-Disable-running-gyp-files-for-bundled-deps.patch new file mode 100644 index 000000000..f692eedd4 --- /dev/null +++ b/meta-chromium/recipes-devtools/nodejs/nodejs/0001-Disable-running-gyp-files-for-bundled-deps.patch @@ -0,0 +1,47 @@ +From 689e098cbde130ecde523ae39df3567456271fda Mon Sep 17 00:00:00 2001 +From: Zuzana Svetlikova +Date: Thu, 27 Apr 2017 14:25:42 +0200 +Subject: [PATCH] Disable running gyp on shared deps + +Upstream-Status: Inappropriate [embedded specific] + +Probably imported from: +https://src.fedoraproject.org/rpms/nodejs/c/41af04f2a3c050fb44628e91ac65fd225b927acb?branch=22609d8c1bfeaa21fe0057645af20b3a2ccc7f53 +which is probably based on dont-run-gyp-files-for-bundled-deps.patch added in: +https://github.com/alpinelinux/aports/commit/6662eb3199902e8451fb20dce82554ad96f796bb + +We also explicitly prune some dependencies from source in the bitbake recipe: + +python prune_sources() { + import shutil + + shutil.rmtree(d.getVar('S') + '/deps/openssl') + if 'ares' in d.getVar('PACKAGECONFIG'): + shutil.rmtree(d.getVar('S') + '/deps/cares') + if 'brotli' in d.getVar('PACKAGECONFIG'): + shutil.rmtree(d.getVar('S') + '/deps/brotli') + if 'libuv' in d.getVar('PACKAGECONFIG'): + shutil.rmtree(d.getVar('S') + '/deps/uv') + if 'nghttp2' in d.getVar('PACKAGECONFIG'): + shutil.rmtree(d.getVar('S') + '/deps/nghttp2') + if 'zlib' in d.getVar('PACKAGECONFIG'): + shutil.rmtree(d.getVar('S') + '/deps/zlib') +} +do_unpack[postfuncs] += "prune_sources" +--- + Makefile | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/Makefile b/Makefile +index dba16e5e..da4faffc 100644 +--- a/Makefile ++++ b/Makefile +@@ -173,7 +173,7 @@ with-code-cache test-code-cache: + $(warning '$@' target is a noop) + + out/Makefile: config.gypi common.gypi common_node.gypi node.gyp \ +- deps/uv/uv.gyp deps/llhttp/llhttp.gyp deps/zlib/zlib.gyp \ ++ deps/llhttp/llhttp.gyp \ + deps/simdutf/simdutf.gyp deps/ada/ada.gyp deps/nbytes/nbytes.gyp \ + tools/v8_gypfiles/toolchain.gypi \ + tools/v8_gypfiles/features.gypi \ diff --git a/meta-chromium/recipes-devtools/nodejs/nodejs/0001-Using-native-binaries.patch b/meta-chromium/recipes-devtools/nodejs/nodejs/0001-Using-native-binaries.patch new file mode 100644 index 000000000..0178cec77 --- /dev/null +++ b/meta-chromium/recipes-devtools/nodejs/nodejs/0001-Using-native-binaries.patch @@ -0,0 +1,94 @@ +From 6c3ac20477a4bac643088f24df3c042e627fafa9 Mon Sep 17 00:00:00 2001 +From: Guillaume Burel +Date: Fri, 3 Jan 2020 11:25:54 +0100 +Subject: [PATCH] Using native binaries + +Upstream-Status: Inappropriate [embedded specific] + +Originally added in: +https://git.openembedded.org/meta-openembedded/commit/?id=1c8e4a679ae382f953b2e5c7a4966a4646314f3e +later extended and renamed in: +https://git.openembedded.org/meta-openembedded/commit/?id=feeb172d1a8bf010490d22b8df9448b20d9d2aed + +Signed-off-by: Archana Polampalli +--- + node.gyp | 3 + + tools/v8_gypfiles/v8.gyp | 5 +++++ + 2 files changed, 6 insertions(+) + +diff --git a/node.gyp b/node.gyp +index e8e1d9f9..e60ccc10 100644 +--- a/node.gyp ++++ b/node.gyp +@@ -320,6 +320,7 @@ + 'action_name': 'node_mksnapshot', + 'process_outputs_as_sources': 1, + 'inputs': [ ++ '<(PRODUCT_DIR)/v8-qemu-wrapper.sh', + '<(node_mksnapshot_exec)', + '<(node_snapshot_main)', + ], +@@ -935,6 +935,7 @@ + 'action_name': 'node_js2c', + 'process_outputs_as_sources': 1, + 'inputs': [ ++ '<(PRODUCT_DIR)/v8-qemu-wrapper.sh', + '<(node_js2c_exec)', + '<@(library_files)', + '<@(deps_files)', +@@ -944,6 +945,7 @@ + '<(SHARED_INTERMEDIATE_DIR)/node_javascript.cc', + ], + 'action': [ ++ '<(PRODUCT_DIR)/v8-qemu-wrapper.sh', + '<(node_js2c_exec)', + '<@(_outputs)', + 'lib', + +diff --git a/tools/v8_gypfiles/v8.gyp b/tools/v8_gypfiles/v8.gyp +index 42e26cd9..bc721991 100644 +--- a/tools/v8_gypfiles/v8.gyp ++++ b/tools/v8_gypfiles/v8.gyp +@@ -68,6 +68,7 @@ + { + 'action_name': 'run_torque_action', + 'inputs': [ # Order matters. ++ '<(PRODUCT_DIR)/v8-qemu-wrapper.sh', + '<(PRODUCT_DIR)/<(EXECUTABLE_PREFIX)torque<(EXECUTABLE_SUFFIX)', + '<@(torque_files)', + ], +@@ -99,6 +100,7 @@ + '<@(torque_outputs_inc)', + ], + 'action': [ ++ '<(PRODUCT_DIR)/v8-qemu-wrapper.sh', + '<(PRODUCT_DIR)/<(EXECUTABLE_PREFIX)torque<(EXECUTABLE_SUFFIX)', + '-o', '<(SHARED_INTERMEDIATE_DIR)/torque-generated', + '-v8-root', '<(V8_ROOT)', +@@ -211,6 +213,7 @@ + { + 'action_name': 'generate_bytecode_builtins_list_action', + 'inputs': [ ++ '<(PRODUCT_DIR)/v8-qemu-wrapper.sh', + '<(PRODUCT_DIR)/<(EXECUTABLE_PREFIX)bytecode_builtins_list_generator<(EXECUTABLE_SUFFIX)', + ], + 'outputs': [ +@@ -400,6 +403,7 @@ + ], + }, + 'inputs': [ ++ '<(PRODUCT_DIR)/v8-qemu-wrapper.sh', + '<(mksnapshot_exec)', + ], + 'outputs': [ +@@ -1539,6 +1543,7 @@ + { + 'action_name': 'run_gen-regexp-special-case_action', + 'inputs': [ ++ '<(PRODUCT_DIR)/v8-qemu-wrapper.sh', + '<(PRODUCT_DIR)/<(EXECUTABLE_PREFIX)gen-regexp-special-case<(EXECUTABLE_SUFFIX)', + ], + 'outputs': [ +-- +2.34.1 + diff --git a/meta-chromium/recipes-devtools/nodejs/nodejs/0001-custom-env.patch b/meta-chromium/recipes-devtools/nodejs/nodejs/0001-custom-env.patch new file mode 100644 index 000000000..532d3c5f5 --- /dev/null +++ b/meta-chromium/recipes-devtools/nodejs/nodejs/0001-custom-env.patch @@ -0,0 +1,18 @@ +From 9c1a31afdcf368f794b9f5378cb3fe759570f905 Mon Sep 17 00:00:00 2001 +From: Jason Schonberg +Date: Tue, 30 Apr 2024 21:48:33 -0400 +Subject: [PATCH] Update to nodejs 22.0.0 + +Upstream-Status: Inappropriate [embedded specific] +--- + test/fixtures/run-script/node_modules/.bin/custom-env | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/test/fixtures/run-script/node_modules/.bin/custom-env b/test/fixtures/run-script/node_modules/.bin/custom-env +index e6f291c6..1430f2e9 100755 +--- a/test/fixtures/run-script/node_modules/.bin/custom-env ++++ b/test/fixtures/run-script/node_modules/.bin/custom-env +@@ -1,2 +1,2 @@ +-#!/bin/bash ++#!/bin/sh + echo "$CUSTOM_ENV" diff --git a/meta-chromium/recipes-devtools/nodejs/nodejs/0001-deps-disable-io_uring-support-in-libuv.patch b/meta-chromium/recipes-devtools/nodejs/nodejs/0001-deps-disable-io_uring-support-in-libuv.patch new file mode 100644 index 000000000..04398ac68 --- /dev/null +++ b/meta-chromium/recipes-devtools/nodejs/nodejs/0001-deps-disable-io_uring-support-in-libuv.patch @@ -0,0 +1,52 @@ +From 2bb296f169f86dbb04ee47e9a0dc1e3ee13d4f73 Mon Sep 17 00:00:00 2001 +From: Jason Schonberg +Date: Thu, 7 Mar 2024 12:55:56 -0500 +Subject: [PATCH] Update to nodejs 20.11.1 + +Upstream-Status: Inappropriate [embedded specific] +--- + ...ps-disable-io_uring-support-in-libuv.patch | 35 +++++++++++++++++++ + 1 file changed, 35 insertions(+) + create mode 100644 meta-oe/recipes-devtools/nodejs/nodejs/0001-deps-disable-io_uring-support-in-libuv.patch + +diff --git a/meta-oe/recipes-devtools/nodejs/nodejs/0001-deps-disable-io_uring-support-in-libuv.patch b/meta-oe/recipes-devtools/nodejs/nodejs/0001-deps-disable-io_uring-support-in-libuv.patch +new file mode 100644 +index 00000000..5ac711fb +--- /dev/null ++++ b/meta-oe/recipes-devtools/nodejs/nodejs/0001-deps-disable-io_uring-support-in-libuv.patch +@@ -0,0 +1,35 @@ ++From 9838be9c710ab4249df86726fa390232a3b6a6e7 Mon Sep 17 00:00:00 2001 ++From: Changqing Li ++Date: Fri, 1 Mar 2024 15:46:11 +0800 ++Subject: [PATCH] deps: disable io_uring support in libuv ++ ++Refer [1], Pseudo fails to intercept some of the syscalls when io_uring ++enabled. Refer [2], always disable io_uring support in libuv to fix ++issue in [1]. ++ ++[1] https://git.openembedded.org/meta-openembedded/commit/?id=d08453978c31ee41d28206c6ff198d7d9d701d88 ++[2] https://github.com/nodejs/node/commit/686da19abb ++ ++Upstream-Status: Inappropriate [oe-specific] ++ ++Signed-off-by: Changqing Li ++--- ++ deps/uv/src/unix/linux.c | 2 +- ++ 1 file changed, 1 insertion(+), 1 deletion(-) ++ ++diff --git a/deps/uv/src/unix/linux.c b/deps/uv/src/unix/linux.c ++index 0c997185..7508409d 100644 ++--- a/deps/uv/src/unix/linux.c +++++ b/deps/uv/src/unix/linux.c ++@@ -433,7 +433,7 @@ static int uv__use_io_uring(void) { ++ if (use == 0) { ++ /* Disable io_uring by default due to CVE-2024-22017. */ ++ val = getenv("UV_USE_IO_URING"); ++- use = val != NULL && atoi(val) ? 1 : -1; +++ use = 0; ++ atomic_store_explicit(&use_io_uring, use, memory_order_relaxed); ++ } ++ ++-- ++2.25.1 ++ diff --git a/meta-chromium/recipes-devtools/nodejs/nodejs/0001-liftoff-Correct-function-signatures.patch b/meta-chromium/recipes-devtools/nodejs/nodejs/0001-liftoff-Correct-function-signatures.patch new file mode 100644 index 000000000..5e617e655 --- /dev/null +++ b/meta-chromium/recipes-devtools/nodejs/nodejs/0001-liftoff-Correct-function-signatures.patch @@ -0,0 +1,69 @@ +From 33393507ba8209f0d6b85b391c525b4c70807275 Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Mon, 3 Jul 2023 12:33:16 +0000 +Subject: [PATCH] Correct function signatures + +Fixes builds on mips where clang reports an error +../deps/v8/src/wasm/baseline/mips/liftoff-assembler-mips.h:661:5: error: no matching member function for call to 'Move' + Move(tmp, src, type.value_type()); + ^~~~ + +Upstream-Status: Submitted [https://chromium-review.googlesource.com/c/v8/v8/+/3235674] + +Signed-off-by: Archana Polampalli +--- + deps/v8/src/wasm/baseline/liftoff-assembler.h | 6 +++--- + .../src/wasm/baseline/mips64/liftoff-assembler-mips64-inl.h | 2 +- + .../src/wasm/baseline/riscv/liftoff-assembler-riscv64-inl.h | 2 +- + 3 files changed, 5 insertions(+), 5 deletions(-) + +diff --git a/deps/v8/src/wasm/baseline/liftoff-assembler.h b/deps/v8/src/wasm/baseline/liftoff-assembler.h +index 7cb2f500..713d16db 100644 +--- a/deps/v8/src/wasm/baseline/liftoff-assembler.h ++++ b/deps/v8/src/wasm/baseline/liftoff-assembler.h +@@ -681,7 +681,7 @@ class LiftoffAssembler : public MacroAssembler { + void FinishCall(const ValueKindSig*, compiler::CallDescriptor*); + + // Move {src} into {dst}. {src} and {dst} must be different. +- void Move(LiftoffRegister dst, LiftoffRegister src, ValueKind); ++ void Move(LiftoffRegister dst, LiftoffRegister src, ValueKind kind); + + // Parallel register move: For a list of tuples , move the + // {src} register of kind {kind} into {dst}. If {src} equals {dst}, ignore +@@ -851,8 +851,8 @@ class LiftoffAssembler : public MacroAssembler { + inline void MoveStackValue(uint32_t dst_offset, uint32_t src_offset, + ValueKind); + +- inline void Move(Register dst, Register src, ValueKind); +- inline void Move(DoubleRegister dst, DoubleRegister src, ValueKind); ++ inline void Move(Register dst, Register src, ValueKind kind); ++ inline void Move(DoubleRegister dst, DoubleRegister src, ValueKind kind); + + inline void Spill(int offset, LiftoffRegister, ValueKind); + inline void Spill(int offset, WasmValue); +diff --git a/deps/v8/src/wasm/baseline/mips64/liftoff-assembler-mips64-inl.h b/deps/v8/src/wasm/baseline/mips64/liftoff-assembler-mips64-inl.h +index bd59f162..56b4d70c 100644 +--- a/deps/v8/src/wasm/baseline/mips64/liftoff-assembler-mips64-inl.h ++++ b/deps/v8/src/wasm/baseline/mips64/liftoff-assembler-mips64-inl.h +@@ -672,7 +672,7 @@ void LiftoffAssembler::Store(Register dst_addr, Register offset_reg, + pinned.set(dst_op.rm()); + LiftoffRegister tmp = kScratchReg2; + // Save original value. +- Move(tmp, src, type.value_type()); ++ Move(tmp, src, type.value_type().kind()); + + src = tmp; + pinned.set(tmp); +diff --git a/deps/v8/src/wasm/baseline/riscv/liftoff-assembler-riscv64-inl.h b/deps/v8/src/wasm/baseline/riscv/liftoff-assembler-riscv64-inl.h +index a3c94af0..456e5334 100644 +--- a/deps/v8/src/wasm/baseline/riscv/liftoff-assembler-riscv64-inl.h ++++ b/deps/v8/src/wasm/baseline/riscv/liftoff-assembler-riscv64-inl.h +@@ -452,7 +452,7 @@ void LiftoffAssembler::Store(Register dst_addr, Register offset_reg, + pinned.set(dst_op.rm()); + LiftoffRegister tmp = GetUnusedRegister(src.reg_class(), pinned); + // Save original value. +- Move(tmp, src, type.value_type()); ++ Move(tmp, src, type.value_type().kind()); + + src = tmp; + pinned.set(tmp); diff --git a/meta-chromium/recipes-devtools/nodejs/nodejs/0001-positional-args.patch b/meta-chromium/recipes-devtools/nodejs/nodejs/0001-positional-args.patch new file mode 100644 index 000000000..5fd6aee35 --- /dev/null +++ b/meta-chromium/recipes-devtools/nodejs/nodejs/0001-positional-args.patch @@ -0,0 +1,19 @@ +From 07ee84863fa4a9e4d5f155632478587b0acbf71a Mon Sep 17 00:00:00 2001 +From: Jason Schonberg +Date: Tue, 30 Apr 2024 21:48:33 -0400 +Subject: [PATCH] Update to nodejs 22.0.0 + +Upstream-Status: Inappropriate [embedded specific] +--- + test/fixtures/run-script/node_modules/.bin/positional-args | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/test/fixtures/run-script/node_modules/.bin/positional-args b/test/fixtures/run-script/node_modules/.bin/positional-args +index 2d809237..3dc5314f 100755 +--- a/test/fixtures/run-script/node_modules/.bin/positional-args ++++ b/test/fixtures/run-script/node_modules/.bin/positional-args +@@ -1,3 +1,3 @@ +-#!/bin/bash ++#!/bin/sh + echo "Arguments: '$@'" + echo "The total number of arguments are: $#" diff --git a/meta-chromium/recipes-devtools/nodejs/nodejs/0001-ppc64-Do-not-use-mminimal-toc-with-clang.patch b/meta-chromium/recipes-devtools/nodejs/nodejs/0001-ppc64-Do-not-use-mminimal-toc-with-clang.patch new file mode 100644 index 000000000..dd9c9015e --- /dev/null +++ b/meta-chromium/recipes-devtools/nodejs/nodejs/0001-ppc64-Do-not-use-mminimal-toc-with-clang.patch @@ -0,0 +1,25 @@ +From 0976af0f3b328436ea44a74a406f311adb2ab211 Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Tue, 15 Jun 2021 19:01:31 -0700 +Subject: [PATCH] ppc64: Do not use -mminimal-toc with clang + +clang does not support this option + +Signed-off-by: Khem Raj +--- +Upstream-Status: Pending + + common.gypi | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +--- a/common.gypi ++++ b/common.gypi +@@ -417,7 +417,7 @@ + 'ldflags': [ '-m32' ], + }], + [ 'target_arch=="ppc64" and OS!="aix"', { +- 'cflags': [ '-m64', '-mminimal-toc' ], ++ 'cflags': [ '-m64' ], + 'ldflags': [ '-m64' ], + }], + [ 'target_arch=="s390x"', { diff --git a/meta-chromium/recipes-devtools/nodejs/nodejs/0004-v8-don-t-override-ARM-CFLAGS.patch b/meta-chromium/recipes-devtools/nodejs/nodejs/0004-v8-don-t-override-ARM-CFLAGS.patch new file mode 100644 index 000000000..cc920118a --- /dev/null +++ b/meta-chromium/recipes-devtools/nodejs/nodejs/0004-v8-don-t-override-ARM-CFLAGS.patch @@ -0,0 +1,99 @@ +From afc085af7b6b935a5e14fc3f40db47df02ca3af2 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Andr=C3=A9=20Draszik?= +Date: Sat, 9 Nov 2019 14:45:30 +0000 +Subject: [PATCH] v8: don't override ARM CFLAGS +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +This overrides yocto-provided build flags with its own, e.g we get + arm-poky-linux-musleabi-g++ -mthumb -mfpu=neon -mfloat-abi=hard -mcpu=cortex-a7 \ + ... \ + -march=armv7-a -mfpu=neon -mfloat-abi=hard -marm + +Causing the latter to override the former, and compiler warnings: + cc1plus: warning: switch '-mcpu=cortex-a7' conflicts with '-march=armv7-a' switch + +Patch this out, so that yocto-provided flags take precedence. +Note that in reality the same should probably be done for all the other +supported architectures, too. + +Note that this also switches to Thumb(2) mode (in my case). No obvious +problems have been noted during compilation or runtime. + +Upstream-Status: Inappropriate [oe-specific] +Signed-off-by: André Draszik +--- + tools/v8_gypfiles/toolchain.gypi | 52 ++------------------------------ + 1 file changed, 2 insertions(+), 50 deletions(-) + +diff --git a/tools/v8_gypfiles/toolchain.gypi b/tools/v8_gypfiles/toolchain.gypi +index 9d1b0987..4df15e60 100644 +--- a/tools/v8_gypfiles/toolchain.gypi ++++ b/tools/v8_gypfiles/toolchain.gypi +@@ -203,31 +203,7 @@ + 'target_conditions': [ + ['_toolset=="host"', { + 'conditions': [ +- ['v8_target_arch==host_arch', { +- # Host built with an Arm CXX compiler. +- 'conditions': [ +- [ 'arm_version==7', { +- 'cflags': ['-march=armv7-a',], +- }], +- [ 'arm_version==7 or arm_version=="default"', { +- 'conditions': [ +- [ 'arm_fpu!="default"', { +- 'cflags': ['-mfpu=<(arm_fpu)',], +- }], +- ], +- }], +- [ 'arm_float_abi!="default"', { +- 'cflags': ['-mfloat-abi=<(arm_float_abi)',], +- }], +- [ 'arm_thumb==1', { +- 'cflags': ['-mthumb',], +- }], +- [ 'arm_thumb==0', { +- 'cflags': ['-marm',], +- }], +- ], +- }, { +- # 'v8_target_arch!=host_arch' ++ ['v8_target_arch!=host_arch', { + # Host not built with an Arm CXX compiler (simulator build). + 'conditions': [ + [ 'arm_float_abi=="hard"', { +@@ -246,31 +222,7 @@ + }], # _toolset=="host" + ['_toolset=="target"', { + 'conditions': [ +- ['v8_target_arch==target_arch', { +- # Target built with an Arm CXX compiler. +- 'conditions': [ +- [ 'arm_version==7', { +- 'cflags': ['-march=armv7-a',], +- }], +- [ 'arm_version==7 or arm_version=="default"', { +- 'conditions': [ +- [ 'arm_fpu!="default"', { +- 'cflags': ['-mfpu=<(arm_fpu)',], +- }], +- ], +- }], +- [ 'arm_float_abi!="default"', { +- 'cflags': ['-mfloat-abi=<(arm_float_abi)',], +- }], +- [ 'arm_thumb==1', { +- 'cflags': ['-mthumb',], +- }], +- [ 'arm_thumb==0', { +- 'cflags': ['-marm',], +- }], +- ], +- }, { +- # 'v8_target_arch!=target_arch' ++ ['v8_target_arch!=target_arch', { + # Target not built with an Arm CXX compiler (simulator build). + 'conditions': [ + [ 'arm_float_abi=="hard"', { diff --git a/meta-chromium/recipes-devtools/nodejs/nodejs/libatomic.patch b/meta-chromium/recipes-devtools/nodejs/nodejs/libatomic.patch new file mode 100644 index 000000000..d987ac50b --- /dev/null +++ b/meta-chromium/recipes-devtools/nodejs/nodejs/libatomic.patch @@ -0,0 +1,77 @@ +From 15e751e4b79475fb34e4b32a3ca54119b20c564a Mon Sep 17 00:00:00 2001 +From: Hongxu Jia +Date: Sat, 17 Aug 2024 21:33:18 +0800 +Subject: [PATCH] link libatomic for clang conditionally + +Clang emits atomic builtin, explicitly link libatomic conditionally: +- For target build, always link -latomic for clang as usual +- For host build, if host and target have same bit width, cross compiling + is enabled, and host toolchain is gcc which does not link -latomic; + if host and target have different bit width, no cross compiling, + host build is the same with target build that requires to link + -latomic; + +Fix: +|tmp-glibc/work/core2-64-wrs-linux/nodejs/20.13.0/node-v20.13.0/out/Release/node_js2c: error while loading shared libraries: libatomic.so.1: cannot open shared object file: No such file or directory + +Upstream-Status: Inappropriate [OE specific] + +Signed-off-by: Hongxu Jia +--- + node.gyp | 13 ++++++++++++- + tools/v8_gypfiles/v8.gyp | 15 ++++++++++++--- + 2 files changed, 24 insertions(+), 4 deletions(-) + +diff --git a/node.gyp b/node.gyp +index b425f443..f296f35c 100644 +--- a/node.gyp ++++ b/node.gyp +@@ -487,7 +487,18 @@ + ], + }], + ['OS=="linux" and clang==1', { +- 'libraries': ['-latomic'], ++ 'target_conditions': [ ++ ['_toolset=="host"', { ++ 'conditions': [ ++ ['" +Date: Mon, 4 Mar 2024 11:05:25 -0500 +Subject: [PATCH] keep nodejs compatible with c-ares 1.17.1 + +Upstream-Status: Inappropriate [c-ares specific] +Signed-off-by: Khem Raj +--- + src/cares_wrap.h | 10 +++++++++- + 1 file changed, 9 insertions(+), 1 deletion(-) + +diff --git a/src/cares_wrap.h b/src/cares_wrap.h +index 021ef1c9..820c5d88 100644 +--- a/src/cares_wrap.h ++++ b/src/cares_wrap.h +@@ -23,7 +23,15 @@ + # include + #endif // __POSIX__ + +-# include ++#if defined(__ANDROID__) || \ ++ defined(__MINGW32__) || \ ++ defined(__OpenBSD__) || \ ++ defined(_MSC_VER) ++ ++# include ++#else ++# include ++#endif + + namespace node { + namespace cares_wrap { diff --git a/meta-chromium/recipes-devtools/nodejs/nodejs_22.11.0.bb b/meta-chromium/recipes-devtools/nodejs/nodejs_22.11.0.bb new file mode 100644 index 000000000..49a5f350d --- /dev/null +++ b/meta-chromium/recipes-devtools/nodejs/nodejs_22.11.0.bb @@ -0,0 +1,214 @@ +DESCRIPTION = "nodeJS Evented I/O for V8 JavaScript" +HOMEPAGE = "http://nodejs.org" +LICENSE = "MIT & ISC & BSD-2-Clause & BSD-3-Clause & Artistic-2.0 & Apache-2.0" +LIC_FILES_CHKSUM = "file://LICENSE;md5=25e89142a2f4b075904a9986c45fbdb2" + +CVE_PRODUCT = "nodejs node.js" + +DEPENDS = "openssl openssl-native file-replacement-native python3-packaging-native" +DEPENDS:append:class-target = " qemu-native" +DEPENDS:append:class-native = " c-ares-native" + +inherit pkgconfig python3native qemu ptest siteinfo + +COMPATIBLE_MACHINE:armv4 = "(!.*armv4).*" +COMPATIBLE_MACHINE:armv5 = "(!.*armv5).*" +COMPATIBLE_MACHINE:mips64 = "(!.*mips64).*" + +COMPATIBLE_HOST:riscv64 = "null" +COMPATIBLE_HOST:riscv32 = "null" +COMPATIBLE_HOST:powerpc = "null" + +SRC_URI = "http://nodejs.org/dist/v${PV}/node-v${PV}.tar.xz \ + file://0001-Disable-running-gyp-files-for-bundled-deps.patch \ + file://0004-v8-don-t-override-ARM-CFLAGS.patch \ + file://system-c-ares.patch \ + file://0001-liftoff-Correct-function-signatures.patch \ + file://libatomic.patch \ + file://0001-deps-disable-io_uring-support-in-libuv.patch \ + file://0001-positional-args.patch \ + file://0001-custom-env.patch \ + file://run-ptest \ + " +SRC_URI:append:class-target = " \ + file://0001-Using-native-binaries.patch \ + " +SRC_URI:append:toolchain-clang:powerpc64le = " \ + file://0001-ppc64-Do-not-use-mminimal-toc-with-clang.patch \ + " +SRC_URI[sha256sum] = "bbf0297761d53aefda9d7855c57c7d2c272b83a7b5bad4fea9cb29006d8e1d35" + +S = "${WORKDIR}/node-v${PV}" + +CVE_PRODUCT += "node.js" + +# v8 errors out if you have set CCACHE +CCACHE = "" + +def map_nodejs_arch(a, d): + import re + + if re.match('i.86$', a): return 'ia32' + elif re.match('x86_64$', a): return 'x64' + elif re.match('aarch64$', a): return 'arm64' + elif re.match('(powerpc64|powerpc64le|ppc64le)$', a): return 'ppc64' + elif re.match('powerpc$', a): return 'ppc' + return a + +ARCHFLAGS:arm = "${@bb.utils.contains('TUNE_FEATURES', 'callconvention-hard', '--with-arm-float-abi=hard', '--with-arm-float-abi=softfp', d)} \ + ${@bb.utils.contains('TUNE_FEATURES', 'neon', '--with-arm-fpu=neon', \ + bb.utils.contains('TUNE_FEATURES', 'vfpv3d16', '--with-arm-fpu=vfpv3-d16', \ + bb.utils.contains('TUNE_FEATURES', 'vfpv3', '--with-arm-fpu=vfpv3', \ + '--with-arm-fpu=vfp', d), d), d)}" +ARCHFLAGS:append:mips = " --v8-lite-mode" +ARCHFLAGS:append:mipsel = " --v8-lite-mode" +ARCHFLAGS ?= "" + +PACKAGECONFIG ??= "ares brotli icu zlib" + +PACKAGECONFIG[ares] = "--shared-cares,,c-ares c-ares-native" +PACKAGECONFIG[brotli] = "--shared-brotli,,brotli brotli-native" +PACKAGECONFIG[icu] = "--with-intl=system-icu,--without-intl,icu icu-native" +PACKAGECONFIG[libuv] = "--shared-libuv,,libuv" +PACKAGECONFIG[nghttp2] = "--shared-nghttp2,,nghttp2" +PACKAGECONFIG[shared] = "--shared" +PACKAGECONFIG[zlib] = "--shared-zlib,,zlib" + +EXTRANATIVEPATH += "file-native" + +python prune_sources() { + import shutil + + shutil.rmtree(d.getVar('S') + '/deps/openssl') + if 'ares' in d.getVar('PACKAGECONFIG'): + shutil.rmtree(d.getVar('S') + '/deps/cares') + if 'brotli' in d.getVar('PACKAGECONFIG'): + shutil.rmtree(d.getVar('S') + '/deps/brotli') + if 'libuv' in d.getVar('PACKAGECONFIG'): + shutil.rmtree(d.getVar('S') + '/deps/uv') + if 'nghttp2' in d.getVar('PACKAGECONFIG'): + shutil.rmtree(d.getVar('S') + '/deps/nghttp2') + if 'zlib' in d.getVar('PACKAGECONFIG'): + shutil.rmtree(d.getVar('S') + '/deps/zlib') +} +do_unpack[postfuncs] += "prune_sources" + +# V8's JIT infrastructure requires binaries such as mksnapshot and +# mkpeephole to be run in the host during the build. However, these +# binaries must have the same bit-width as the target (e.g. a x86_64 +# host targeting ARMv6 needs to produce a 32-bit binary). +# 1. If host and target have the different bit width, run those +# binaries for the target and run them on the host with QEMU. +# 2. If host and target have the same bit width, enable upstream +# cross compile support and no QEMU +python do_create_v8_qemu_wrapper () { + """Creates a small wrapper that invokes QEMU to run some target V8 binaries + on the host.""" + qemu_libdirs = [d.expand('${STAGING_DIR_HOST}${libdir}'), + d.expand('${STAGING_DIR_HOST}${base_libdir}')] + qemu_cmd = qemu_wrapper_cmdline(d, d.getVar('STAGING_DIR_HOST'), + qemu_libdirs) + + if d.getVar("HOST_AND_TARGET_SAME_WIDTH") == "1": + qemu_cmd = "" + + wrapper_path = d.expand('${B}/v8-qemu-wrapper.sh') + with open(wrapper_path, 'w') as wrapper_file: + wrapper_file.write("""#!/bin/sh + +# This file has been generated automatically. +# It invokes QEMU to run binaries built for the target in the host during the +# build process. + +%s "$@" +""" % qemu_cmd) + os.chmod(wrapper_path, 0o755) +} + +do_create_v8_qemu_wrapper[dirs] = "${B}" +addtask create_v8_qemu_wrapper after do_configure before do_compile + +LDFLAGS:append:x86 = " -latomic" + +export CC_host +export CFLAGS_host +export CXX_host +export CXXFLAGS_host +export LDFLAGS_host +export AR_host +export HOST_AND_TARGET_SAME_WIDTH + +CROSS_FLAGS = "--cross-compiling" +CROSS_FLAGS:class-native = "--no-cross-compiling" + +# Node is way too cool to use proper autotools, so we install two wrappers to forcefully inject proper arch cflags to workaround gypi +do_configure () { + GYP_DEFINES="${GYP_DEFINES}" export GYP_DEFINES + # $TARGET_ARCH settings don't match --dest-cpu settings + python3 configure.py --verbose --prefix=${prefix} \ + --shared-openssl \ + --dest-cpu="${@map_nodejs_arch(d.getVar('TARGET_ARCH'), d)}" \ + --dest-os=linux \ + --libdir=${baselib} \ + ${CROSS_FLAGS} \ + ${ARCHFLAGS} \ + ${PACKAGECONFIG_CONFARGS} +} + +do_compile () { + install -D ${RECIPE_SYSROOT_NATIVE}/etc/ssl/openssl.cnf ${B}/deps/openssl/nodejs-openssl.cnf + install -D ${B}/v8-qemu-wrapper.sh ${B}/out/Release/v8-qemu-wrapper.sh + oe_runmake BUILDTYPE=Release +} + +do_install () { + oe_runmake install DESTDIR=${D} +} + +do_install_ptest () { + cp -r ${B}/out/Release/cctest ${D}${PTEST_PATH}/ + cp -r ${B}/test ${D}${PTEST_PATH} + chown -R root:root ${D}${PTEST_PATH} +} + +PACKAGES =+ "${PN}-npm" +FILES:${PN}-npm = "${nonarch_libdir}/node_modules ${bindir}/npm ${bindir}/npx ${bindir}/corepack" +RDEPENDS:${PN}-npm = "bash python3-core python3-shell python3-datetime \ + python3-misc python3-multiprocessing" + +PACKAGES =+ "${PN}-systemtap" +FILES:${PN}-systemtap = "${datadir}/systemtap" + +do_configure[prefuncs] += "set_gyp_variables" +do_compile[prefuncs] += "set_gyp_variables" +do_install[prefuncs] += "set_gyp_variables" +python set_gyp_variables () { + if d.getVar("HOST_AND_TARGET_SAME_WIDTH") == "0": + # We don't want to cross-compile during target compile, + # and we need to use the right flags during host compile, + # too. + d.setVar("CC_host", d.getVar("CC") + " -pie -fPIE") + d.setVar("CFLAGS_host", d.getVar("CFLAGS")) + d.setVar("CXX_host", d.getVar("CXX") + " -pie -fPIE") + d.setVar("CXXFLAGS_host", d.getVar("CXXFLAGS")) + d.setVar("LDFLAGS_host", d.getVar("LDFLAGS")) + d.setVar("AR_host", d.getVar("AR")) + elif d.getVar("HOST_AND_TARGET_SAME_WIDTH") == "1": + # Enable upstream cross compile support + d.setVar("CC_host", d.getVar("BUILD_CC")) + d.setVar("CFLAGS_host", d.getVar("BUILD_CFLAGS")) + d.setVar("CXX_host", d.getVar("BUILD_CXX")) + d.setVar("CXXFLAGS_host", d.getVar("BUILD_CXXFLAGS")) + d.setVar("LDFLAGS_host", d.getVar("BUILD_LDFLAGS")) + d.setVar("AR_host", d.getVar("BUILD_AR")) +} + +python __anonymous () { + # 32 bit target and 64 bit host (x86-64 or aarch64) have different bit width + if d.getVar("SITEINFO_BITS") == "32" and "64" in d.getVar("BUILD_ARCH"): + d.setVar("HOST_AND_TARGET_SAME_WIDTH", "0") + else: + d.setVar("HOST_AND_TARGET_SAME_WIDTH", "1") +} + +BBCLASSEXTEND = "native"