New issue
Advanced search Search tips
Note: Color blocks (like or ) mean that a user may not be available. Tooltip shows the reason.

Issue 871084 link

Starred by 3 users

Issue metadata

Status: Fixed
Owner: ----
Closed: Aug 22
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: ----
Pri: 3
Type: Bug



Sign in to add a comment

fetch chromium fails on ppc64

Reported by dftxb...@free.fr, Aug 5

Issue description

Version: depot_tools master at commit 82bb756217cd542205ee89d87bc0f17e2bce52b0
OS: Linux
Architecture: ppc64 / ppc64le

$ uname -a
Linux ubuntu14 4.4.0-131-generic #157~14.04.1-Ubuntu SMP Fri Jul 13 08:53:13 UTC 2018 ppc64le ppc64le ppc64le GNU/Linux

What steps will reproduce the problem?
1. fetch chromium


What do you see instead?
________ running 'cipd ensure -log-level error -root /home/user/chromium-infra -ensure-file /tmp/tmpGTS1qa.ensure' in '.'
Error: resolving package: failed to resolve package version (line 4): no such tag.
Error: Command 'cipd ensure -log-level error -root /home/user/chromium-infra -ensure-file /tmp/tmpGTS1qa.ensure' returned non-zero exit status 1

$ cat /tmp/tmpGTS1qa.ensure
$ParanoidMode CheckPresence

@Subdir src/tools/luci-go
infra/tools/luci/isolate/${platform} git_revision:bc125484b8513898f17bc2501ac5e95330f44a3b

I am guessing there is missing ppc64 / ppc64le support for luci-go

- https://bugs.chromium.org/p/chromium/issues/detail?id=764087
In that other issue, the VPYTHON_BYPASS environment variable was added to facilitate third party maintaining of ports, that would be nice to have here too, for chromium

Thank you
 
Apologies for wrong component, I discarded the template option, and unfortunately, cannot update it myself now
Components: -Services>Sync Infra>Platform>Scheduler Infra>SDK
Status: Unconfirmed (was: New)
Adding some better components, please reroute further; I am not that knowledgeable about Infra>* :)
Components: -Infra>Platform>Scheduler Infra>Platform>CIPD
Cc: iannucci@chromium.org mar...@chromium.org
Project Member

Comment 5 by bugdroid1@chromium.org, Aug 8

The following revision refers to this bug:
  https://chromium.googlesource.com/infra/infra/+/ed999c8ac210539ae9d71f65436a2c47015712d5

commit ed999c8ac210539ae9d71f65436a2c47015712d5
Author: Vadim Shtayura <vadimsh@chromium.org>
Date: Wed Aug 08 21:02:01 2018

[cipd] Build 'isolate', 'isolated' and 'swarming' for all "extra" platforms.

We basically have two sets of platforms:
1. Platforms of bots.
2. Platforms of developer machines.

isolate/isolated/swarming were build for bots. Looks like at least 'isolate'
is also used by developers. So build them for developer platforms (like we
already do for various tools living in depot_tools).

R=maruel@chromium.org
BUG= 871084 

Change-Id: I314ec9082ee3f49c94dc1c34deb97e6c4ac1ce79
Reviewed-on: https://chromium-review.googlesource.com/1168035
Reviewed-by: Marc-Antoine Ruel <maruel@chromium.org>
Commit-Queue: Marc-Antoine Ruel <maruel@chromium.org>

[modify] https://crrev.com/ed999c8ac210539ae9d71f65436a2c47015712d5/build/packages/isolate.yaml
[modify] https://crrev.com/ed999c8ac210539ae9d71f65436a2c47015712d5/build/packages/isolated.yaml
[modify] https://crrev.com/ed999c8ac210539ae9d71f65436a2c47015712d5/build/packages/swarming.yaml

I'm not sure whether this was intended to fix the problem or not, but I'm still getting the same error locally here.

Seeing the comments in the code review, I think maybe there's a step left?

"

Patch Set 1:

We'll need to roll 'isolate' version in DEPS after that.
"

Thank you for handling this issue
Yes, there's a step left.

You can try it locally by changing https://chromium.googlesource.com/chromium/src/+/f1ba7052634e67868d81bd433075d3c08a33097c/DEPS#350 to git_revision:ed999c8ac210539ae9d71f65436a2c47015712d5 and running "gclient sync" again.
Just did so!

Now getting;

Running hooks:   5% ( 4/75) nacltools
________ running '/usr/local/bin/python src/build/download_nacl_toolchains.py --mode nacl_core_sdk sync --extract' in '/home/user/chromium'
Traceback (most recent call last):
  File "src/build/download_nacl_toolchains.py", line 59, in <module>
    sys.exit(Main(sys.argv[1:]))
  File "src/build/download_nacl_toolchains.py", line 55, in Main
    return package_version.main(args)
  File "/home/user/chromium/src/native_client/build/package_version/package_version.py", line 1288, in main
    arguments = ParseArgs(args)
  File "/home/user/chromium/src/native_client/build/package_version/package_version.py", line 1116, in ParseArgs
    host_arch = pynacl.platform.GetArch3264()
  File "/home/user/chromium/src/native_client/pynacl/platform.py", line 133, in GetArch3264
    assert machine in ARCH3264_DICT, "Unrecognized arch machine: %s" % machine
AssertionError: Unrecognized arch machine: ppc64le
Error: Command '/usr/local/bin/python src/build/download_nacl_toolchains.py --mode nacl_core_sdk sync --extract' returned non-zero exit status 1 in /home/user/chromium

This I can't help with.
I will just use
$ export GYP_DEFINES="disable_nacl=1"
for now, until this gets solved

Do you think someone else can help for this specific error?
Should I open another issue?
I would open a new issue specifically for nacl, I think.
(but I have a feeling that getting nacl running for a new architecture would be a tremendous amount of work)
https://packages.debian.org/stable/libsodium18

This works on ppc64le, so I believe it is already ported?

-

Skipping the nacl stuff I get another error, seems like just missing builds in google storage, so should be easy for you to add it.

Syncing projects: 100% (98/98), done.                                                        
Running hooks:  17% (13/75) binutils     
________ running '/usr/local/bin/python src/third_party/binutils/download.py' in '/home/user/chromium'
Host architecture ppc is not supported.
Error: Command '/usr/local/bin/python src/third_party/binutils/download.py' returned non-zero exit status 1 in /home/user/chromium


In the python script source code,

"""Minimal tool to download binutils from Google storage.

TODO(mithro): Replace with generic download_and_extract tool.
"""

I do believe binutils is already portable and compiles for ppc64le
It's a different nacl, the nacl here is 'Native Client'. Not sure about the naming collision with libsodium (i.e. why that is, I've wondered myself).

The other hooks to download prebuilt things will only work for architectures that are currently supported for chromium (and I don't believe ppc64 is a supported architecture). You'll have to probably patch and tweak chromium src to get it building, including doing things like rebuilding some of the (normally prebuilt) support libraries.
@dftxbs3e - as far as I know, no one has done a port of Chromium to PPC, which is why you're hitting all of these problems.

Doing so is not a small effort. You can turn off Native Client, and I think there is a PPC port of v8, which are the biggest chunks, but there is lots of other platform-specific stuff in Chromium itself, and it's unclear whether people would be interested in accepting patches for fixes to that platform.

You probably should send a note to chromium-dev saying that you're thinking about trying this, to gauge interest and see if others have tried this before you, before spending too much time on it.
I am already on this since a little while now, ppc64 / ppc64le is now a Desktop platform with Talos II OpenPOWER machines from Raptor Computing Systems, and we lack a browser with JIT support right now (web without JIT isnt viable today), V8 being already ported, getting Chromium running is our shortest path for it right now (at least I believe so).

Getting ppc support for browsers is becoming increasingly important as the usage of Desktop ppc computers increases.

I wanted to start getting changes contributed back, I can hack around a port but that probably wont ever be merged because, obviously, I don't have as much knowledge about Chromium as you guys and I don't know how things are intended to be in the code/scripts, as you guys don't necessarily document everything, you have people in charge of specific parts.
https://groups.google.com/a/chromium.org/d/msg/chromium-dev/MYq1DPz9Tak/Xc9fotObCwAJ

chromium-dev thread

We got the build system working and we're starting code porting efforts
Status: Fixed (was: Unconfirmed)

Sign in to add a comment