OSSystems / meta-browser

OpenEmbedded/Yocto BSP layer for Web Browsers
MIT License
184 stars 191 forks source link

chromium: Update to 127.0.6533.99 #828

Closed MaxIhlenfeldt closed 3 weeks ago

MaxIhlenfeldt commented 1 month ago

Fixes #827.

Release notes: https://chromereleases.googleblog.com/2024/07/stable-channel-update-for-desktop_23.html https://chromereleases.googleblog.com/2024/07/stable-channel-update-for-desktop_30.html https://chromereleases.googleblog.com/2024/08/stable-channel-update-for-desktop.html

Build and patch changes:

Add 0011-Disable-crabbyavif-to-fix-build-errors.patch to fix a build error that's most likely because the way upstream configures bindgen makes it incompatible with our cross-architecture builds.

Add 0012-m127-side_panel-Add-missing-deps.patch to fix build race conditions due to missing deps.

Add a backported patch to fix a build race conditions due to a missing dep.

Rebase remaining patches.

License changes:

Added licenses:

Removed licenses:

Updated licenses:

Test-built (big thanks to @SoumyaWind):

MaxIhlenfeldt commented 1 month ago

@SoumyaWind testing would be greatly appreciated! I'll update the Test-built section of the commit message + PR description once you're done, the currently listed ones are just the ones from the last update.

Also, note that I saw this linker error in my master qemuarm build:

FAILED: chrome
"python3" "../../build/toolchain/gcc_link_wrapper.py" --output="./chrome" -- arm-oe-linux-gnueabi-clang++ -target arm-oe-linux-gnueabi   -mfpu=neon -mfloat-abi=hard -mcpu=cortex-a15 -mlittle-endian -Qunused-arguments -D_TIME_BITS=64 -D_FILE_OFFSET_BITS=64 --sysroot=/home/gitlab-runner/yocto-chromium/builds/ci-chromium-x11-qemuarm-master/tmp-glibc/work/cortexa15t2hf-neon-oe-linux-gnueabi/chromium-x11/127.0.6533.88/recipe-sysroot -Wl,--version-script=../../build/linux/chrome.map -fuse-ld=lld -Wl,--fatal-warnings -Wl,--build-id=sha1 -fPIC -Wl,-z,noexecstack -Wl,-z,relro -Wl,-z,now -Wl,--icf=all -Wl,--color-diagnostics -Wl,-mllvm,-instcombine-lower-dbg-declare=0 -Wl,--thinlto-cache-dir=thinlto-cache -Wl,--thinlto-cache-policy=cache_size=10\%:cache_size_bytes=40g:cache_size_files=100000 -flto=thin -Wl,--thinlto-jobs=all -Wl,-mllvm,-import-instr-limit=30 -Wl,-mllvm,-disable-auto-upgrade-debug-info -Wl,-mllvm,-inlinehint-threshold=360 -fwhole-program-vtables -march=armv7-a -Wl,--undefined-version -Wl,--no-call-graph-profile-sort -Wl,-O2 -Wl,--gc-sections -Wl,-z,defs -Wl,--as-needed -rdynamic -pie -Wl,--disable-new-dtags -Wl,--lto-O2 prebuilt_rustc_sysroot/lib/rustlib/armv7-oe-linux-gnueabihf/lib/libstd.rlib prebuilt_rustc_sysroot/lib/rustlib/armv7-oe-linux-gnueabihf/lib/liballoc.rlib prebuilt_rustc_sysroot/lib/rustlib/armv7-oe-linux-gnueabihf/lib/libcfg_if.rlib prebuilt_rustc_sysroot/lib/rustlib/armv7-oe-linux-gnueabihf/lib/libcompiler_builtins.rlib prebuilt_rustc_sysroot/lib/rustlib/armv7-oe-linux-gnueabihf/lib/libcore.rlib prebuilt_rustc_sysroot/lib/rustlib/armv7-oe-linux-gnueabihf/lib/libgetopts.rlib prebuilt_rustc_sysroot/lib/rustlib/armv7-oe-linux-gnueabihf/lib/libhashbrown.rlib prebuilt_rustc_sysroot/lib/rustlib/armv7-oe-linux-gnueabihf/lib/liblibc.rlib prebuilt_rustc_sysroot/lib/rustlib/armv7-oe-linux-gnueabihf/lib/libpanic_abort.rlib prebuilt_rustc_sysroot/lib/rustlib/armv7-oe-linux-gnueabihf/lib/libpanic_unwind.rlib prebuilt_rustc_sysroot/lib/rustlib/armv7-oe-linux-gnueabihf/lib/librustc_demangle.rlib prebuilt_rustc_sysroot/lib/rustlib/armv7-oe-linux-gnueabihf/lib/libstd_detect.rlib prebuilt_rustc_sysroot/lib/rustlib/armv7-oe-linux-gnueabihf/lib/libtest.rlib prebuilt_rustc_sysroot/lib/rustlib/armv7-oe-linux-gnueabihf/lib/libunicode_width.rlib prebuilt_rustc_sysroot/lib/rustlib/armv7-oe-linux-gnueabihf/lib/libunwind.rlib prebuilt_rustc_sysroot/lib/rustlib/armv7-oe-linux-gnueabihf/lib/libaddr2line.rlib prebuilt_rustc_sysroot/lib/rustlib/armv7-oe-linux-gnueabihf/lib/libadler.rlib prebuilt_rustc_sysroot/lib/rustlib/armv7-oe-linux-gnueabihf/lib/libgimli.rlib prebuilt_rustc_sysroot/lib/rustlib/armv7-oe-linux-gnueabihf/lib/libmemchr.rlib prebuilt_rustc_sysroot/lib/rustlib/armv7-oe-linux-gnueabihf/lib/libminiz_oxide.rlib prebuilt_rustc_sysroot/lib/rustlib/armv7-oe-linux-gnueabihf/lib/libobject.rlib -Wl,-O1 -Wl,--hash-style=gnu -Wl,--as-needed   -fmacro-prefix-map=/home/gitlab-runner/yocto-chromium/builds/ci-chromium-x11-qemuarm-master/tmp-glibc/work/cortexa15t2hf-neon-oe-linux-gnueabi/chromium-x11/127.0.6533.88/chromium-127.0.6533.88=/usr/src/debug/chromium-x11/127.0.6533.88  -fdebug-prefix-map=/home/gitlab-runner/yocto-chromium/builds/ci-chromium-x11-qemuarm-master/tmp-glibc/work/cortexa15t2hf-neon-oe-linux-gnueabi/chromium-x11/127.0.6533.88/chromium-127.0.6533.88=/usr/src/debug/chromium-x11/127.0.6533.88  -fmacro-prefix-map=/home/gitlab-runner/yocto-chromium/builds/ci-chromium-x11-qemuarm-master/tmp-glibc/work/cortexa15t2hf-neon-oe-linux-gnueabi/chromium-x11/127.0.6533.88/chromium-127.0.6533.88/out/Release=/usr/src/debug/chromium-x11/127.0.6533.88  -fdebug-prefix-map=/home/gitlab-runner/yocto-chromium/builds/ci-chromium-x11-qemuarm-master/tmp-glibc/work/cortexa15t2hf-neon-oe-linux-gnueabi/chromium-x11/127.0.6533.88/chromium-127.0.6533.88/out/Release=/usr/src/debug/chromium-x11/127.0.6533.88  -fdebug-prefix-map=/home/gitlab-runner/yocto-chromium/builds/ci-chromium-x11-qemuarm-master/tmp-glibc/work/cortexa15t2hf-neon-oe-linux-gnueabi/chromium-x11/127.0.6533.88/recipe-sysroot=  -fmacro-prefix-map=/home/gitlab-runner/yocto-chromium/builds/ci-chromium-x11-qemuarm-master/tmp-glibc/work/cortexa15t2hf-neon-oe-linux-gnueabi/chromium-x11/127.0.6533.88/recipe-sysroot=  -fdebug-prefix-map=/home/gitlab-runner/yocto-chromium/builds/ci-chromium-x11-qemuarm-master/tmp-glibc/work/cortexa15t2hf-neon-oe-linux-gnueabi/chromium-x11/127.0.6533.88/recipe-sysroot-native=   -stdlib=libc++ -o "./chrome" -Wl,--start-group @"./chrome.rsp" -Wl,--end-group   /home/gitlab-runner/yocto-chromium/builds/ci-chromium-x11-qemuarm-master/tmp-glibc/work/cortexa15t2hf-neon-oe-linux-gnueabi/chromium-x11/127.0.6533.88/recipe-sysroot-native/usr/lib/clang/latest/lib/linux/libclang_rt.builtins-armhf.a -latomic -ldl -lpthread -lrt -lgmodule-2.0 -lgobject-2.0 -lgthread-2.0 -lglib-2.0 -lsmime3 -lnss3 -lsoftokn3 -lnssutil3 -lplds4 -lplc4 -lnspr4 -ldbus-1 -latk-1.0 -latk-bridge-2.0 -lgio-2.0 -latspi -lresolv -lexpat -ljpeg -luuid -lX11 -lXcomposite -lXdamage -lXext -lXfixes -lXrender -lXrandr -lXtst -ldrm -lxcb -lxkbcommon -lgbm -lXi -lpci -lpangocairo-1.0 -lpango-1.0 -lharfbuzz -lcairo -lasound -lFLAC -lm -lz -lxslt -lxml2 -lxshmfence -Wl,--start-group obj/third_party/rust/cxx/v1/lib/libcxx_lib.rlib obj/third_party/rust/serde_json_lenient/v0_2/wrapper/libthird_uparty_srust_sserde_ujson_ulenient_sv0_u2_swrapper_cwrapper.rlib obj/third_party/rust/serde/v1/lib/libserde_lib.rlib obj/third_party/rust/serde_json_lenient/v0_2/lib/libserde_json_lenient_lib.rlib obj/third_party/rust/itoa/v1/lib/libitoa_lib.rlib obj/third_party/rust/ryu/v1/lib/libryu_lib.rlib obj/build/rust/chromium_prelude/libchromium.rlib obj/skia/libskia_cbridge_urust_uside.rlib obj/third_party/rust/font_types/v0_5/lib/libfont_types_lib.rlib obj/third_party/rust/bytemuck/v1/lib/libbytemuck_lib.rlib obj/third_party/rust/read_fonts/v0_19/lib/libread_fonts_lib.rlib obj/third_party/rust/skrifa/v0_19/lib/libskrifa_lib.rlib obj/third_party/blink/common/rust_crash/libthird_uparty_sblink_scommon_srust_ucrash_crs.rlib obj/components/qr_code_generator/libcomponents_sqr_ucode_ugenerator_cqr_ucode_ugenerator_uffi_uglue.rlib obj/third_party/rust/qr_code/v2/lib/libqr_code_lib.rlib -Wl,--end-group
terminate called after throwing an instance of 'std::bad_alloc'
  what():  std::bad_alloc
PLEASE submit a bug report to https://github.com/llvm/llvm-project/issues/ and include the crash backtrace.
Stack dump without symbol names (ensure you have llvm-symbolizer in your PATH or set the environment var `LLVM_SYMBOLIZER_PATH` to point to it):
0  libLLVM.so.18.1             0x00007fcecb5bf0b4 llvm::sys::RunSignalHandlers() + 52
1  libLLVM.so.18.1             0x00007fcecb5bf366
2  libc.so.6                   0x00007fceca85b050
3  libc.so.6                   0x00007fceca8a9e2c
4  libc.so.6                   0x00007fceca85afb2 gsignal + 18
5  libc.so.6                   0x00007fceca845472 abort + 211
6  libstdc++.so.6              0x00007fceca69d919
7  libstdc++.so.6              0x00007fceca6a8e1a
8  libstdc++.so.6              0x00007fceca6a8e85
9  libstdc++.so.6              0x00007fceca6a90d8
10 libLLVM.so.18.1             0x00007fcecb1d6b3a
11 libLLVM.so.18.1             0x00007fcecb552b8e
12 libLLVM.so.18.1             0x00007fcecb553636 llvm::SmallVectorBase<unsigned int>::grow_pod(void*, unsigned long, unsigned long) + 326
13 arm-oe-linux-gnueabi-ld.lld 0x0000561680c1c829 lld::elf::MergeInputSection::splitStrings(llvm::StringRef, unsigned long) + 1001
14 arm-oe-linux-gnueabi-ld.lld 0x0000561680c828bd
15 libLLVM.so.18.1             0x00007fcecb533731
16 libLLVM.so.18.1             0x00007fcecb533a16
17 libLLVM.so.18.1             0x00007fcecb534534
18 libstdc++.so.6              0x00007fceca6d44a3
19 libc.so.6                   0x00007fceca8a8134
20 libc.so.6                   0x00007fceca9287dc
arm-oe-linux-gnueabi-clang++: error: unable to execute command: Aborted
arm-oe-linux-gnueabi-clang++: error: linker command failed due to signal (use -v to see invocation)

I'm pretty sure that's not our fault, as it says

PLEASE submit a bug report to https://github.com/llvm/llvm-project/issues/ and include the crash backtrace.

so I'm not sure how much we can do about it.

SoumyaWind commented 1 month ago

@MaxIhlenfeldt sure, I will start testing. Thank you.

rakuco commented 1 month ago

Also, note that I saw this linker error in my master qemuarm build:

cc @kraj

SoumyaWind commented 4 weeks ago

@MaxIhlenfeldt , I have completed the testing for below configuration for Poky master with latest changes, sharing the results for reference: 1.For chromium-x11 & qemux86-64 target: compiled successfully without build issues, able to check chromium version using qemux86-64 emulator

2.For chromium-x11 & qemuarm target: Saw the below linker error

arm-poky-linux-gnueabi-ld.lld: error: output file too large: 6798531228 bytes section sizes: .interp 25 .note.ABI-tag 32 .note.crashpad.info 28 .note.gnu.build-id 36 .dynsym 24496 .gnu.version 3062 .gnu.version_r 1008 .gnu.hash 372 .dynstr 34237 .rel.dyn 6870168 .ARM.exidx 8168 .rel.plt 11272 .rodata 14237162 .ARM.extab 11188 .eh_frame_hdr 12 .eh_frame 4 .text 142080020 .init 28 .fini 8 malloc_hook 496 .plt 22576 .tdata 132 .tbss 2972 .fini_array 4 .init_array 8 .data.rel.ro 4720080 .dynamic 464 .got 53748 .got.plt 5648 .relro_padding 2380 .data 387688 .tm_clone_table 0 .bss 1557548 .comment 112 .ARM.attributes 59 .debug_aranges 264 .debug_info 3595686611 .debug_abbrev 138606201 .debug_line 271472686 .debug_str 1348166707 .debug_line_str 4016720 .debug_rnglists 156083865 .debug_loclists 352173833 .debug_frame 21660360 .debug_str_offsets 575908144 .debug_addr 37703676 .symtab 30971824 .shstrtab 545 .strtab 97602373
arm-poky-linux-gnueabi-clang++: error: linker command failed with exit code 1 (use -v to see invocation)
ninja: build stopped: subcommand failed.

3.For chromium-x11 & qemuarm64 target: compiled successfully without build issues, able to check chromium version using qemuarm64 emulator

4.For chromium-x11 & raspberrypi4-64 target: compiled successfully without build issues, didn't check with hardware due to hardware unavailability.

5.For chromium-ozone-wayland & qemux86-64 target: compiled successfully without build issues, able to check chromium version using qemux86-64 emulator

I will start testing for poky scarthgap branch. Thank you.

MaxIhlenfeldt commented 4 weeks ago

@SoumyaWind

arm-poky-linux-gnueabi-ld.lld: error: output file too large: 6798531228 bytes

Do you have DEBUG_BUILD set? There's way more debug info that I'd expect. Maybe also check if out/Release/args.gn contains symbol_level=0 and whether the compiler flags set in build/toolchain/yocto/BUILD.gn contain -g.

SoumyaWind commented 3 weeks ago

The previous log did not have debugging enabled (symbol_level=0)

To obtain the debug info, I have updated GN configuration with - is_debug=true, is_official_build=false and symbol_level=2 To resolve dependency errors related to systemd, I have

With this, build was successful for qemuarm and able to check chromium version using qemuarm emulator

SoumyaWind commented 3 weeks ago

@MaxIhlenfeldt I have completed the testing for below configuration for Poky Scarthgap with latest changes, sharing the results for reference: 1.For chromium-x11 & qemux86-64 target: compiled successfully without build issues, able to check chromium version using qemux86-64 emulator

2.For chromium-x11 & qemuarm target: compiled successfully without build issues, able to check chromium version using qemuarm emulator

3.For chromium-x11 & qemuarm64 target: compiled successfully without build issues, able to check chromium version using qemuarm64 emulator

4.For chromium-x11 & raspberrypi4-64 target: compiled successfully without build issues, didn't check with hardware due to hardware unavailability.

5.For chromium-ozone-wayland & qemux86-64 target: compiled successfully without build issues, able to check chromium version using qemux86-64 emulator

MaxIhlenfeldt commented 3 weeks ago

Thanks @SoumyaWind, looks like we're good to go!