diff options
Diffstat (limited to 'lib/Driver/Tools.cpp')
-rw-r--r-- | lib/Driver/Tools.cpp | 16 |
1 files changed, 14 insertions, 2 deletions
diff --git a/lib/Driver/Tools.cpp b/lib/Driver/Tools.cpp index b4693010e1..2c805923c5 100644 --- a/lib/Driver/Tools.cpp +++ b/lib/Driver/Tools.cpp @@ -2820,8 +2820,20 @@ void darwin::Link::AddLinkArgs(Compilation &C, // Add the deployment target. unsigned TargetVersion[3]; DarwinTC.getTargetVersion(TargetVersion); - CmdArgs.push_back(DarwinTC.isTargetIPhoneOS() ? "-iphoneos_version_min" : - "-macosx_version_min"); + + // If we had an explicit -mios-simulator-version-min argument, honor that, + // otherwise use the traditional deployment targets. We can't just check the + // is-sim attribute because existing code follows this path, and the linker + // may not handle the argument. + // + // FIXME: We may be able to remove this, once we can verify no one depends on + // it. + if (Args.hasArg(options::OPT_mios_simulator_version_min_EQ)) + CmdArgs.push_back("-ios_simulator_version_min"); + else if (DarwinTC.isTargetIPhoneOS()) + CmdArgs.push_back("-iphoneos_version_min"); + else + CmdArgs.push_back("-macosx_version_min"); CmdArgs.push_back(Args.MakeArgString(llvm::Twine(TargetVersion[0]) + "." + llvm::Twine(TargetVersion[1]) + "." + llvm::Twine(TargetVersion[2]))); |