Skip to content

chromium: Upgrade to 144.0.7559.132#962

Merged
MaxIhlenfeldt merged 1 commit intoOSSystems:masterfrom
zboszor:master
Mar 23, 2026
Merged

chromium: Upgrade to 144.0.7559.132#962
MaxIhlenfeldt merged 1 commit intoOSSystems:masterfrom
zboszor:master

Conversation

@zboszor
Copy link
Copy Markdown
Contributor

@zboszor zboszor commented Mar 16, 2026

Changes:

  • Fixed build for ARM32 targets using hard float, the previous attempt in chromium: Attempt to fix do_copy_clang_library for armhf target arch #958 was incomplete
  • Added a patch to fix build against GLIBC 2.43 and enabled compatibility with Yocto 6.0
  • DEBUG_FLAGS in chromium-gn.inc may have been good for older Yocto versions, debug level flag can be set via DEBUG_LEVELFLAG now.
  • Chromium 144 modified its licenses.py class, which broke the license generator script here. Adapted the script to Chromium 144.
  • Upgraded Chromium to 144.0.7559.132. Added a patch to unconditionally use the adler2 Rust module. Chromium 144 wants to use adler2 only for nightly Rust, but the older adler module it uses for released Rust versions is outdated for Rust 1.90/1.94 in whinlatter and wrynose, respectively.

@MaxIhlenfeldt
Copy link
Copy Markdown
Collaborator

Are these licenses that we might actually want to have in the tarball? Could you maybe provide a list of all the licenses that are skipped by this change?

@zboszor
Copy link
Copy Markdown
Contributor Author

zboszor commented Mar 16, 2026

I am testing building chromium 144.0.7559.132 at the moment. All of the licenses except the main one in the toplevel directory are gone from the tarball.

@zboszor
Copy link
Copy Markdown
Contributor Author

zboszor commented Mar 16, 2026

And the ones present are not in the list returned by find_chromium_licenses(). WTH?

@zboszor zboszor changed the title chromium/generate_license_list.py: Check whether the license file exist chromium/generate_license_list.py: Fix finding license files Mar 16, 2026
@zboszor
Copy link
Copy Markdown
Contributor Author

zboszor commented Mar 16, 2026

Fixed the script that collects the license files. It was rather an issue with chromium/tools/licenses/licenses.py not completely behaving the same with Python 3.14 or something like that.

@zboszor
Copy link
Copy Markdown
Contributor Author

zboszor commented Mar 16, 2026

This fix breaks re-generating the license list of chromium 142. So it's a change in chromium 144 itself that broke the previous state of this script. I will squash this commit into the chromium 144 commit.

@zboszor zboszor changed the title chromium/generate_license_list.py: Fix finding license files chromium: Add a patch to fix build against GLIBC 2.43 Mar 16, 2026
Copy link
Copy Markdown
Collaborator

@MaxIhlenfeldt MaxIhlenfeldt left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

lgtm % nit, thanks!

@zboszor zboszor changed the title chromium: Add a patch to fix build against GLIBC 2.43 chromium: Upgrade to 144.0.7559.132 Mar 17, 2026
@thorstenl312
Copy link
Copy Markdown

Getting this error with the the GLIB commit:

NOTE: --- Patch fuzz start ---
Applying patch fix-SYS_SECCOMP-redefinition.patch
patching file sandbox/linux/system_headers/linux_seccomp.h
patch unexpectedly ends in middle of line
Hunk #1 succeeded at 6 with fuzz 1.

Now at patch fix-SYS_SECCOMP-redefinition.patch

--- Patch fuzz end ---
DEBUG: Python function patch_do_patch finished
DEBUG: Python function do_patch finished
DEBUG: Executing python function do_qa_patch
ERROR: QA Issue: Fuzz detected:

Applying patch fix-SYS_SECCOMP-redefinition.patch
patching file sandbox/linux/system_headers/linux_seccomp.h
patch unexpectedly ends in middle of line
Hunk #1 succeeded at 6 with fuzz 1.

Adding these two lines below Upstream-Status fixed it:
diff --git a/sandbox/linux/system_headers/linux_seccomp.h b/sandbox/linux/system_headers/linux_seccomp.h
index 8690a96eb0..8988836508 100644

@zboszor
Copy link
Copy Markdown
Contributor Author

zboszor commented Mar 18, 2026

Adding these two lines below Upstream-Status fixed it: diff --git a/sandbox/linux/system_headers/linux_seccomp.h b/sandbox/linux/system_headers/linux_seccomp.h index 8690a96eb0..8988836508 100644

I haven't seen the fuzz issue myself. This file hasn't changed in https://github.com/chromium/chromium since 2022.

Anyway, I have re-generated the patch with git diff based on that repo. Hopefully that fixes the problem for you.

@prevas-emkan
Copy link
Copy Markdown

I tried your branch for an i.MX 6 board and I'm getting this error:

ERROR: Logfile of failure stored in: /path/to/yocto/build/tmp/work/cortexa9t2hf-neon-oe-linux-gnueabi/chromium-ozone-wayland/144.0.7559.132/temp/log.do_compile.2506504
Log data follows:
| DEBUG: Executing shell function do_compile
| ninja: error: '../../../../recipe-sysroot-native/usr/lib/clang/latest/lib/armv7-unknown-linux-gnueabihf/libclang_rt.builtins.a', needed by 'obj/build/rust/allocator/liballoc_error_handler_impl.a', missing and no known rule to make it
| WARNING: exit code 1 from a shell command.
ERROR: Task (/path/to/yocto/meta-browser/meta-chromium/recipes-browser/chromium/chromium-ozone-wayland_144.0.7559.132.bb:do_compile) failed with exit code '1'

I found that rust_abi_target="armv7-unknown-linux-gnueabihf" and RUST_TARGET_SYS="armv7-oe-linux-gnueabihf", but the rust_abi_target directory seem to be missing for me.

$ pwd
/path/to/yocto/build/tmp/work/cortexa9t2hf-neon-oe-linux-gnueabi/chromium-ozone-wayland/144.0.7559.132

$ ls -l recipe-sysroot-native/usr/lib/clang/latest/lib
total 12
drwxrwxr-x 2 emkan users 4096 Mar 11 10:32 arm-unknown-linux-gnu
drwxrwxr-x 2 emkan users 4096 Mar 11 10:32 i386-unknown-linux-gnu
drwxrwxr-x 2 emkan users 4096 Mar 11 10:32 x86_64-unknown-linux-gnu

$ find recipe-sysroot -iname "armv7-*-linux-gnueabihf"
recipe-sysroot/usr/lib/rustlib/armv7-oe-linux-gnueabihf

$ find recipe-sysroot-native -iname "armv7-*-linux-gnueabihf"
recipe-sysroot-native/usr/lib/rustlib/armv7-oe-linux-gnueabihf

@zboszor
Copy link
Copy Markdown
Contributor Author

zboszor commented Mar 18, 2026

Can you please post the output of this command?

bitbake -e chromium-ozone-wayland | grep -E '^(TARGET_SYS|RUST_TARGET_SYS|BUILD_SYS|RUST_BUILD_SYS|TARGET_ARCH|BUILD_ARCH)='

@zboszor
Copy link
Copy Markdown
Contributor Author

zboszor commented Mar 19, 2026

I have fixed the build using MACHINE=raspberrypi3, which also uses hard float.

$ cd recipe-sysroot-native/usr/lib/clang/latest/lib
$ ls -1
armv7-unknown-linux-gnueabihf
linux
x86_64-unknown-linux-gnu

The build is still in progress at around 40% 88%, but the missing but expected directory issue always popped up fairly early in the Chromium build process.

EDIT: The build succeeded.
@prevas-emkan Please test it for your machine.

@zboszor zboszor force-pushed the master branch 2 times, most recently from 804552a to adcf6fc Compare March 19, 2026 07:45
@zboszor
Copy link
Copy Markdown
Contributor Author

zboszor commented Mar 19, 2026

Next stop: 145.0.7632.159

@zboszor zboszor requested a review from MaxIhlenfeldt March 19, 2026 11:30
@zboszor
Copy link
Copy Markdown
Contributor Author

zboszor commented Mar 19, 2026

For chromium 145.0.7632.159, I get many such linker errors at the very end:

ld.lld: error: obj/buildtools/third_party/libc++/chrome.lto.libc++.a(memory.o at 2438).o:(.debug_info+0x92): relocation R_X86_64_32 out of range: 4355947360 is not in [0, 4294967295]
>>> referenced by memory.cpp; consider recompiling with -fdebug-types-section to reduce size of debug sections

The suggested -fdebug-types-section option alone does not help, trying with -mcmodel=medium now.
I am not sure whether we can build this version for 32-bit systems anymore. I will test it with raspberrypi3, though.

Or, remove option -g from CFLAGS/CXXFLAGS and not add -g1 as it's done now.
Probably an INSANE_SKIP setting will also be needed to silence the fallout.

EDIT: Disregard the above. I found the proper way to remove -g and add -g1.
Waiting for the chromium 145 test build to finish.
This should also reduce the size of chromium 142 and 144 due to the reordered commits.

@MaxIhlenfeldt
Copy link
Copy Markdown
Collaborator

Are you planning to send a separate PR for 145? Else I would defer my review until this PR is updated with the changes for 145.

@zboszor
Copy link
Copy Markdown
Contributor Author

zboszor commented Mar 19, 2026

Are you planning to send a separate PR for 145?

Yes. This PR can be reviewed as is.

Copy link
Copy Markdown
Collaborator

@MaxIhlenfeldt MaxIhlenfeldt left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Tentatively lgtm, please see my comments. Also please edit the PR description to include a high-level description of the changes, (the ones to chromium-gn.inc, the two added patches, the license script changes).

@zboszor
Copy link
Copy Markdown
Contributor Author

zboszor commented Mar 19, 2026

Also please edit the PR description to include a high-level description of the changes, (the ones to chromium-gn.inc, the two added patches, the license script changes).

Done.

@zboszor
Copy link
Copy Markdown
Contributor Author

zboszor commented Mar 20, 2026

The first commit was modified to use a better setting.

@zboszor
Copy link
Copy Markdown
Contributor Author

zboszor commented Mar 21, 2026

I just realized that I only use glibc builds.

I will check whether the musl patches can be applied to all of chromium 142, 144 in this PR and to 145 in #963

@zboszor
Copy link
Copy Markdown
Contributor Author

zboszor commented Mar 23, 2026

Rebased over #965

@zboszor zboszor marked this pull request as ready for review March 23, 2026 06:54
Copy link
Copy Markdown
Collaborator

@MaxIhlenfeldt MaxIhlenfeldt left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

still lgtm, but it seems there are some conflicts with #965 merged.

Release Notes:
https://chromereleases.googleblog.com/2026/02/stable-channel-update-for-desktop.html

Build and patch changes:
------------------------

generate_license_list.py was fixed to generate the license list
correctly.

Fixed do_copy_clang_library() for the new version when
BUILD_ARCH != TARGET_ARCH.

Removed patches: None

Modified patches:
* 0009-Adjust-the-Rust-build-to-our-needs.patch
* 0013-Reduce-minimum-browser-window-width-to-480px.patch
* chromium-142-crabbyavif-rust18x.patch

New patches:
* use-adler2.patch

  Chromium 144 makes it conditional on "nightly" whether to use
  adler2. For released Rust versions, it wants to use adler.
  This doesn't work in Rust 1.9x in Yocto 5.3/6.0.

License changes:
----------------

Added licenses:
  * third_party/android_deps/autorolled/committed/libs/com_google_android_gms_play_services_time/LICENSE
  * third_party/android_deps/autorolled/committed/libs/com_squareup_curtains_curtains/LICENSE
  * third_party/android_deps/autorolled/committed/libs/com_squareup_leakcanary_leakcanary_android/LICENSE
  * third_party/android_deps/autorolled/committed/libs/com_squareup_leakcanary_leakcanary_android_core/LICENSE
  * third_party/android_deps/autorolled/committed/libs/com_squareup_leakcanary_leakcanary_android_utils/LICENSE
  * third_party/android_deps/autorolled/committed/libs/com_squareup_leakcanary_leakcanary_core/LICENSE
  * third_party/android_deps/autorolled/committed/libs/com_squareup_leakcanary_leakcanary_gc/LICENSE
  * third_party/android_deps/autorolled/committed/libs/com_squareup_leakcanary_leakcanary_object_watcher/LICENSE
  * third_party/android_deps/autorolled/committed/libs/com_squareup_leakcanary_leakcanary_object_watcher_android/LICENSE
  * third_party/android_deps/autorolled/committed/libs/com_squareup_leakcanary_leakcanary_object_watcher_android_androidx/LICENSE
  * third_party/android_deps/autorolled/committed/libs/com_squareup_leakcanary_leakcanary_object_watcher_android_core/LICENSE
  * third_party/android_deps/autorolled/committed/libs/com_squareup_leakcanary_plumber_android/LICENSE
  * third_party/android_deps/autorolled/committed/libs/com_squareup_leakcanary_plumber_android_core/LICENSE
  * third_party/android_deps/autorolled/committed/libs/com_squareup_leakcanary_shark/LICENSE
  * third_party/android_deps/autorolled/committed/libs/com_squareup_leakcanary_shark_android/LICENSE
  * third_party/android_deps/autorolled/committed/libs/com_squareup_leakcanary_shark_graph/LICENSE
  * third_party/android_deps/autorolled/committed/libs/com_squareup_leakcanary_shark_hprof/LICENSE
  * third_party/android_deps/autorolled/committed/libs/com_squareup_leakcanary_shark_log/LICENSE
  * third_party/androidx/committed/libs/androidx_tracing_tracing_ktx/LICENSE
  * third_party/androidx/committed/libs/androidx_work_work_multiprocess/LICENSE
  * third_party/androidx/committed/libs/androidx_work_work_runtime/LICENSE

Removed licenses:
  * third_party/android_deps/libs/com_android_support_support_annotations/LICENSE

Updated licenses:
  * base/third_party/nspr/LICENSE
  * third_party/android_deps/autorolled/committed/libs/com_google_android_gms_play_services_cast/LICENSE
  * third_party/android_deps/autorolled/committed/libs/com_google_android_gms_play_services_cast_framework/LICENSE
  * third_party/icu/LICENSE
  * third_party/screen-ai/THIRD_PARTY_LICENSES

Test-built:
-----------

* chromium-ozone-wayland
  * MACHINE=intel-corei7-64, qemuarm64

* chromium-x11
  * MACHINE=intel-corei7-64, qemuarm64, raspberrypi3

Test dependencies:
------------------

* URI: git://git.openembedded.org/openembedded-core
  - branch: master
  - revision: 531f87111d83430615f2e20dd41a3dd5fc25c7ab

* URI: git://git.openembedded.org/meta-openembedded
  - layers: meta-oe
  - branch: master
  - revision: 6b55bede28261c38fb1da1474ca5c991ac414c93

* URI: git://git.yoctoproject.org/meta-intel
  - branch: master
  - revision: 1610818c25713c700f48c5428c151d0d02e4aa94
  - manual change to conf/layer.conf to support wrynose

Signed-off-by: Zoltán Böszörményi <zboszor@gmail.com>
@zboszor
Copy link
Copy Markdown
Contributor Author

zboszor commented Mar 23, 2026

Rebased against the merged/squashed patchset.

@MaxIhlenfeldt
Copy link
Copy Markdown
Collaborator

Thanks!

@MaxIhlenfeldt MaxIhlenfeldt merged commit 80a2f89 into OSSystems:master Mar 23, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Development

Successfully merging this pull request may close these issues.

4 participants