Linking content_shell_helper_app fails on macOS 10.12 |
||||||
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
,
Sep 23 2016
This morning's emergency is over, so I'll give this a look.
,
Sep 23 2016
Sigh, works for me locally.
,
Sep 23 2016
Aha, repros in a component build
,
Sep 23 2016
out/gn/libsystem.dylib <- I guess this guy masks the real libSystem? ಠ_ಠ
,
Sep 23 2016
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
,
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
,
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
,
Sep 23 2016
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.
,
Sep 23 2016
I have a fix, going out soon.
,
Sep 23 2016
,
Sep 23 2016
,
Sep 23 2016
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?
,
Sep 23 2016
It is, that's how I noticed (https://build.chromium.org/p/chromium.fyi/builders/ClangToTMac -- fyi only, but hey)
,
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
,
Sep 26 2016
|
||||||
►
Sign in to add a comment |
||||||
Comment 1 by thakis@chromium.org
, Sep 23 2016Status: Untriaged (was: Assigned)