Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!

Bug 940304

Summary: www-client/chromium-128.0.6613.137 fails to build on ppc64le
Product: Gentoo Linux Reporter: zin0 <z_i_n_o>
Component: Current packagesAssignee: Chromium Project <chromium>
Status: CONFIRMED ---    
Severity: normal CC: kangie, suertreus, z_i_n_o
Priority: Normal    
Version: unspecified   
Hardware: PPC64   
OS: Linux   
Whiteboard:
Package list:
Runtime testing required: ---
Bug Depends on: 940676    
Bug Blocks:    
Attachments: modified ebuild
build log 4k
build log 64k
emerge info 4k
emerge info 64k
personal overlay archive for chromium
updated overlay archive
overlay archive witch chromium 128, 129 and 130
patch for rust-clanglib
modified chromium-130.0.6723.91.ebuild

Description zin0 2024-09-26 17:45:38 UTC
The current ebuild for chromium-128.0.6613.137 fails to build on ppc64le.

This happens on both 4K and 64K page size machines.

64K page size: multiple 'ld.lld: error: duplicate symbol' errors
4K page size: 'FAILED: gen/net/data/ssl/chrome_root_store/chrome-root-store-inc.cc'

If I modify the ebuild to use the most recent patch set from Raptor Engineering's quickbuild.io and to only apply the patches 'chromium-ppc64-libpng.patch' and 'libpng-pdfium-compile-98.patch' from 'chromium-ppc64le-gentoo-patches-1.tar.xz', the package will build, install and run successfully on my 64K page machine but still fails on my 4K page machine.

Toggling the 'custom-cflags' USE flag doesn't seem to make a difference.


Reproducible: Always
Comment 1 zin0 2024-09-26 17:46:47 UTC
Created attachment 903896 [details]
modified ebuild
Comment 2 zin0 2024-09-26 17:49:50 UTC
Created attachment 903913 [details]
build log 4k
Comment 3 zin0 2024-09-26 17:50:33 UTC
Created attachment 903914 [details]
build log 64k
Comment 4 zin0 2024-09-26 17:51:11 UTC
Created attachment 903915 [details]
emerge info 4k
Comment 5 zin0 2024-09-26 17:51:36 UTC
Created attachment 903916 [details]
emerge info 64k
Comment 6 zin0 2024-09-27 01:20:29 UTC
Quick update: It seems that the file 'use-sysconf-page-size-on-ppc64.patch' from the Raptor / Solid Silicon patch set is causing the build failure on my 4K page system.

Currently, I'm building chromium without the aforementioned patch and I've already gotten further in the process than with the patch.

Will report back when / if the build has completed.

URLs for the patch:

https://gitlab.solidsilicon.io/public-development/open-source/chromium/openpower-patches/-/blob/chromium-128/patches/ppc64le/third_party/use-sysconf-page-size-on-ppc64.patch

https://gitlab.solidsilicon.io/public-development/open-source/chromium/openpower-patches/-/blob/chromium-127/patches/ppc64le/third_party/use-sysconf-page-size-on-ppc64.patch
Comment 7 Matt Jolly gentoo-dev 2024-09-27 07:39:02 UTC
Interesting. I'll keep an eye out and we can update the ebuild.

I'm waiting on their 129 patchset, too.
Comment 8 zin0 2024-09-27 17:14:12 UTC
Created attachment 904024 [details]
personal overlay archive for chromium

A patchset for the 129 versions is already out at:

https://gitlab.solidsilicon.io/public-development/open-source/chromium/openpower-patches/-/tree/chromium-129/patches

In order to see whether my issues are specific to chromium 128 versions, I adapted the ebuild for chromium-129.0.6668.58 to use the patches from the link above. (see attachment)

One Debian specific patch is still required that isn't included in the Solid Silicon repo. (included in the attachement)

The situation is pretty much the same as with version 128: Builds on 64K pages, fails on 4K pages.

At the moment, I'm unable to tell whether removing the "offending" patch 'use-sysconf-page-size-on-ppc64.patch' works on 4K pages or not, because the build hasn't finished yet...

A word of caution: The modified ebuild in the attached archive removes the file 'use-sysconf-page-size-on-ppc64.patch' unconditional of page size which is quite likely a bad idea.

How would one check for page size in an ebuild? Just use 'getconf PAGE_SIZE' or is there a more elegant way?
Comment 9 zin0 2024-09-30 16:43:59 UTC
Created attachment 904253 [details]
updated overlay archive

After compiling and running chromium versions 128.0.6613.137, 129.0.6668.58 and 129.0.6668.70 on both 64K and 4K pages systems, I'd suggest not applying the following patches:

"${WORKDIR}/ppc64le/fix-breakpad-compile.patch"
"${WORKDIR}/ppc64le/fix-swiftshader-compile.patch"

"${WORKDIR}/debian/patches/ppc64le/third_party/use-sysconf-page-size-on-ppc64.patch" (for 128 versions)
"${WORKDIR}/openpower-patches-chromium-129-patches/patches/ppc64le/third_party/use-sysconf-page-size-on-ppc64.patch" (for 129 versions)

The first two patches in the list are outdated and at least the swiftshader patch causes build errors.
More recent versions of these patches are included in the patchset from Raptor / Solid Silicon anyway.

The removal of the third patch isn't necessary for a successful build an a 64K pages system, but on a 4K pages system the build will fail with this patch applied.
On a 64K pages system, the build will finish successfully with or without the patch.
Comment 10 Matt Jolly gentoo-dev 2024-10-02 07:47:58 UTC
Ack. I'm doing the 129 stable bump now, will update the ppc64 patches based on your feedback and make that available.

Thanks for your work. Feel free to log a bug that just hands me a solution any day :)
Comment 11 zin0 2024-10-02 17:45:48 UTC
You're very welcome. Thank you, too, for all your efforts as a maintainer.

Looking forward to see the changes in the repo.
Comment 12 Matt Jolly gentoo-dev 2024-10-03 00:41:08 UTC
I'm going to hold off on this for a little while while I work out what to do about the scary llvm miscompilation warnings in the new patchset.

On my radar, looks like we may need to backport some patches first, but I do need to get the new build out to other arches.
Comment 13 zin0 2024-10-03 02:19:05 UTC
Matt, I've seen the warning on the SSC gitlab instance regarding clang / llvm.

But since I couldn't reproduce the issue using clang 18, I didn't bother to even mention it in this bug report.

In hindsight, this wasn't a clever move by me. Apologies for that.

I've been using clang 18 to build various chromium versions on ppc64le since early August and I've not been able to observe the described massive consumption of system ressources and random crashes.
Comment 14 zin0 2024-10-28 17:50:05 UTC
Created attachment 907122 [details]
overlay archive witch chromium 128, 129 and 130

Solid Silicon released a patchset for the 130 series, so I updated the ebuilds for ppc64le.

There's also some clarification on the clang/llvm issues:

https://gitlab.solidsilicon.io/public-development/open-source/chromium/openpower-patches/-/tree/chromium-130

It seems LLVM 18.1.8 / LLVM 19.1.1 or higher are safe to use.

Presonally, I've been using clang/llvm 18.1.8 to build chromium since early August. That's probably why I haven't encountered the high system usage / crashes.
Comment 15 Larry the Git Cow gentoo-dev 2024-11-02 04:26:43 UTC
The bug has been referenced in the following commit(s):

https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=44eb4ce25290e217fe5269df63ff03016890adc7

commit 44eb4ce25290e217fe5269df63ff03016890adc7
Author:     Matt Jolly <kangie@gentoo.org>
AuthorDate: 2024-11-02 04:24:16 +0000
Commit:     Matt Jolly <kangie@gentoo.org>
CommitDate: 2024-11-02 04:24:22 +0000

    www-client/chromium: drop 128.0.6613.137
    
    Old, vulnerable. Only kept around for ppc64 and
    broken even there.
    
    Bug: https://bugs.gentoo.org/940304
    Signed-off-by: Matt Jolly <kangie@gentoo.org>

 www-client/chromium/Manifest                       |    5 -
 www-client/chromium/chromium-128.0.6613.137.ebuild | 1452 --------------------
 2 files changed, 1457 deletions(-)

https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=96f83c07970601e0b57d03d4830d9000f76c9bdc

commit 96f83c07970601e0b57d03d4830d9000f76c9bdc
Author:     Matt Jolly <kangie@gentoo.org>
AuthorDate: 2024-11-02 04:15:23 +0000
Commit:     Matt Jolly <kangie@gentoo.org>
CommitDate: 2024-11-02 04:23:38 +0000

    www-client/chromium: keyword 130.0.6723.91 for ~ppc64
    
    Move source for ppc64le patchset from raptor engineering
    to openPOWER.
    
    Drop our ppc64le tarball (which has dwindled over time)
    in favour of conditional application of patches from
    our chromium-patches tarball, something that was probably
    long overdue.
    
    Bug: https://bugs.gentoo.org/940304
    Reported-by: zin0 <z_i_n_o@bluewin.ch>
    Signed-off-by: Matt Jolly <kangie@gentoo.org>

 www-client/chromium/Manifest                      |  3 +-
 www-client/chromium/chromium-130.0.6723.91.ebuild | 52 +++++++++++++++--------
 2 files changed, 36 insertions(+), 19 deletions(-)
Comment 16 Matt Jolly gentoo-dev 2024-11-02 04:29:17 UTC
Hi,

It took a little while but here it is: an up-to-date Chromium ppc64le ebuild.

I know that the patches apply but I haven't gone further than that. Could you let me know how you go?

Thanks for all of the work you put into getting this info together!
Comment 17 zin0 2024-11-06 15:00:48 UTC
Created attachment 908002 [details, diff]
patch for rust-clanglib

The new ebuild isn't working for me.

1. We need the following patch: 'rust-clanglib.patch' (see attachement).

Without this patch, the build process will fail at an early stage.

This patch is included in the patch series from Raptor Engineering's quickbuild instance as a Debian specific patch but not in Solid Silicon's gitlab instance. (It is, in fact, a Debian and not a Raptor / Solid Silicon patch.)

Up to now, I kept this patch in the "${FILESDIR}" of my personal overlay.

Could this patch be included in the Gentoo chromium-patches tarball?

(The patch is for version 128 but works without modification for 129 and 130.)


2. The patch 'baseline-isa-3-0.patch' (only used if USE="cpu_flags_ppc_vsx3") doesn't apply on my system(s). I need to investigate further on this one, but that's lowest on my priority list.


3. Compile failure on 4K page systems, again, because of 'use-sysconf-page-size-on-ppc64.patch' .


Generally, I'm not sure wether I like the new way of applying the openpower-patches.

Personally, I'd prefer the old way of getting the patch names from the 'series' file in "${WORKDIR}/openpower-patches-${PPC64_HASH}/patches".
It would make it easier to filter out unneeded / unwanted patches such as the ones that are commented out in that file.
Comment 18 zin0 2024-11-06 15:02:59 UTC
Created attachment 908003 [details]
modified chromium-130.0.6723.91.ebuild

The attached ebuild is onyl a preliminary proposal. It will only work with USE="-cpu_flags_ppc_vsx3" and if 'rust-clanglib.patch' is placed into '/etc/portage/patches/www-client/chromium' .