summaryrefslogtreecommitdiffstats
path: root/clang/lib/Driver/Tools.cpp
diff options
context:
space:
mode:
authorDaniel Dunbar <daniel@zuster.org>2010-10-18 22:08:36 +0000
committerDaniel Dunbar <daniel@zuster.org>2010-10-18 22:08:36 +0000
commit767bbabb24c76d71e171579b2e65578940e841f3 (patch)
treea62e6d7e38209e26123260634f13a8a8206eb4f4 /clang/lib/Driver/Tools.cpp
parentc769d6e00733dbb261fc4ca835a18948e19db4c5 (diff)
downloadbcm5719-llvm-767bbabb24c76d71e171579b2e65578940e841f3.tar.gz
bcm5719-llvm-767bbabb24c76d71e171579b2e65578940e841f3.zip
Driver/Darwin: Forward -ObjC when linking, which may be needed when using static
libraries with Objective-C code. llvm-svn: 116758
Diffstat (limited to 'clang/lib/Driver/Tools.cpp')
-rw-r--r--clang/lib/Driver/Tools.cpp6
1 files changed, 6 insertions, 0 deletions
diff --git a/clang/lib/Driver/Tools.cpp b/clang/lib/Driver/Tools.cpp
index 8bce56636ad..99e7e3fe0c9 100644
--- a/clang/lib/Driver/Tools.cpp
+++ b/clang/lib/Driver/Tools.cpp
@@ -2504,6 +2504,12 @@ void darwin::Link::ConstructJob(Compilation &C, const JobAction &JA,
Args.AddAllArgs(CmdArgs, options::OPT_m_Separate);
Args.AddAllArgs(CmdArgs, options::OPT_r);
+ // Forward -ObjC when either -ObjC or -ObjC++ is used, to force loading
+ // members of static archive libraries which implement Objective-C classes or
+ // categories.
+ if (Args.hasArg(options::OPT_ObjC) || Args.hasArg(options::OPT_ObjCXX))
+ CmdArgs.push_back("-ObjC");
+
CmdArgs.push_back("-o");
CmdArgs.push_back(Output.getFilename());
OpenPOWER on IntegriCloud