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

Issue 622011 link

Starred by 2 users

Issue metadata

Status: Verified
Owner:
Closed: Jun 2016
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Chrome
Pri: 0
Type: Bug

Blocking:
issue 433082
issue 621681



Sign in to add a comment

GN: SimpleChrome failing on daisy, tricky with afdo error

Project Member Reported by steve...@chromium.org, Jun 21 2016

Issue description

From a ToT chrome checkout today:

$ cros chrome-sdk --board daisy

(sdk) $ gn gen out_$SDK_BOARD/Release --args="$GN_ARGS"

(sdk) $ ninja -j 1000 -l 10 -C out_$SDK_BOARD/Release chrome

...

[456/28061] CXX obj/base/base_static/base_switches.o
FAILED: obj/base/base_static/base_switches.o 
/usr/local/google/home/stevenjb/Work/chrome/.cros_cache/common/goma+2/gomacc armv7a-cros-linux-gnueabi-g++ -B/usr/local/google/home/stevenjb/Work/chrome/.cros_cache/chrome-sdk/tarballs/daisy+8477.0.0+target_toolchain/usr/x86_64-pc-linux-gnu/armv7a-cros-linux-gnueabi/binutils-bin/2.25.51-gold -MMD -MF obj/base/base_static/base_switches.o.d -DV8_DEPRECATION_WARNINGS -DENABLE_MDNS=1 -DENABLE_NOTIFICATIONS -DENABLE_PEPPER_CDMS -DENABLE_PLUGINS=1 -DENABLE_PDF=1 -DENABLE_PRINTING=1 -DENABLE_PRINT_PREVIEW=1 -DENABLE_SPELLCHECK=1 -DUSE_UDEV -DUI_COMPOSITOR_IMAGE_TRANSPORT -DUSE_ASH=1 -DUSE_AURA=1 -DUSE_DEFAULT_RENDER_THEME=1 -DUSE_NSS_CERTS=1 -DUSE_OZONE=1 -DENABLE_WEBRTC=1 -DENABLE_EXTENSIONS=1 -DENABLE_TASK_MANAGER=1 -DENABLE_THEMES=1 -DENABLE_CAPTIVE_PORTAL_DETECTION=1 -DENABLE_SESSION_SERVICE=1 -DENABLE_APP_LIST=1 -DENABLE_SUPERVISED_USERS=1 -DENABLE_SERVICE_DISCOVERY=1 -DIMAGE_LOADER_EXTENSION=1 -DENABLE_WAYLAND_SERVER=1 -DFULL_SAFE_BROWSING -DSAFE_BROWSING_CSD -DSAFE_BROWSING_DB_LOCAL -DCHROMIUM_BUILD -DENABLE_MEDIA_ROUTER=1 -DFIELDTRIAL_TESTING_ENABLED -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D_FORTIFY_SOURCE=2 -DOS_CHROMEOS -DNDEBUG -DNVALGRIND -DDYNAMIC_ANNOTATIONS_ENABLED=0 -I../.. -Igen -fno-strict-aliasing -funwind-tables -fPIC -pipe -B../../third_party/binutils/Linux_x64/Release/bin -pthread -march=armv7-a -mfloat-abi=hard -mthumb -mtune=generic-armv7-a -mfpu=neon -Wall -Werror -Wno-psabi -Wno-unused-local-typedefs -Wno-maybe-uninitialized -Wno-missing-field-initializers -Wno-unused-parameter -g2 -gsplit-dwarf --sysroot=../../../.cros_cache/chrome-sdk/tarballs/daisy+8477.0.0+sysroot_chromeos-base_chromeos-chrome.tar.xz -fvisibility=hidden -O2 -fno-ident -fdata-sections -ffunction-sections -fno-threadsafe-statics -fvisibility-inlines-hidden -std=gnu++11 -Wno-narrowing -Wno-literal-suffix -fno-rtti -fno-exceptions -pipe -march=armv7-a -mtune=cortex-a15 -mfpu=neon -mfloat-abi=hard -D__google_stl_debug_vector=1 -fauto-profile=/build/daisy/tmp/portage/chromeos-base/chromeos-chrome-53.0.2768.0_rc-r1/work/afdo/chromeos-chrome-amd64-53.0.2768.0_rc-r1.afdo -Wno-error -c ../../base/base_switches.cc -o obj/base/base_static/base_switches.o
../../base/base_switches.cc:1:0: error: Cannot open profile file /build/daisy/tmp/portage/chromeos-base/chromeos-chrome-53.0.2768.0_rc-r1/work/afdo/chromeos-chrome-amd64-53.0.2768.0_rc-r1.afdo.
 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
 ^
../../base/base_switches.cc:1: confused by earlier errors, bailing out

 
Note: I do not encounter this with x86/amd64/arm-generic.

Blocking: 433082 621681
Labels: -Build-Tools-GN M-53 Proj-GN-Migration
assuming this is a ship-blocker for now ...
mmm. that option should never be passed to SimpleChrome workflow...
I don't see the same problem...
I dont know how your build is getting the -fauto-profile option.
It should be getting it from local, otherwise the official PFQ would be red now...

and none of my cbuildbot testing has shown this issue for me....
Here is my out_daisy/Release/args.gn from the repro above:

cros_v8_snapshot_extra_ldflags = ""
cros_v8_snapshot_cxx = "/usr/local/google/home/stevenjb/Work/chrome/src/third_party/llvm-build/Release+Asserts/bin/clang++"
use_v4l2_codec = true
cros_target_extra_cflags = "-pipe -march=armv7-a -mtune=cortex-a15 -mfpu=neon -mfloat-abi=hard -fauto-profile=/build/daisy/tmp/portage/chromeos-base/chromeos-chrome-53.0.2768.0_rc-r1/work/afdo/chromeos-chrome-amd64-53.0.2768.0_rc-r1.afdo -Wno-error"
cros_host_extra_cppflags = ""
cros_target_extra_ldflags = "-Wl,-O1 -Wl,-O2 -Wl,--as-needed"
cros_v8_snapshot_cc = "/usr/local/google/home/stevenjb/Work/chrome/src/third_party/llvm-build/Release+Asserts/bin/clang"
use_system_harfbuzz = true
cros_target_ar = "armv7a-cros-linux-gnueabi-ar"
v8_snapshot_toolchain = "//build/toolchain/cros:v8_snapshot"
is_debug = false
cros_target_cxx = "armv7a-cros-linux-gnueabi-g++ -B/usr/local/google/home/stevenjb/Work/chrome/.cros_cache/chrome-sdk/tarballs/daisy+8477.0.0+target_toolchain/usr/x86_64-pc-linux-gnu/armv7a-cros-linux-gnueabi/binutils-bin/2.25.51-gold"
cros_host_ar = "/usr/local/google/home/stevenjb/Work/chrome/src/third_party/binutils/Linux_x64/Release/bin/ar"
cros_v8_snapshot_ld = "/usr/local/google/home/stevenjb/Work/chrome/src/third_party/llvm-build/Release+Asserts/bin/clang++"
ozone_platform = "gbm"
use_evdev_gestures = true
cros_host_extra_cxxflags = ""
use_cras = true
host_toolchain = "//build/toolchain/cros:host"
cros_v8_snapshot_extra_cflags = ""
use_goma = true
use_debug_fission = true
use_system_minigbm = true
use_v4lplugin = false
ozone_auto_platforms = false
arm_float_abi = "hard"
target_cpu = "arm"
cros_host_extra_ldflags = ""
is_clang = false
cros_v8_snapshot_ar = "/usr/local/google/home/stevenjb/Work/chrome/src/third_party/binutils/Linux_x64/Release/bin/ar"
use_xkbcommon = true
cros_host_extra_cflags = ""
cros_host_is_clang = true
symbol_level = 2
target_sysroot = "/usr/local/google/home/stevenjb/Work/chrome/.cros_cache/chrome-sdk/tarballs/daisy+8477.0.0+sysroot_chromeos-base_chromeos-chrome.tar.xz"
cros_target_extra_cppflags = ""
cros_target_cc = "armv7a-cros-linux-gnueabi-gcc -B/usr/local/google/home/stevenjb/Work/chrome/.cros_cache/chrome-sdk/tarballs/daisy+8477.0.0+target_toolchain/usr/x86_64-pc-linux-gnu/armv7a-cros-linux-gnueabi/binutils-bin/2.25.51-gold"
cros_v8_snapshot_extra_cppflags = ""
enable_remoting = true
icu_use_data_file = true
cros_host_cc = "/usr/local/google/home/stevenjb/Work/chrome/src/third_party/llvm-build/Release+Asserts/bin/clang"
use_ozone = true
target_os = "chromeos"
cros_target_ld = "armv7a-cros-linux-gnueabi-g++ -B/usr/local/google/home/stevenjb/Work/chrome/.cros_cache/chrome-sdk/tarballs/daisy+8477.0.0+target_toolchain/usr/x86_64-pc-linux-gnu/armv7a-cros-linux-gnueabi/binutils-bin/2.25.51-gold"
enable_nacl = true
goma_dir = "/usr/local/google/home/stevenjb/Work/chrome/.cros_cache/common/goma+2"
clang_use_chrome_plugins = false
cros_host_cxx = "/usr/local/google/home/stevenjb/Work/chrome/src/third_party/llvm-build/Release+Asserts/bin/clang++"
is_asan = false
arm_use_neon = true
cros_target_extra_cxxflags = "-pipe -march=armv7-a -mtune=cortex-a15 -mfpu=neon -mfloat-abi=hard -D__google_stl_debug_vector=1 -fauto-profile=/build/daisy/tmp/portage/chromeos-base/chromeos-chrome-53.0.2768.0_rc-r1/work/afdo/chromeos-chrome-amd64-53.0.2768.0_rc-r1.afdo -Wno-error"
ozone_platform_gbm = true
cros_host_ld = "/usr/local/google/home/stevenjb/Work/chrome/src/third_party/llvm-build/Release+Asserts/bin/clang++"
cros_v8_snapshot_extra_cxxflags = ""
linux_use_bundled_binutils = true
system_libdir = "lib"

yes, the -fauto-profile= option should not be part cros_target_extra_c*flags... 

I dont understand how you are getting this. 
I have an easy way to repro this by :
USE="afdo_use" ebuild-daisy chromeos-chrome
and then
cros_sdk --chroot

but that is not what you are doing.. 
maybe you did this at some point and now cros_sdk is confused (bug in cros_sdk?)


Hmm. I just repro'd this with a fresh checkout. Maybe your environment tarballs are stale?

My environment file is:

.cros_cache/chrome-sdk/tarballs/daisy+8477.0.0+environment_chromeos-base_chromeos-chrome.tar.xz/

Which has this entry:

declare -a BUILD_ARGS='([0]="is_debug=false" [1]="" [2]="use_v4l2_codec=true" [3]="use_v4lplugin=false" [4]="use_ozone=true" [5]="use_evdev_gestures=true" [6]="use_xkbcommon=true" [7]="linux_use_bundled_binutils=false" [8]="use_debug_fission=false" [9]="enable_remoting=true" [10]="enable_nacl=true" [11]="icu_use_data_file=true" [12]="use_cras=true" [13]="use_system_harfbuzz=true" [14]="is_asan=false" [15]="is_clang=false" [16]="cros_host_is_clang=false" [17]="clang_use_chrome_plugins=false" [18]="ozone_auto_platforms=false" [19]="ozone_platform_gbm=true" [20]="use_system_minigbm=true" [21]="arm_use_neon=true" [22]="is_chrome_branded=true" [23]="is_official_build=true" [24]="internal_gles2_conform_tests=true" [25]="internal_khronos_glcts_tests=true" [26]="use_debug_fission=true" [27]="symbol_level=2" [28]="target_sysroot=\"/build/daisy\"" [29]="system_libdir=\"lib\"" [30]="pkg_config=\"/build/daisy/build/bin/pkg-config\"" [31]="target_os=\"chromeos\"" [32]="ozone_platform=\"gbm\"" [33]="target_cpu=\"arm\"" [34]="arm_float_abi=\"hard\"" [35]="cros_target_ar=\"armv7a-cros-linux-gnueabi-ar\"" [36]="cros_target_cc=\"armv7a-cros-linux-gnueabi-gcc -B/usr/x86_64-pc-linux-gnu/armv7a-cros-linux-gnueabi/binutils-bin/2.25.51-gold\"" [37]="cros_target_cxx=\"armv7a-cros-linux-gnueabi-g++ -B/usr/x86_64-pc-linux-gnu/armv7a-cros-linux-gnueabi/binutils-bin/2.25.51-gold\"" [38]="host_toolchain=\"//build/toolchain/cros:host\"" [39]="v8_snapshot_toolchain=\"//build/toolchain/cros:v8_snapshot\"" [40]="cros_target_ld=\"armv7a-cros-linux-gnueabi-g++ -B/usr/x86_64-pc-linux-gnu/armv7a-cros-linux-gnueabi/binutils-bin/2.25.51-gold\"" [41]="cros_target_extra_cflags=\"-pipe -march=armv7-a -mtune=cortex-a15 -mfpu=neon -mfloat-abi=hard -fauto-profile=/build/daisy/tmp/portage/chromeos-base/chromeos-chrome-53.0.2768.0_rc-r1/work/afdo/chromeos-chrome-amd64-53.0.2768.0_rc-r1.afdo -Wno-error\"" [42]="cros_target_extra_cppflags=\"\"" [43]="cros_target_extra_cxxflags=\"-pipe -march=armv7-a -mtune=cortex-a15 -mfpu=neon -mfloat-abi=hard -D__google_stl_debug_vector=1 -fauto-profile=/build/daisy/tmp/portage/chromeos-base/chromeos-chrome-53.0.2768.0_rc-r1/work/afdo/chromeos-chrome-amd64-53.0.2768.0_rc-r1.afdo -Wno-error\"" [44]="cros_target_extra_ldflags=\"-Wl,-O1 -Wl,-O2 -Wl,--as-needed\"" [45]="cros_host_cc=\"x86_64-pc-linux-gnu-gcc\"" [46]="cros_host_cxx=\"x86_64-pc-linux-gnu-g++\"" [47]="cros_host_ar=\"x86_64-pc-linux-gnu-ar\"" [48]="cros_host_ld=\"x86_64-pc-linux-gnu-g++\"" [49]="cros_host_extra_cflags=\"\"" [50]="cros_host_extra_cxxflags=\"\"" [51]="cros_host_extra_cppflags=\"\"" [52]="cros_host_extra_ldflags=\"\"" [53]="cros_v8_snapshot_cc=\"x86_64-pc-linux-gnu-gcc\"" [54]="cros_v8_snapshot_cxx=\"x86_64-pc-linux-gnu-g++\"" [55]="cros_v8_snapshot_ar=\"x86_64-pc-linux-gnu-ar\"" [56]="cros_v8_snapshot_ld=\"x86_64-pc-linux-gnu-g++\"" [57]="cros_v8_snapshot_extra_cflags=\"\"" [58]="cros_v8_snapshot_extra_cxxflags=\"\"" [59]="cros_v8_snapshot_extra_cppflags=\"\"" [60]="cros_v8_snapshot_extra_ldflags=\"\"")'

Which is setting -fauto-profile


Cc: akes...@chromium.org davidjames@chromium.org
OK, so:

* The LKGM builder was stuck for a while. It controls what build SimpleChrome uses somehow:
https://uberchromegw.corp.google.com/i/chromeos.chrome/builders/Chrome%20LKGM

* The chrome version in .cros_cache/chrome-sdk/tarballs/daisy+8477.0.0+environment_chromeos-base_chromeos-chrome.tar.xz is 53.0.2768.0

* The corresponding PFQ build for daisy_skate is here: https://uberchromegw.corp.google.com/i/chromeos/builders/daisy_skate-chrome-pfq/builds/2529/steps/BuildPackages/logs/stdio

* It clearly specifies -afdo_use

So, where is the environment coming from? A release builder? If so, then that may be a problem.

+akeshet@, +davidjames@




Labels: -Pri-1 Pri-0
Marking as P0 as this is currently affecting developers.

I see this output when I remove my cros cache and run:
$ 'cros chrome-sdk --log-level debug --board=daisy'

15:50:41: INFO: RunCommand: /usr/local/google/home/stevenjb/Work/chrome2/.cros_cache/common/gsutil_4.19.tar.gz/gsutil/gsutil -o 'Boto:num_retries=10' cat gs://chromeos-image-archive/daisy-release/LATEST-8477.0.0
15:50:42: DEBUG: RunCommand: /usr/local/google/home/stevenjb/Work/chrome2/.cros_cache/common/gsutil_4.19.tar.gz/gsutil/gsutil -o 'Boto:num_retries=10' cat gs://chromeos-image-archive/daisy-release/R53-8477.0.0/metadata.json
15:50:43: INFO: SDK: Fetching gs://chromeos-image-archive/daisy-release/R53-8477.0.0/environment_chromeos-base_chromeos-chrome.tar.xz
15:50:43: DEBUG: RunCommand: /usr/local/google/home/stevenjb/Work/chrome2/.cros_cache/common/gsutil_4.19.tar.gz/gsutil/gsutil -o 'Boto:num_retries=10' cp -v -- gs://chromeos-image-archive/daisy-release/R53-8477.0.0/environment_chromeos-base_chromeos-chrome.tar.xz /usr/local/google/home/stevenjb/Work/chrome2/.cros_cache/chrome-sdk/tarballs/staging/tmpTutaIZ
15:50:44: DEBUG: RunCommand: tar -xpf /usr/local/google/home/stevenjb/Work/chrome2/.cros_cache/chrome-sdk/tarballs/staging/tmpTutaIZ/environment_chromeos-base_chromeos-chrome.tar.xz in /usr/local/google/home/stevenjb/Work/chrome2/.cros_cache/chrome-sdk/tarballs/staging/tarball-cache6sVP12/extract
15:50:44: INFO: SDK: Fetching gs://chromeos-image-archive/daisy-release/R53-8477.0.0/sysroot_chromeos-base_chromeos-chrome.tar.xz
15:50:44: DEBUG: RunCommand: /usr/local/google/home/stevenjb/Work/chrome2/.cros_cache/common/gsutil_4.19.tar.gz/gsutil/gsutil -o 'Boto:num_retries=10' cp -v -- gs://chromeos-image-archive/daisy-release/R53-8477.0.0/sysroot_chromeos-base_chromeos-chrome.tar.xz /usr/local/google/home/stevenjb/Work/chrome2/.cros_cache/chrome-sdk/tarballs/staging/tmpaRCvRL
15:50:48: DEBUG: RunCommand: tar -xpf /usr/local/google/home/stevenjb/Work/chrome2/.cros_cache/chrome-sdk/tarballs/staging/tmpaRCvRL/sysroot_chromeos-base_chromeos-chrome.tar.xz in /usr/local/google/home/stevenjb/Work/chrome2/.cros_cache/chrome-sdk/tarballs/staging/tarball-cacheeC0LeC/extract
15:50:57: INFO: SDK: Fetching gs://chromiumos-sdk/2016/06/armv7a-cros-linux-gnueabi-2016.06.18.205307.tar.xz
15:50:57: DEBUG: RunCommand: /usr/local/google/home/stevenjb/Work/chrome2/.cros_cache/common/gsutil_4.19.tar.gz/gsutil/gsutil -o 'Boto:num_retries=10' cp -v -- gs://chromiumos-sdk/2016/06/armv7a-cros-linux-gnueabi-2016.06.18.205307.tar.xz /usr/local/google/home/stevenjb/Work/chrome2/.cros_cache/chrome-sdk/tarballs/staging/tmpxE_Sk5
15:51:00: DEBUG: RunCommand: tar -xpf /usr/local/google/home/stevenjb/Work/chrome2/.cros_cache/chrome-sdk/tarballs/staging/tmpxE_Sk5/armv7a-cros-linux-gnueabi-2016.06.18.205307.tar.xz in /usr/local/google/home/stevenjb/Work/chrome2/.cros_cache/chrome-sdk/tarballs/staging/tarball-cachelVLyHT/extract


That looks like we are using results from release builds?

Is the straightforward fix to just filter out -fauto-profilo in simple chrome?

The LKGM builder was broken for a month so we missed a bunch of GN changes, could this be one of them?

I guess I don't understand how this works for GYP.. 
I thought the environment was coming from the PFQ builders which do not use AFDO.

I guess is because for GYP we were not update CFLAGS and CXXFLAGS with the contents of EBUILD_FLAGS

	if use runhooks; then
		[[ -f "${EGCLIENT}" ]] || die "EGCLIENT at '${EGCLIENT}' does not exist"
		local cmd=( "${EGCLIENT}" runhooks --force )
		echo "${cmd[@]}"
		CFLAGS="${CFLAGS} ${EBUILD_CFLAGS[*]}" \
		CXXFLAGS="${CXXFLAGS} ${EBUILD_CXXFLAGS[*]}" \
		GYP_CHROMIUM_NO_ACTION=$(use10 gn) \

This does not update CFLAGS in the environment, only for the GYP execution.

since GN does not use envvars, I guess the only option is to remove EBUILD_*FLAGS from simple chrome workflow as steve has said.
Project Member

Comment 13 by bugdroid1@chromium.org, Jun 22 2016

The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/chromite/+/8c1b19c098bd84bdefdea93da75821b082f0b395

commit 8c1b19c098bd84bdefdea93da75821b082f0b395
Author: Luis Lozano <llozano@chromium.org>
Date: Wed Jun 22 00:20:55 2016

GN: simple chrome should not use EBUILD_CFLAGS/EBUILD_CXXFLAGS

BUG= chromium:622011 
TEST=verified by hand the EBUILD flags are not passed to GN

Change-Id: I1603e0dd4603530b9e5c21470e727b84565e218f
Reviewed-on: https://chromium-review.googlesource.com/354720
Reviewed-by: Steven Bennetts <stevenjb@chromium.org>
Tested-by: Steven Bennetts <stevenjb@chromium.org>

[modify] https://crrev.com/8c1b19c098bd84bdefdea93da75821b082f0b395/cli/cros/cros_chrome_sdk.py

Status: Fixed (was: Assigned)
Working, thanks!

Project Member

Comment 15 by bugdroid1@chromium.org, Jun 22 2016

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

commit e503ca8ec540c95f018c94eb25673c20c1472a1b
Author: stevenjb <stevenjb@chromium.org>
Date: Wed Jun 22 18:44:44 2016

Roll src/third_party/chromite/ 9a20cdbe1..8c1b19c09 (12 commits).

https://chromium.googlesource.com/chromiumos/chromite.git/+log/9a20cdbe1182..8c1b19c098bd

$ git log 9a20cdbe1..8c1b19c09 --date=short --no-merges --format='%ad %ae %s'
2016-06-21 llozano GN: simple chrome should not use EBUILD_CFLAGS/EBUILD_CXXFLAGS
2016-06-21 stevenjb Use gn instead of GYP in SimpleChrome stage (take 2)
2016-06-07 philipchen Make gru and kevin builder non-experimental
2016-06-21 stevenjb Revert "Use gn instead of GYP in SimpleChrome stage"
2016-06-17 cmtice [cbuildbot] Update toolchain waterfall builders.
2016-06-14 bhthompson Allow arc-bvt-cq HWTests to be retried
2016-06-15 nxia Add build_id and build_number to CL commit logs.
2016-06-17 nxia Clear chroot at CommitQueueSync stage for incremental builders.
2016-05-16 stevenjb Use gn instead of GYP in SimpleChrome stage
2016-06-15 akeshet build_time_stats: delete old wrapper symlink
2016-06-09 akeshet cidb: tolerate being imported in the absence of sqlalchemy
2016-06-15 laszio [cbuildbot] Add oak to {gcc, llvm, llvm-next}-toolchain-group waterfalls

BUG= chromium:622011 

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

[modify] https://crrev.com/e503ca8ec540c95f018c94eb25673c20c1472a1b/DEPS

Status: Verified (was: Fixed)
bulk verified

Sign in to add a comment