New issue
Advanced search Search tips

Issue 747726 link

Starred by 1 user

Issue metadata

Status: Fixed
Owner:
Closed: Jul 2017
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: iOS
Pri: 1
Type: Bug

Blocking:
issue 742498
issue 746505



Sign in to add a comment

warning about libclang_rt.ios.a missing required architecture arm64 in iOS builds

Project Member Reported by thakis@chromium.org, Jul 23 2017

Issue description

Reported on https://chromium-review.googlesource.com/c/582074#message-5e594756289ce75c97921da6e23fc7508cd3bc71 :

ld: warning: ignoring file <snip>/src/third_party/llvm-build/Release+Asserts/lib/clang/6.0.0/lib/darwin/libclang_rt.ios.a, missing required architecture arm64 in file <snip>/src/third_party/llvm-build/Release+Asserts/lib/clang/6.0.0/lib/darwin/libclang_rt.ios.a (5 slices)


Likely a regression from https://chromium-review.googlesource.com/c/575586/ ; I'm guessing we build only 32-bit arm, not 64-bit arm, and then the linker warns because some but not all arm is present. (More precisely, the driver adds libclang_rt.ios.a to the link line because it exists now, and then the linker warns.)

This also blocks rolling clang. We should probably just revert https://chromium-review.googlesource.com/c/575586/ for now to unblock the roll and then figure this out async. (Once it's figured out, we can update clang at the same revision without rolling, to check this test in isolation.)


This is less important than the -Wformat stuff and the runtime / signing errors.
 
I see this during configure:

-- ios supported builtin arches: armv7;armv7s;arm64;armv7k
-- Builtin supported architectures: i386;x86_64;armv7;armv7k;armv7s;arm64
....
-- Compiler-RT supported architectures: i386;x86_64;armv7;armv7s;arm64;armv7k

I see various arm64's getting built, e.g.:
lib/builtins/CMakeFiles/clang_rt.builtins_arm64_ios.dir

Regardless, shall I revert?

Comment 2 by thakis@chromium.org, Jul 24 2017

I don't know! That linker warning is new. If you can repro it locally, and if it goes away after removing third_party/llvm-build/Release+Asserts/lib/clang/6.0.0/lib/darwin/libclang_rt.ios.a, missing required architecture arm64 in file <snip>/src/third_party/llvm-build/Release+Asserts/lib/clang/6.0.0/lib/darwin/libclang_rt.ios.a , then something's going wrong. In that case, we probably should revert until we've figured out what's going on.

Comment 3 by thakis@chromium.org, Jul 24 2017

Alternatively, if this is a non-fatal warning, we could land the roll as-is and see what happens. (I'm not sure why it's non-fatal given we pass -Werror, but maybe ld64 doesn't fully honor -Werror or something.)
Testing now, I think we also need AArch64.
Status: Started (was: Assigned)
Project Member

Comment 6 by bugdroid1@chromium.org, Jul 24 2017

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

commit be5e4a49be6750de585fde529e80afe46aa9fdd7
Author: Justin Cohen <justincohen@google.com>
Date: Mon Jul 24 13:11:40 2017

Also build arm64 in clang bootstrap.

Ensure libclang_rt.ios.a includes arm64.

Bug:  742498 ,  747726 
Change-Id: Id0dd67c5ad3ebc09cbf597a6ef494295d479df88
Reviewed-on: https://chromium-review.googlesource.com/582548
Commit-Queue: Justin Cohen <justincohen@chromium.org>
Reviewed-by: Nico Weber <thakis@chromium.org>
Cr-Commit-Position: refs/heads/master@{#488957}
[modify] https://crrev.com/be5e4a49be6750de585fde529e80afe46aa9fdd7/tools/clang/scripts/update.py

Status: Fixed (was: Started)
Project Member

Comment 8 by bugdroid1@chromium.org, Jul 25 2017

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

commit d1b349921b612c35fa6c8d67443bd8155b790b5b
Author: Nico Weber <thakis@chromium.org>
Date: Tue Jul 25 00:58:59 2017

clang: Rebuild binaries.

Two changes:

1.) Stop bundling libstdc++.so.

This was needed when the bots were still on trusty. Now that they're all
on precise, the system libstdc++ is new enough to run clang.

The motivation is that clang currently transitively depends on system
libicuuc, which depends on a newer libstdc++ than the one we bundle.
So currently, clang fails to start on Ubuntu 16+.

2.) Built libclang_rt.ios.a with arm64 code too.

TBR=hans

Bug:  723919 , 747726 
Change-Id: Ie123a2f6c80d539e4a246c5c0073d8560a66b5ba
Reviewed-on: https://chromium-review.googlesource.com/582976
Commit-Queue: Nico Weber <thakis@chromium.org>
Reviewed-by: Nico Weber <thakis@chromium.org>
Cr-Commit-Position: refs/heads/master@{#489167}
[modify] https://crrev.com/d1b349921b612c35fa6c8d67443bd8155b790b5b/base/BUILD.gn
[modify] https://crrev.com/d1b349921b612c35fa6c8d67443bd8155b790b5b/build/config/sanitizers/BUILD.gn
[modify] https://crrev.com/d1b349921b612c35fa6c8d67443bd8155b790b5b/tools/clang/scripts/package.py
[modify] https://crrev.com/d1b349921b612c35fa6c8d67443bd8155b790b5b/tools/clang/scripts/update.py

Comment 9 by thakis@chromium.org, Jul 25 2017

The warning should now be gone; can you verify?
Gone:

ninja -C out/Release-iphoneos/ chrome 
ninja: Entering directory `out/Release-iphoneos/'
[1/1] Regenerating ninja files
[14252/14252] STAMP obj/ios/chrome/app/chrome.stamp

Sign in to add a comment