From 72ceb92aa39903feca5de7f7b5b9c46e8b6f43b8 Mon Sep 17 00:00:00 2001 From: Daniel Dunbar Date: Sat, 30 Apr 2011 04:22:58 +0000 Subject: [PATCH] Driver/Darwin: When using -mios-simulator-version-min, explicitly pass this on to the linker. - Only do this explicitly with the argument for now, the linker will need to explicitly add support for this. llvm-svn: 130594 --- clang/lib/Driver/Tools.cpp | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/clang/lib/Driver/Tools.cpp b/clang/lib/Driver/Tools.cpp index b4693010e19d..2c805923c526 100644 --- a/clang/lib/Driver/Tools.cpp +++ b/clang/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])));