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

Issue 607213 link

Starred by 1 user

Issue metadata

Status: Fixed
Owner:
Closed: Jun 2016
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Linux , Chrome
Pri: 2
Type: Bug

Blocking:
issue 433082



Sign in to add a comment

ChromeOS on linux-chromeos doesn't build 'all'

Project Member Reported by yuweih@chromium.org, Apr 27 2016

Issue description

OS: Goobuntu 14.04

What steps will reproduce the problem?

(1) Create GN build target with these args:
target_os = "chromeos"
use_goma = true
is_chrome_branded = true

(2) Do Ninja build

What is the expected output?

The target should be built with no error.

What do you see instead?

gen/components/arc/common/bluetooth.mojom-blink.cc:2649:25: error: no member named 'Data_' in 'WTF::String'
      if (!WTF::String::Data_::Validate(
           ~~~~~~~~~~~~~^
gen/components/arc/common/bluetooth.mojom-blink.cc:2760:25: error: no member named 'Data_' in 'WTF::String'
      if (!WTF::String::Data_::Validate(
           ~~~~~~~~~~~~~^
2 errors generated.


Just managed to build by commenting out the code...
 
Cc: davidjames@chromium.org
David, do you know which team owns this? 
Cc: -davidjames@chromium.org
Owner: steve...@chromium.org
Cc: afakhry@chromium.org steve...@chromium.org
Owner: jen...@chromium.org
Odd, the buildbot succeeds:

https://build.chromium.org/p/chromium.chromiumos/builders/Linux%20ChromiumOS%20GN

I'll try locally, but -> the current gardener

Cc: akes...@chromium.org dpranke@chromium.org
Oh, is_chrome_branded... 

We probably ought to have a Linux ChromeOS builder on the chromeos.chrome waterfall.

+akeshet@, dpranke@

Hmm, I configured my args.gn as described, but do not have a en/components/arc/common/bluetooth.mojom-blink.cc file.

Are you on a ToT build, and do you have anything else in your args.gn file?

Components: -Infra>Client>ChromeOS Build
Labels: -Pri-3 Build-Tools-GN Pri-2
Owner: steve...@chromium.org
Status: Assigned (was: Untriaged)
Aha... this fails when building all targets. Unfortunately I can't seem to easily identify which one - bluetooth.mojom-blink is never mentioned explicitly in the code, it must be generated, sigh. I'll try increasing the verbosity of the output and investigate.

Yes it only fails when building all targets. Looks like I can build chrome:chrome without errors or warnings...
Cc: ejcaruso@chromium.org jsc...@chromium.org dcheng@chromium.org tsepez@chromium.org rickyz@chromium.org kerrnel@chromium.org mdempsky@chromium.org
+ components/arc/common/ owners et. al.

I still can't figure out what target is causing this to fail (other than it is not chrome).

This seems like an error in the generated code?

Labels: OS-Chrome
Owner: yzshen@chromium.org
Summary: ChromeOS on linux-chromeos doesn't build 'all' (was: GN ChromeOS on Linux doesn't build)
This bug is not GN specific, I can reproduce this with GYP.

Also, 'is_chrome_branded = true' is not necessary.

I suspect it may be related to https://codereview.chromium.org/1751563002:
"Mojo C++ bindings: support mapping mojo string to WTF::String."

-> yzshen@chromium.org 

We should be building 'all' on at least some bots, so I'm not sure why you'd only see this on CrOS.
Looking at the 'compile' stage output for 'Linux ChromiumOS GN', it looks like we build:

base_unittests base_unittests_run gn_all mash_unittests

The difference appears to be 'gn_all' vs 'all'. 'gn_all' builds locally for me but not 'all'.

The GYP builder (Linux ChromiumOS Builder) builds:

All accessibility_unittests accessibility_unittests_run app_list_presenter_unittests app_list_presenter_unittests_run app_list_unittests app_list_unittests_run app_shell_unittests app_shell_unittests_run ash_unittests ash_unittests_run aura_builder aura_unittests aura_unittests_run base_unittests base_unittests_run browser_tests browser_tests_run cacheinvalidation_unittests cacheinvalidation_unittests_run chrome_app_unittests chrome_app_unittests_run chromeos_unittests chromeos_unittests_run chromevox_tests components_unittests components_unittests_run compositor_unittests compositor_unittests_run content_browsertests content_browsertests_run content_unittests content_unittests_run crypto_unittests crypto_unittests_run dbus_unittests device_unittests device_unittests_run display_unittests display_unittests_run events_unittests events_unittests_run extensions_browsertests extensions_browsertests_run extensions_unittests extensions_unittests_run gcm_unit_tests gcm_unit_tests_run gfx_unittests gfx_unittests_run google_apis_unittests google_apis_unittests_run gpu_ipc_service_unittests gpu_ipc_service_unittests_run gpu_unittests gpu_unittests_run interactive_ui_tests interactive_ui_tests_run ipc_tests ipc_tests_run jingle_unittests jingle_unittests_run media_blink_unittests media_blink_unittests_run media_unittests media_unittests_run message_center_unittests message_center_unittests_run midi_unittests midi_unittests_run nacl_helper_nonsfi_unittests nacl_loader_unittests nacl_loader_unittests_run net_unittests net_unittests_run ppapi_unittests ppapi_unittests_run printing_unittests printing_unittests_run remoting_unittests remoting_unittests_run sandbox_linux_unittests sandbox_linux_unittests_run skia_unittests skia_unittests_run sql_unittests sql_unittests_run sync_unit_tests sync_unit_tests_run ui_arc_unittests ui_base_unittests ui_base_unittests_run ui_chromeos_unittests ui_touch_selection_unittests ui_touch_selection_unittests_run unit_tests unit_tests_run url_unittests url_unittests_run views_unittests views_unittests_run wm_unittests wm_unittests_run

These all build locally also.

Note the capital 'A' All, which apparently is not the same as 'all'. 

Also Note: not specifying a target is the same as 'all'.

I can not for the life of me figure out what target is being built when ninja fails.

I will look into this now ...

fwiw, "All" == "gn_all", but yeah, != "all". Ideally building "All" and then "all" would result in the second-thing being a no-op, but we don't enforce this yet and there are definitely targets that are defined but not included in "All", leading to issues like this one.
so, at tip of tree (at least, #392216), both static and shared debug builds of 'all' work fine for me, though I did not try is_chrome_branded=true per comment #9.

Maybe a fix landed today and it works now?
I just tried ToT with the following args.gn and it failed:

$ ninja -j 1000 -l 10 -C out/Release/

$ cat out/Release/args.gn
target_os = "chromeos"
dcheck_always_on = true
is_debug = false

use_goma = true


Note: I just confirmed that dcheck_always_on and is_debug are irrelevant.

Owner: dpranke@chromium.org
Reassigning to me since I'm not sure what's going on here.

@stevenjb - to re-confirm: this is a regular desktop linux build w/ the above args.gn, right? not simplechrome or ebuild?

And you're seeing the same compile error given in #0 ?

I'm not sure what the discrepancy would be between our builds, but it's possible there's a missing dependency somewhere and we're hitting a race in the build as a result.

Is this actually blocking something else?
@dpranke - 
* Yes, regular linux environment with the args above.
* Yes, same compiler error.
* No, this is not blocking anything, only affecting anyone building 'all' (or omitting any targets).

ok, I'll keep looking into it but will prioritize the other cros bugs that might be blocking things higher.
Owner: steve...@chromium.org
@stevenjb - at tip of tree, in a clean checkout, I still don't get that compile error. Instead, I get a compile error trying to compile it2me_standalone_host_main.cc complaining about trying to include gtk.h

Moreover, if I look at gen/components/arc/common/bluetooth.mojom-blink.cc, I don't see any references to WTF::String::Data_.

So, I feel like something must be out of date in your build? If you still don't see what it is, maybe give me a buzz tomorrow and we can figure out what's different between your builds and mine.
I just tried again with a more recent ToT build and got the gtk.h error, so
that must be recent. I will wait until your fix lands and try again.
Project Member

Comment 21 by bugdroid1@chromium.org, May 13 2016

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/b91b7557f1fd7e44a00231d040a42f2928520ffc

commit b91b7557f1fd7e44a00231d040a42f2928520ffc
Author: dpranke <dpranke@chromium.org>
Date: Fri May 13 02:35:13 2016

Fix it2me_standalone_host compilation.

This newly-added binary doesn't compile on ChromeOS; I think
it might be desktop-linux-only?

R=zijiehe@chromium.org, sergeyu@chromium.org
BUG= 607213 

Review-Url: https://codereview.chromium.org/1966983002
Cr-Commit-Position: refs/heads/master@{#393435}

[modify] https://crrev.com/b91b7557f1fd7e44a00231d040a42f2928520ffc/remoting/test/BUILD.gn

Blocking: 433082
Labels: -Build-Tools-GN Proj-GN-Migration
Status: Fixed (was: Assigned)
Hopefully this is fixed now ...

Sign in to add a comment