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

Issue 766311 link

Starred by 2 users

Issue metadata

Status: Assigned
Owner:
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Chrome
Pri: 2
Type: Bug



Sign in to add a comment

Informational builds failed at BuildPackages stage

Project Member Reported by x...@chromium.org, Sep 18 2017

Issue description

See example build: 
https://uberchromegw.corp.google.com/i/chromeos.chrome/builders/veyron_minnie-tot-chrome-pfq-informational/builds/6072

Selected error log:
chromeos-chrome-63.0.3219.0_alpha-r1: [37/25606] CXX host/obj/base/base/environment.o
chromeos-chrome-63.0.3219.0_alpha-r1: FAILED: host/obj/base/base/environment.o 
chromeos-chrome-63.0.3219.0_alpha-r1: /home/chrome-bot/goma/gomacc x86_64-pc-linux-gnu-clang++ -B/usr/bin -MMD -MF host/obj/base/base/environment.o.d -DUSE_SYMBOLIZE -DV8_DEPRECATION_WARNINGS -DUSE_UDEV -DUSE_AURA=1 -DUSE_NSS_CERTS=1 -DUSE_OZONE=1 -DFULL_SAFE_BROWSING -DSAFE_BROWSING_CSD -DSAFE_BROWSING_DB_LOCAL -DOFFICIAL_BUILD -DGOOGLE_CHROME_BUILD -DCR_CLANG_REVISION=\"313222-1\" -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -DNO_UNWIND_TABLES -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D_FORTIFY_SOURCE=2 -D_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS -D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS -DNDEBUG -DNVALGRIND -DDYNAMIC_ANNOTATIONS_ENABLED=0 -DBASE_IMPLEMENTATION -I../../../../../../../home/chrome-bot/chrome_root/src -Ihost/gen -fno-strict-aliasing --param=ssp-buffer-size=4 -fstack-protector -fno-unwind-tables -fno-asynchronous-unwind-tables -fPIC -pipe -pthread -fcolor-diagnostics -Xclang -mllvm -Xclang -instcombine-lower-dbg-declare=1 -m64 -march=x86-64 -Wall -Wextra -Wno-missing-field-initializers -Wno-unused-parameter -Wno-c++11-narrowing -Wno-covered-switch-default -Wno-unneeded-internal-declaration -Wno-inconsistent-missing-override -Wno-undefined-var-template -Wno-nonportable-include-path -Wno-address-of-packed-member -Wno-unused-lambda-capture -Wno-user-defined-warnings -Wno-enum-compare-switch -Wno-tautological-unsigned-zero-compare -fomit-frame-pointer -g2 -gsplit-dwarf -fvisibility=hidden -Wheader-hygiene -Wstring-conversion -Wtautological-overlap-compare -Wno-char-subscripts -Wexit-time-destructors -Wexit-time-destructors -O2 -fno-ident -fdata-sections -ffunction-sections -std=gnu++14 -fno-rtti -nostdinc++ -isystem../../../../../../../home/chrome-bot/chrome_root/src/buildtools/third_party/libc++/trunk/include -isystem../../../../../../../home/chrome-bot/chrome_root/src/buildtools/third_party/libc++abi/trunk/include -fno-exceptions -fvisibility-inlines-hidden  -Wno-unknown-warning-option -c ../../../../../../../home/chrome-bot/chrome_root/src/base/environment.cc -o host/obj/base/base/environment.o
chromeos-chrome-63.0.3219.0_alpha-r1: clang (LLVM option parsing): Unknown command line argument '-instcombine-lower-dbg-declare=1'.  Try: 'clang (LLVM option parsing) -help'
chromeos-chrome-63.0.3219.0_alpha-r1: clang (LLVM option parsing): Did you mean '-instcombine-maxarray-size=1'?

Culprit CL: https://chromium-review.googlesource.com/c/671523/


 

Comment 1 by x...@chromium.org, Sep 18 2017

hans@ is currently working on a quick fix. 

Comment 2 by h...@chromium.org, Sep 18 2017

chromeos-chrome-63.0.3219.0_alpha-r1: clang (LLVM option parsing): Did you mean '-instcombine-maxarray-size=1'?

CrOS uses a version of Clang than the one used for the rest of Chromium, and that version doesn't support this flag.

I'll land a stop-gap fix for now, but we need a way to determine from the build-system which version of Clang is being used. I note that this is already a problem with warning flags, which change often, and which CrOS works around by passing -Wno-unknown-warning-option. I think we need a better solution.

Comment 3 by h...@chromium.org, Sep 18 2017

Status: Started (was: Untriaged)
The fix is here: https://chromium.googlesource.com/chromium/src.git
I'll land in a minute.
Project Member

Comment 5 by bugdroid1@chromium.org, Sep 18 2017

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

commit 308178955214516b259876b56fff9bfc78b97e7f
Author: Hans Wennborg <hans@chromium.org>
Date: Mon Sep 18 20:49:45 2017

clang: Disable -instcombine-lower-dbg-declare=1 for CrOS builds

It breaks CrOS builds which use a different version of Clang, which
doesn't support this flag.

This is a stop-gap fix; Linux CrOS builds do use the Chromium version of
Clang, and we want them to have this flag, but there doesn't seem to be
a straight-forward way to distinguish between these compiler versions
from the build system.

Landing to unbreak the build for now until a better solution is found.

TBR=llozano

Bug: 766311,765793
Change-Id: I3e040161f6987b502b28e97f41fcde2d464da72c
Reviewed-on: https://chromium-review.googlesource.com/671810
Reviewed-by: Hans Wennborg <hans@chromium.org>
Cr-Commit-Position: refs/heads/master@{#502668}
[modify] https://crrev.com/308178955214516b259876b56fff9bfc78b97e7f/build/config/compiler/BUILD.gn

Comment 6 by h...@chromium.org, Sep 18 2017

Cc: h...@chromium.org
Owner: llozano@chromium.org
Status: Assigned (was: Started)
Luis, can you please change the if-statement in build/config/compiler/BUILD.gn to only exclude builds which use CrOS's Clang? I turned it off for all CrOS builds now to unbreak things.


  if (is_clang && !is_nacl && current_toolchain == host_toolchain &&
      !is_chromeos) {
    cflags += [
      "-Xclang",
      "-mllvm",
      "-Xclang",
      "-instcombine-lower-dbg-declare=1",
    ]
  }

Comment 7 by x...@chromium.org, Sep 18 2017

The fix in #5 doesn't solve the problem. I'm still seeing very similar error messages (not exactly the same).

chromeos-chrome-63.0.3219.0_alpha-r1: [13638/40318] CC host/obj/base/third_party/libevent/libevent/evdns.o
chromeos-chrome-63.0.3219.0_alpha-r1: FAILED: host/obj/base/third_party/libevent/libevent/evdns.o 
chromeos-chrome-63.0.3219.0_alpha-r1: /home/chrome-bot/goma/gomacc x86_64-pc-linux-gnu-clang -B/usr/bin -MMD -MF host/obj/base/third_party/libevent/libevent/evdns.o.d -DHAVE_CONFIG_H -DV8_DEPRECATION_WARNINGS -DUSE_UDEV -DUSE_AURA=1 -DUSE_NSS_CERTS=1 -DUSE_OZONE=1 -DFULL_SAFE_BROWSING -DSAFE_BROWSING_CSD -DSAFE_BROWSING_DB_LOCAL -DOFFICIAL_BUILD -DGOOGLE_CHROME_BUILD -DCR_CLANG_REVISION=\"313222-1\" -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -DNO_UNWIND_TABLES -D_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS -D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS -DNDEBUG -DNVALGRIND -DDYNAMIC_ANNOTATIONS_ENABLED=0 -I../../../../../../../home/chrome-bot/chrome_root/src/base/third_party/libevent/linux -I../../../../../../../home/chrome-bot/chrome_root/src -Ihost/gen -fno-strict-aliasing --param=ssp-buffer-size=4 -fstack-protector -fno-unwind-tables -fno-asynchronous-unwind-tables -fPIC -pipe -pthread -fcolor-diagnostics -Xclang -mllvm -Xclang -instcombine-lower-dbg-declare=1 -m64 -march=x86-64 -O2 -fno-ident -fdata-sections -ffunction-sections -fomit-frame-pointer -g2 -gsplit-dwarf -fvisibility=hidden -Wheader-hygiene -Wstring-conversion -Wtautological-overlap-compare -Wall -Wno-unused-variable -Wno-missing-field-initializers -Wno-unused-parameter -Wno-c++11-narrowing -Wno-covered-switch-default -Wno-unneeded-internal-declaration -Wno-inconsistent-missing-override -Wno-undefined-var-template -Wno-nonportable-include-path -Wno-address-of-packed-member -Wno-unused-lambda-capture -Wno-user-defined-warnings -Wno-enum-compare-switch -Wno-tautological-unsigned-zero-compare -std=gnu11  -Wno-unknown-warning-option -c ../../../../../../../home/chrome-bot/chrome_root/src/base/third_party/libevent/evdns.c -o host/obj/base/third_party/libevent/libevent/evdns.o
chromeos-chrome-63.0.3219.0_alpha-r1: clang (LLVM option parsing): Unknown command line argument '-instcombine-lower-dbg-declare=1'.  Try: 'clang (LLVM option parsing) -help'
chromeos-chrome-63.0.3219.0_alpha-r1: clang (LLVM option parsing): Did you mean '-instcombine-maxarray-size=1'?
Project Member

Comment 9 by bugdroid1@chromium.org, Sep 18 2017

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

commit e1cd7e67e4f7039c1922ccf11521e36fdbcb85fd
Author: Hans Wennborg <hans@chromium.org>
Date: Mon Sep 18 21:52:24 2017

clang: Disable -instcombine-lower-dbg-declare=1 for CrOS builds, take 2

The previous attempt (#502668) didn't actually work.

TBR=llozano

Bug: 766311,765793
Change-Id: I3ea9c11b9c2f320e2989723f1d22f4eac75e6583
Reviewed-on: https://chromium-review.googlesource.com/671471
Reviewed-by: Hans Wennborg <hans@chromium.org>
Cr-Commit-Position: refs/heads/master@{#502685}
[modify] https://crrev.com/e1cd7e67e4f7039c1922ccf11521e36fdbcb85fd/build/config/compiler/BUILD.gn

Comment 10 by x...@chromium.org, Sep 18 2017

Cc: steve...@chromium.org
Manoj and I discussed this. 
is_chromeos does not work because it is only set for target compilations.
What Hans did on his second attempt seems correct but it will be confusing to readers of the code. 
One thing we thought about is to have a GN flag that clearly says whether we are using the toolchain that comes embedded with Chrome. 
Similar to the one is there for binutils "linux_use_bundled_binutils". 

WDYT?

Labels: -Pri-1 Pri-2
I am going to lower the severity since we have a fix (not the best) in place. 
Components: Infra
Components: -Infra Infra>Client>ChromeOS
[It appears that a bunch of old cros issues bulk-added the "Infra" component recently, but they should probably be "Infra>Client>ChromeOS".]

Sign in to add a comment