New issue
Advanced search Search tips

Issue 633316 link

Starred by 3 users

Issue metadata

Status: Fixed
Owner:
Closed: Aug 2016
Cc:
EstimatedDays: ----
NextAction: ----
OS: iOS
Pri: 1
Type: Bug-Regression



Sign in to add a comment

ClangToTiOS fails to compile on first build after gn switch

Project Member Reported by thakis@chromium.org, Aug 1 2016

Issue description

https://build.chromium.org/p/chromium.fyi/builders/ClangToTiOS/builds/7966/steps/compile/logs/stdio

../../third_party/llvm-build/Release+Asserts/bin/clang -MMD -MF obj/third_party/libjpeg_turbo/simd/jsimd_arm_neon.o.d -DV8_DEPRECATION_WARNINGS -DNO_TCMALLOC -DDISABLE_NACL -DCHROMIUM_BUILD -DFIELDTRIAL_TESTING_ENABLED -DCR_CLANG_REVISION=274369-1 -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D_DEBUG -DDYNAMIC_ANNOTATIONS_ENABLED=1 -DWTF_USE_DYNAMIC_ANNOTATIONS=1 -I../.. -Igen -fno-strict-aliasing --param=ssp-buffer-size=4 -fstack-protector -fcolor-diagnostics -arch armv7 -gdwarf-2 -isysroot /Applications/Xcode7.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS9.0.sdk -stdlib=libc++ -miphoneos-version-min=9.0 -c ../../third_party/libjpeg_turbo/simd/jsimd_arm_neon.S -o obj/third_party/libjpeg_turbo/simd/jsimd_arm_neon.o
../../third_party/libjpeg_turbo/simd/jsimd_arm_neon.S:34:1: error: unknown directive
.fpu neon
^
../../third_party/libjpeg_turbo/simd/jsimd_arm_neon.S:35:1: error: unknown directive
.arch armv7a
^
../../third_party/libjpeg_turbo/simd/jsimd_arm_neon.S:36:1: error: unknown directive
.object_arch armv4
^

The bot didn't build earlier due to  bug 633264 .

Not 100% clear if this a clang regression or a gn build issue, but the latter seems more likely.
 

Comment 1 by pkl@chromium.org, Aug 1 2016

Cc: sdefresne@chromium.org justincohen@chromium.org
Labels: M-53
Status: Assigned (was: Untriaged)
Also https://codereview.webrtc.org/2205533003 . With these 3 changes, 'all' builds fine for me in gn/ios builds.
Note: The patch in comment 4 is for a sundry of compilation errors in webrtc targets, not for the error in comment 0. (Hinted at by "With these 3 changes, 'all' builds fine for me in gn/ios builds")
Project Member

Comment 6 by bugdroid1@chromium.org, Aug 2 2016

The following revision refers to this bug:
  https://chromium.googlesource.com/external/webrtc.git/+/3ab32dc7752cbcdbfb13183486f7238b4a89363b

commit 3ab32dc7752cbcdbfb13183486f7238b4a89363b
Author: Nico Weber <thakis@chromium.org>
Date: Tue Aug 02 13:53:25 2016

gn: Do not include "webrtc" in Chromium/iOS builds.

It's not part of the gyp build either, and `ninja -C out/gnios webrtc`
causes several build errors, at least in Chromium builds (which means
gn/ios bots building 'all' are broken).

BUG= chromium:633316 
R=kjellander@webrtc.org

Review URL: https://codereview.webrtc.org/2205533003 .

Cr-Commit-Position: refs/heads/master@{#13609}

[modify] https://crrev.com/3ab32dc7752cbcdbfb13183486f7238b4a89363b/webrtc/BUILD.gn

Project Member

Comment 7 by bugdroid1@chromium.org, Aug 2 2016

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

commit 122b9336884a133e79b84fcc53c327ffd4748808
Author: thakis <thakis@chromium.org>
Date: Tue Aug 02 15:07:09 2016

Roll libyuv e84dcb43bd:68786ccd53

Picks up https://codereview.chromium.org/2201963002/, and
two no-op changes. Full log:
https://chromium.googlesource.com/libyuv/libyuv.git/+log/e84dcb43bd..68786ccd53

BUG= 633316 
TBR=kjellander

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

[modify] https://crrev.com/122b9336884a133e79b84fcc53c327ffd4748808/DEPS

Project Member

Comment 8 by bugdroid1@chromium.org, Aug 2 2016

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

commit 7ec58d490fdaec0d683eab4172783e3ebebaae68
Author: thakis <thakis@chromium.org>
Date: Tue Aug 02 20:25:50 2016

Roll WebRTC 13605:13611

Changes: https://chromium.googlesource.com/external/webrtc/trunk/webrtc.git/+log/ad91437..c2fc3d0

TBR=kjellander

CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_chromium_archive_rel_ng;master.tryserver.chromium.mac:mac_chromium_archive_rel_ng
BUG= 633316 

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

[modify] https://crrev.com/7ec58d490fdaec0d683eab4172783e3ebebaae68/DEPS

New exciting failure now that everything worked for me locally:

FAILED: obj/ios/third_party/earl_grey/earl_grey_internal_shared_library/GREYSlideAction.o 
../../third_party/llvm-build/Release+Asserts/bin/clang -MMD -MF obj/ios/third_party/earl_grey/earl_grey_internal_shared_library/GREYSlideAction.o.d -DV8_DEPRECATION_WARNINGS -DNO_TCMALLOC -DDISABLE_NACL -DCHROMIUM_BUILD -DFIELDTRIAL_TESTING_ENABLED -DCR_CLANG_REVISION=274369-1 -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D_DEBUG -DDYNAMIC_ANNOTATIONS_ENABLED=1 -DWTF_USE_DYNAMIC_ANNOTATIONS=1 -I../.. -Igen -Igen/ios/third_party/earl_grey/EarlGrey.headers.hmap -I../../ios/third_party/earl_grey/src/EarlGrey -I../../ios/third_party/fishhook/src -I../../third_party/google_toolbox_for_mac -I../../third_party/google_toolbox_for_mac/src -I../../third_party/google_toolbox_for_mac/src/AppKit -I../../third_party/google_toolbox_for_mac/src/DebugUtils -I../../third_party/google_toolbox_for_mac/src/Foundation -fno-strict-aliasing --param=ssp-buffer-size=4 -fstack-protector -fcolor-diagnostics -arch armv7 -Wall -Werror -Wextra -Wno-missing-field-initializers -Wno-unused-parameter -Wno-c++11-narrowing -Wno-covered-switch-default -Wno-deprecated-register -Wno-unneeded-internal-declaration -Wno-inconsistent-missing-override -Wno-shift-negative-value -Wno-undefined-var-template -Wno-nonportable-include-path -O0 -gdwarf-2 -isysroot /Applications/Xcode7.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS9.0.sdk -stdlib=libc++ -miphoneos-version-min=9.0 -Xclang -load -Xclang ../../third_party/llvm-build/Release+Asserts/lib/libFindBadConstructs.dylib -Xclang -add-plugin -Xclang find-bad-constructs -Xclang -plugin-arg-find-bad-constructs -Xclang check-templates -Xclang -plugin-arg-find-bad-constructs -Xclang follow-macro-expansion -Xclang -plugin-arg-find-bad-constructs -Xclang check-implicit-copy-ctors -Wheader-hygiene -Wstring-conversion -fvisibility=default -F /Applications/Xcode7.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/Library/Frameworks -F . -F . -std=c99 -fobjc-arc -include obj/ios/third_party/earl_grey/earl_grey_internal_shared_library/EarlGrey.h-m -c ../../ios/third_party/earl_grey/src/EarlGrey/Action/GREYSlideAction.m -o obj/ios/third_party/earl_grey/earl_grey_internal_shared_library/GREYSlideAction.o
error: PCH file built from a different branch ((trunk 277367)) than the compiler ((trunk 277524))
1 error generated.


That -DCR_CLANG_REVISION=274369-1 is from the pinned version, so I guess llvm_force_head_revision isn't getting set correctly on that bot after the gn switch?
Project Member

Comment 10 by bugdroid1@chromium.org, Aug 2 2016

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

commit c6ad2943220821b835486c5c3b6c6fe15aecf0d2
Author: Nico Weber <thakis@chromium.org>
Date: Tue Aug 02 22:13:41 2016

Unbreak ClangToTiOS more after gn switch

The bot used to set LLVM_FORCE_HEAD_REVISION during runhooks to
make sure CR_CLANG_REVISION expanded to the latest version.

In gn, this is done via a llvm_force_head_revision gn arg, but since
the iOS bots don't use the normal machinery for build configs that
needs to be specified twice there.

BUG= 633316 
R=dpranke@chromium.org
TBR=smut

Review URL: https://codereview.chromium.org/2200373002 .

Cr-Commit-Position: refs/heads/master@{#409346}

[modify] https://crrev.com/c6ad2943220821b835486c5c3b6c6fe15aecf0d2/ios/build/bots/chromium.fyi/ClangToTiOS.json

Bot's still red:

thakis-macpro:src thakis$ ninja -C out/gnios/   -k 0 
ninja: Entering directory `out/gnios/'
[1/1] Regenerating ninja files
[8075/14439] SOLINK_MODULE osmesa.so
FAILED: osmesa.so 
TOOL_VERSION=1470235871 ../../build/toolchain/mac/linker_driver.py ../../third_party/llvm-build/Release+Asserts/bin/clang++ -bundle -arch armv7 -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS9.3.sdk -stdlib=libc++ -miphoneos-version-min=9.0 -Wl,-ObjC -o "./osmesa.so" -Wl,-filelist,"./osmesa.so.rsp"  -framework CoreFoundation -framework CoreGraphics -framework CoreText -framework Foundation
Undefined symbols for architecture armv7:
  "_OBJC_CLASS_$_UIApplication", referenced from:
      objc-class-ref in libbase.a(scoped_critical_action.o)
  "_OBJC_CLASS_$_UIDevice", referenced from:
      objc-class-ref in libbase.a(critical_closure_internal_ios.o)
  "_UIBackgroundTaskInvalid", referenced from:
      base::ios::ScopedCriticalAction::Core::EndBackgroundTask() in libbase.a(scoped_critical_action.o)
      base::ios::ScopedCriticalAction::Core::Core() in libbase.a(scoped_critical_action.o)
      base::ios::ScopedCriticalAction::Core::~Core() in libbase.a(scoped_critical_action.o)
ld: symbol(s) not found for architecture armv7
clang: error: linker command failed with exit code 1 (use -v to see invocation)
Traceback (most recent call last):
  File "../../build/toolchain/mac/linker_driver.py", line 222, in <module>
    Main(sys.argv)
  File "../../build/toolchain/mac/linker_driver.py", line 72, in Main
    subprocess.check_call(compiler_driver_args)
  File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/subprocess.py", line 540, in check_call
    raise CalledProcessError(retcode, cmd)
subprocess.CalledProcessError: Command '['../../third_party/llvm-build/Release+Asserts/bin/clang++', '-bundle', '-arch', 'armv7', '-isysroot', '/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS9.3.sdk', '-stdlib=libc++', '-miphoneos-version-min=9.0', '-Wl,-ObjC', '-o', './osmesa.so', '-Wl,-filelist,./osmesa.so.rsp', '-framework', 'CoreFoundation', '-framework', 'CoreGraphics', '-framework', 'CoreText', '-framework', 'Foundation']' returned non-zero exit status 1



I didn't see that locally two days ago, but I do see it now after syncing. I wonder if that's a new regression.
AFAIK, all bots on waterfall/CQ for iOS only builds "gn_all" target, so the "all" target is frequently broken. One option would be to change your bot to also build "gn_all" (using "additional_compile_targets" in the bot configuration).
The iOS builders on the CQ build "gn_all" intentionally, since "all" doesn't work right w/ analyze at the moment, and since we worry about cycle time. We should probably set up a non CQ builder on the chromium waterfall to make sure "all" keeps working.
"all" being frequently broken is bad :-) It'll keep working now that this bot covers it, but yes, if it's too much work for us to keep it green (we'll see) it probably makes sense to add an iOS bot to the list of all-building clobber bots on https://build.chromium.org/p/chromium/console (all the other platforms have one)
I agree that we should have "all" working at all time on iOS. I didn't knew about the all-building clobber bots, would support having it building for iOS too.
Project Member

Comment 16 by bugdroid1@chromium.org, Aug 3 2016

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

commit 410dc80e6cefc05a8c5e4cb32f13c64968ad5bf3
Author: Nico Weber <thakis@chromium.org>
Date: Wed Aug 03 16:46:38 2016

gn: Don't depend on osmesa on iOS.

It's not needed there, and it doesn't quite build.  It's only pulled in
accidentally via the events_unittests data_dep, but events_unittests.isolate
depends on osmesa only on desktop.  So match that.

BUG= 633316 
R=dpranke@chromium.org, sdefresne@chromium.org

Review URL: https://codereview.chromium.org/2209703002 .

Cr-Commit-Position: refs/heads/master@{#409538}

[modify] https://crrev.com/410dc80e6cefc05a8c5e4cb32f13c64968ad5bf3/third_party/mesa/BUILD.gn
[modify] https://crrev.com/410dc80e6cefc05a8c5e4cb32f13c64968ad5bf3/ui/events/BUILD.gn

Project Member

Comment 17 by bugdroid1@chromium.org, Aug 3 2016

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

commit f8f88bfae6f677924e236514142cc2687e90c44f
Author: thakis <thakis@chromium.org>
Date: Wed Aug 03 17:34:25 2016

gn: Add asserts that libjpeg_turbo is not used on iOS.

It doesn't build there, and it wasn't part of the gyp build.
Depends on https://codereview.chromium.org/2201963002/

BUG= 633316 
NOTRY=true

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

[modify] https://crrev.com/f8f88bfae6f677924e236514142cc2687e90c44f/build/secondary/third_party/libjpeg_turbo/BUILD.gn
[modify] https://crrev.com/f8f88bfae6f677924e236514142cc2687e90c44f/third_party/BUILD.gn

Status: Fixed (was: Assigned)
https://build.chromium.org/p/chromium.fyi/builders/ClangToTiOS?numbuilds=200 \o/

Bot's cycled green for the first time since it was switched to gn.

Sign in to add a comment