aboutsummaryrefslogtreecommitdiff
path: root/lib/Driver/ToolChains.cpp
diff options
context:
space:
mode:
authorDaniel Dunbar <daniel@zuster.org>2009-09-04 18:35:21 +0000
committerDaniel Dunbar <daniel@zuster.org>2009-09-04 18:35:21 +0000
commit30392de4681602f1aabc61b0184b1de53bc172f0 (patch)
treeb620693d8aaff3b7a1d81b580d8f9411e6e25633 /lib/Driver/ToolChains.cpp
parentad8958cb22f860a148e22d8f78511caf763482cf (diff)
Darwin: Pass -iphoneos-version-min to ld when building for ARM.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@81019 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Driver/ToolChains.cpp')
-rw-r--r--lib/Driver/ToolChains.cpp31
1 files changed, 21 insertions, 10 deletions
diff --git a/lib/Driver/ToolChains.cpp b/lib/Driver/ToolChains.cpp
index 63b629f9ec..d6067afc3d 100644
--- a/lib/Driver/ToolChains.cpp
+++ b/lib/Driver/ToolChains.cpp
@@ -29,7 +29,8 @@ using namespace clang::driver::toolchains;
Darwin::Darwin(const HostInfo &Host, const llvm::Triple& Triple,
const unsigned (&_DarwinVersion)[3],
- const unsigned (&_GCCVersion)[3])
+ const unsigned (&_GCCVersion)[3],
+ bool _IsIPhone)
: ToolChain(Host, Triple) {
DarwinVersion[0] = _DarwinVersion[0];
DarwinVersion[1] = _DarwinVersion[1];
@@ -37,10 +38,14 @@ Darwin::Darwin(const HostInfo &Host, const llvm::Triple& Triple,
GCCVersion[0] = _GCCVersion[0];
GCCVersion[1] = _GCCVersion[1];
GCCVersion[2] = _GCCVersion[2];
+ IsIPhone = _IsIPhone;
llvm::raw_string_ostream(MacosxVersionMin)
<< "10." << DarwinVersion[0] - 4 << '.' << DarwinVersion[1];
+ // FIXME: Lift default up.
+ IPhoneOSVersionMin = "3.0";
+
ToolChainDir = "i686-apple-darwin";
ToolChainDir += llvm::utostr(DarwinVersion[0]);
ToolChainDir += "/";
@@ -150,15 +155,21 @@ DerivedArgList *Darwin::TranslateArgs(InputArgList &Args) const {
} else if (!OSXVersion && !iPhoneVersion) {
// Chose the default version based on the arch.
//
- // FIXME: This will need to be fixed when we merge in arm support.
-
- // Look for MACOSX_DEPLOYMENT_TARGET, otherwise use the version
- // from the host.
- const char *Version = ::getenv("MACOSX_DEPLOYMENT_TARGET");
- if (!Version)
- Version = MacosxVersionMin.c_str();
- const Option *O = Opts.getOption(options::OPT_mmacosx_version_min_EQ);
- DAL->append(DAL->MakeJoinedArg(0, O, Version));
+ // FIXME: Are there iPhone overrides for this?
+
+ if (!isIPhone()) {
+ // Look for MACOSX_DEPLOYMENT_TARGET, otherwise use the version
+ // from the host.
+ const char *Version = ::getenv("MACOSX_DEPLOYMENT_TARGET");
+ if (!Version)
+ Version = MacosxVersionMin.c_str();
+ const Option *O = Opts.getOption(options::OPT_mmacosx_version_min_EQ);
+ DAL->append(DAL->MakeJoinedArg(0, O, Version));
+ } else {
+ const char *Version = IPhoneOSVersionMin.c_str();
+ const Option *O = Opts.getOption(options::OPT_miphoneos_version_min_EQ);
+ DAL->append(DAL->MakeJoinedArg(0, O, Version));
+ }
}
for (ArgList::iterator it = Args.begin(), ie = Args.end(); it != ie; ++it) {