Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Update to chromium 115 #734

Closed
rwmacleod opened this issue Jul 21, 2023 · 17 comments · Fixed by #741
Closed

Update to chromium 115 #734

rwmacleod opened this issue Jul 21, 2023 · 17 comments · Fixed by #741
Assignees

Comments

@rwmacleod
Copy link
Contributor

https://chromereleases.googleblog.com/2023/07/stable-channel-update-for-desktop.html?m=1

@nrpt-m @MaxIhlenfeldt the usual approach?

@MaxIhlenfeldt MaxIhlenfeldt self-assigned this Jul 24, 2023
@MaxIhlenfeldt
Copy link
Collaborator

Yes! Sorry, I was ooo at the end of last week, but I'll start working on the update today.

@MaxIhlenfeldt
Copy link
Collaborator

I think https://crrev.com/c/4517702 bumped Chromium's required Linux kernel version to 5.10 on arm64 - according to torvalds/linux@3b714d2, HWCAP2_MTE was introduced in 5.10.

This is problematic because dunfell still uses Linux 5.4:

| ../../base/allocator/partition_allocator/tagging.cc:195:52: error: use of undeclared identifier 'HWCAP2_MTE'
|   if ((hwcap & _IFUNC_ARG_HWCAP) && (hw->_hwcap2 & HWCAP2_MTE)) {
|                                                    ^
| ../../base/allocator/partition_allocator/tagging.cc:203:52: error: use of undeclared identifier 'HWCAP2_MTE'
|   if ((hwcap & _IFUNC_ARG_HWCAP) && (hw->_hwcap2 & HWCAP2_MTE)) {
|                                                    ^
| ../../base/allocator/partition_allocator/tagging.cc:211:52: error: use of undeclared identifier 'HWCAP2_MTE'
|   if ((hwcap & _IFUNC_ARG_HWCAP) && (hw->_hwcap2 & HWCAP2_MTE)) {
|                                                    ^

I suspect reverting that CL will fix this one issue, but we might run into similar ones in the future.

@rakuco
Copy link
Collaborator

rakuco commented Jul 24, 2023

How about backporting https://chromium-review.googlesource.com/c/chromium/src/+/4610745?

@MaxIhlenfeldt
Copy link
Collaborator

Ah, good find, thanks!

@MaxIhlenfeldt
Copy link
Collaborator

As I mentioned in #716, there are new build errors that most likely wouldn't be there with clang 16. I'm wondering what a reasonable time estimate for fixing #716 (at least for kirkstone and mickledore) would be? (@kraj)

I have to admit that I'm not too keen on fixing these errors one by one if there's an alternative (that we'll have to implement in the near future in any case) that would fix them all in one go. What makes this decision even more difficult is that I don't know yet how many other build errors there are with clang < 16 in m115. It might be just one more, it might be ten - in the former case, it'd be no problem to patch the errors for m115 and target m116 to be the version we compile with clang 16; in the latter case, I'm not sure updating to m115 without updating clang at the same time is sensible.

@rakuco
Copy link
Collaborator

rakuco commented Aug 1, 2023

@MaxIhlenfeldt @kraj @rwmacleod A few days ago I pushed a dunfell-clang14 branch to my meta-clang fork with lots of cherry-picks from meta-clang's kirkstone branch. I'm not sure if this is the best approach and I've probably cherry-picked too many things.

I've built:

  • chromium-ozone-wayland with MACHINE = "qemuarm64", TOOLCHAIN ?= "clang" and RUNTIME = "llvm". The latter did require some extra cherry-picks, and I did give up on some recipes and also passed TOOLCHAIN:pn-gnutls = "gcc" and TOOLCHAIN:pn-pulseaudio = "gcc".
  • chromium-x11 with MACHINE = "qemux86-64". I've also run core-image-sato on QEMU and Chromium did run fine and show some websites.

I did this on a Fedora 37 installation that normally failed to build with dunfell and clang 12 due to #726.

If you have some spare cycles, do let me know if my tree works in your builds so we can see what to do with it.

@rwmacleod
Copy link
Contributor Author

@nrpt-m please give this a spin for @rakuco

@nrpt-m
Copy link
Contributor

nrpt-m commented Aug 2, 2023

If you have some spare cycles, do let me know if my tree works in your builds so we can see what to do with it.

@rakuco I have built and tested chromium-x11 with machine qemux86-64 for dunfell branch in below set-up. Chromium works fine without any issue. I have used meta-clang/dunfell-clang14 (https://github.com/rakuco/meta-clang/tree/dunfell-clang14) from your tree.

meta-xfce = "dunfell:b8b0b06821d4d4df0cce4f07fa31a8ca1dd38f46"
meta-clang.git = "dunfell-clang14:0dc3caf541b8ea6d210220459974a7796ef9e722"
meta-raspberrypi.git = "dunfell:2081e1bb9a44025db7297bfd5d024977d42191ed"
meta-chromium = "master:1c6f9e97a58685799dfe412a3f437a27bd1fd2d6"

$cat conf/local.conf | tail -2
IMAGE_INSTALL:append = " chromium-x11"
PREFERRED_VERSION_nodejs-native = "14.%"

Please correct me if this above set-up is the one, which you were testing and let me know if you want me to build for other machines (qemuarm64, qemauarm & rpi4) as well.

@rakuco
Copy link
Collaborator

rakuco commented Aug 2, 2023

The setup above looks correct, thank you for testing. Did you only build the recipe or was it runtime-tested as well?

It'd also be great if you could test qemuarm, as we've only tested 64-bit architectures so far.

@nrpt-m
Copy link
Contributor

nrpt-m commented Aug 2, 2023

The setup above looks correct, thank you for testing. Did you only build the recipe or was it runtime-tested as well?

Yes, I have built core-image-sato and tested runtime as well.

It'd also be great if you could test qemuarm, as we've only tested 64-bit architectures so far.

Sure, will build and test qemuarm machine as well.

@nrpt-m
Copy link
Contributor

nrpt-m commented Aug 2, 2023

It'd also be great if you could test qemuarm, as we've only tested 64-bit architectures so far.

Sure, will build and test qemuarm machine as well.

Have built and tested qemuarm machine as well and chromium works fine without any issue.

@rakuco
Copy link
Collaborator

rakuco commented Aug 2, 2023

Thank you!

@kraj how would you like to proceed? One option would be for you to create a new dunfell-clang14 branch identical to dunfell-clang12 and then I send a pull request with all the changes for review.

@MaxIhlenfeldt
Copy link
Collaborator

I did this on a Fedora 37 installation that normally failed to build with dunfell and clang 12 due to #726.

I can confirm this also fixes #726 on my machines. Thanks a lot, great work!

Regarding the m115 update, how do we want to proceed? Is it feasible to wait for clang16 for dunfell, kirkstone, and mickledore? Or should I see how far I can get with clang 14/15 (not a fan of that, but I'd be open to it anyway if you think it's sensible)?

@rakuco
Copy link
Collaborator

rakuco commented Aug 2, 2023

Regarding the m115 update, how do we want to proceed? Is it feasible to wait for clang16 for dunfell, kirkstone, and mickledore? Or should I see how far I can get with clang 14/15 (not a fan of that, but I'd be open to it anyway if you think it's sensible)?

At this point I think seeing how far a build with clang 14 goes (be it on dunfell or kirkstone) is the safest option. I don't know if the way I've approached the dunfell-clang14 branch works, and moving to clang 16 would require first landing those changes, then moving both dunfell and kirkstone to clang 16. I could help with that, but probably wouldn't have time to do it myself.

@MaxIhlenfeldt
Copy link
Collaborator

At this point I think seeing how far a build with clang 14 goes (be it on dunfell or kirkstone) is the safest option.

Makes sense. I'll see how far I can get and will update here!

@rakuco
Copy link
Collaborator

rakuco commented Aug 8, 2023

@kraj how would you like to proceed? One option would be for you to create a new dunfell-clang14 branch identical to dunfell-clang12 and then I send a pull request with all the changes for review.

I've filed kraj/meta-clang#835 to see how to move forward with clang 14 on dunfell.

@MaxIhlenfeldt
Copy link
Collaborator

MaxIhlenfeldt commented Aug 9, 2023

I'm currently at three added downstream patches, one of which I'm pretty sure can be upstreamed, and mickledore builds successfully 🎉 the kirkstone build is still running, dunfell will follow after that. If both builds succeed as well, I'll upload the PR tomorrow.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Development

Successfully merging a pull request may close this issue.

4 participants