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

Issue 649696 link

Starred by 3 users

Issue metadata

Status: Verified
Owner:
Closed: Sep 2016
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Mac
Pri: 1
Type: Bug



Sign in to add a comment

Linking content_shell_helper_app fails on macOS 10.12

Project Member Reported by sdy@chromium.org, Sep 23 2016

Issue description

…with this error:

[?/?] LINK obj/content/shell/content_shell_helper_app_executable/Content Shell Helper
FAILED: obj/content/shell/content_shell_helper_app_executable/Content Shell Helper
[snip] ../../third_party/llvm-build/Release+Asserts/bin/clang++  -rpath @executable_path/../../../.. -stdlib=libc++ -arch x86_64 -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.12.sdk -mmacosx-version-min=10.7 -Wl,-ObjC -Wl,-rpath,@loader_path/. -Wl,-rpath,@loader_path/../../.. -Wl,-pie -F . -L. -o "obj/content/shell/content_shell_helper_app_executable/Content Shell Helper" -Wl,-filelist,"obj/content/shell/content_shell_helper_app_executable/Content Shell Helper.rsp"  -framework Cocoa -framework Foundation -framework IOKit -framework Security -framework SystemConfiguration -framework Content\ Shell\ Framework
Undefined symbols for architecture x86_64:
  "_exit", referenced from:
      start in crt1.10.6.o
ld: symbol(s) not found for architecture x86_64
 

Comment 1 by thakis@chromium.org, Sep 23 2016

Owner: ----
Status: Untriaged (was: Assigned)

Comment 2 by thakis@chromium.org, Sep 23 2016

Owner: thakis@chromium.org
This morning's emergency is over, so I'll give this a look.

Comment 3 by thakis@chromium.org, Sep 23 2016

Sigh, works for me locally.

Comment 4 by thakis@chromium.org, Sep 23 2016

Aha, repros in a component build

Comment 5 by thakis@chromium.org, Sep 23 2016

out/gn/libsystem.dylib <- I guess this guy masks the real libSystem? ಠ_ಠ 

Comment 6 by thakis@chromium.org, Sep 23 2016

Cc: roc...@chromium.org
We have a bunch of "system" components, most of them mojo: https://cs.chromium.org/search/?q=%5C%22system%5C%22+file:%5C.gn&sq=package:chromium&type=cs

Comment 7 by thakis@chromium.org, Sep 23 2016

...but https://chromium.googlesource.com/chromium/src/+blame/master/mojo/public/cpp/system/BUILD.gn is the only one not setting output_name i guess

Comment 8 by thakis@chromium.org, Sep 23 2016

This and manually deleting out/gn/libsystem.dylib makes things go:

 git diff
diff --git a/mojo/public/cpp/system/BUILD.gn b/mojo/public/cpp/system/BUILD.gn
index 7830d25..c7e6d82 100644
--- a/mojo/public/cpp/system/BUILD.gn
+++ b/mojo/public/cpp/system/BUILD.gn
@@ -3,6 +3,8 @@
 # found in the LICENSE file.
 
 component("system") {
+  output_name = "mojo_public_system_cpp"
+
   sources = [
     "buffer.cc",
     "buffer.h",


I guess this should have an action deleting the output for a while to heal bots

Comment 9 by roc...@chromium.org, Sep 23 2016

Cc: dcheng@chromium.org
Ugh, yeah, I ran into this issue before when trying to call another component "system". Didn't think about it coming up again with dcheng's CL.
I have a fix, going out soon.
Status: Started (was: Untriaged)
Sigh...

I tested on Linux and Windows (and found some Windows component build breakage in the process), and figured that things would probably work on Mac if they worked on Linux. I guess there's no chance of this being covered by a waterfall builder somewhere?
It is, that's how I noticed (https://build.chromium.org/p/chromium.fyi/builders/ClangToTMac -- fyi only, but hey)
Project Member

Comment 15 by bugdroid1@chromium.org, Sep 23 2016

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

commit 0dfb6ba0b31eae8c8d2aab54ece37bb9ae29e9ea
Author: thakis <thakis@chromium.org>
Date: Fri Sep 23 22:42:32 2016

Unbreak mac component build.

Components named "system" shadow /usr/lib/libSystem.dylib on OS X.
Give the component a different output name, and also add an action for
a while that cleans up libsystem.dylib from existing build dirs.

BUG= 649696 

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

[add] https://crrev.com/0dfb6ba0b31eae8c8d2aab54ece37bb9ae29e9ea/build/rm.py
[modify] https://crrev.com/0dfb6ba0b31eae8c8d2aab54ece37bb9ae29e9ea/mojo/public/cpp/system/BUILD.gn

Comment 16 by sdy@chromium.org, Sep 26 2016

Status: Verified (was: Started)

Sign in to add a comment