]> granicus.if.org Git - clang/commitdiff
[driver] Use the iOS target triple to infer the deployment target.
authorChad Rosier <mcrosier@apple.com>
Wed, 9 May 2012 18:09:58 +0000 (18:09 +0000)
committerChad Rosier <mcrosier@apple.com>
Wed, 9 May 2012 18:09:58 +0000 (18:09 +0000)
rdar://11409204

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@156489 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Driver/ToolChains.cpp
test/Driver/target-triple-deployment.c [new file with mode: 0644]

index cc1adb1ea8317d2b706358e322f8441d621c9c6f..86fef4fe6937cb479abbdabdb538999fd3ce0f44 100644 (file)
@@ -524,8 +524,14 @@ void Darwin::AddDeploymentTarget(DerivedArgList &Args) const {
     // If no OSX or iOS target has been specified and we're compiling for armv7,
     // go ahead as assume we're targeting iOS.
     if (OSXTarget.empty() && iOSTarget.empty())
-      if (getDarwinArchName(Args) == "armv7")
-        iOSTarget = "0.0";
+      if (getDarwinArchName(Args) == "armv7") {
+        std::string iOSVersionMin;
+        unsigned Major, Minor, Micro;
+        getTriple().getiOSVersion(Major, Minor, Micro);
+        llvm::raw_string_ostream(iOSVersionMin)
+          << Major << '.' << Minor << '.' << Micro;
+        iOSTarget = iOSVersionMin;
+      }
 
     // Handle conflicting deployment targets
     //
diff --git a/test/Driver/target-triple-deployment.c b/test/Driver/target-triple-deployment.c
new file mode 100644 (file)
index 0000000..56e512c
--- /dev/null
@@ -0,0 +1,33 @@
+// RUN: touch %t.o
+// RUN: %clang -target x86_64-apple-macosx -### %t.o 2> %t.log
+// RUN: %clang -target x86_64-apple-darwin9 -### %t.o 2>> %t.log
+// RUN: %clang -target x86_64-apple-macosx10.7 -### %t.o 2>> %t.log
+//
+// RUN: %clang -target armv7-apple-ios -### %t.o 2>> %t.log
+// RUN: %clang -target armv7-apple-ios0.0 -### %t.o 2>> %t.log
+// RUN: %clang -target armv7-apple-ios1.2.3 -### %t.o 2>> %t.log
+// RUN: %clang -target armv7-apple-ios5.0 -### %t.o 2>> %t.log
+//
+// RUN: FileCheck %s < %t.log
+
+// CHECK: {{ld(.exe)?"}}
+// CHECK: -macosx_version_min
+// CHECK: 10.4.0
+// CHECK: {{ld(.exe)?"}}
+// CHECK: -macosx_version_min
+// CHECK: 10.5.0
+// CHECK: {{ld(.exe)?"}}
+// CHECK: -macosx_version_min
+// CHECK: 10.7.0
+// CHECK: {{ld(.exe)?"}}
+// CHECK: -iphoneos_version_min
+// CHECK: 0.0.0
+// CHECK: {{ld(.exe)?"}}
+// CHECK: -iphoneos_version_min
+// CHECK: 0.0.0
+// CHECK: {{ld(.exe)?"}}
+// CHECK: -iphoneos_version_min
+// CHECK: 1.2.3
+// CHECK: {{ld(.exe)?"}}
+// CHECK: -iphoneos_version_min
+// CHECK: 5.0.0