]> granicus.if.org Git - clang/commitdiff
Driver/Darwin: Eliminate confusing IsIPhoneOS parameter -- this was actually
authorDaniel Dunbar <daniel@zuster.org>
Wed, 27 Jan 2010 00:56:44 +0000 (00:56 +0000)
committerDaniel Dunbar <daniel@zuster.org>
Wed, 27 Jan 2010 00:56:44 +0000 (00:56 +0000)
just indicating whether the default target should be iPhoneOS.

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

lib/Driver/HostInfo.cpp
lib/Driver/ToolChains.cpp
lib/Driver/ToolChains.h

index 01fd32d1db20df24a9f5d125682456a6bd2557ae..18bb78659305e71181ff867bc1b44a1cf069fee7 100644 (file)
@@ -146,10 +146,10 @@ ToolChain *DarwinHostInfo::CreateToolChain(const ArgList &Args,
     // If we recognized the arch, match it to the toolchains we support.
     if (Arch == llvm::Triple::x86 || Arch == llvm::Triple::x86_64) {
       // We still use the legacy DarwinGCC toolchain on X86.
-      TC = new toolchains::DarwinGCC(*this, TCTriple, DarwinVersion, GCCVersion,
-                                     false);
+      TC = new toolchains::DarwinGCC(*this, TCTriple, DarwinVersion,
+                                     GCCVersion);
     } else if (Arch == llvm::Triple::arm || Arch == llvm::Triple::thumb)
-      TC = new toolchains::DarwinClang(*this, TCTriple, DarwinVersion, true);
+      TC = new toolchains::DarwinClang(*this, TCTriple, DarwinVersion);
     else
       TC = new toolchains::Darwin_Generic_GCC(*this, TCTriple);
   }
index a48a91c569a0a19e971e4b883d898badfd4962f0..f07ce34f5112d77e8e37010393aa9de279123150 100644 (file)
@@ -31,8 +31,8 @@ using namespace clang::driver::toolchains;
 /// Darwin - Darwin tool chain for i386 and x86_64.
 
 Darwin::Darwin(const HostInfo &Host, const llvm::Triple& Triple,
-               const unsigned (&_DarwinVersion)[3], bool _IsIPhoneOS)
-  : ToolChain(Host, Triple), TargetInitialized(false), IsIPhoneOS(_IsIPhoneOS)
+               const unsigned (&_DarwinVersion)[3])
+  : ToolChain(Host, Triple), TargetInitialized(false)
 {
   DarwinVersion[0] = _DarwinVersion[0];
   DarwinVersion[1] = _DarwinVersion[1];
@@ -41,9 +41,6 @@ Darwin::Darwin(const HostInfo &Host, const llvm::Triple& Triple,
   llvm::raw_string_ostream(MacosxVersionMin)
     << "10." << std::max(0, (int)DarwinVersion[0] - 4) << '.'
     << DarwinVersion[1];
-
-  // FIXME: Lift default up.
-  IPhoneOSVersionMin = "3.0";
 }
 
 // FIXME: Can we tablegen this?
@@ -111,8 +108,8 @@ llvm::StringRef Darwin::getDarwinArchName(const ArgList &Args) const {
 
 DarwinGCC::DarwinGCC(const HostInfo &Host, const llvm::Triple& Triple,
                      const unsigned (&DarwinVersion)[3],
-                     const unsigned (&_GCCVersion)[3], bool IsIPhoneOS)
-  : Darwin(Host, Triple, DarwinVersion, IsIPhoneOS)
+                     const unsigned (&_GCCVersion)[3])
+  : Darwin(Host, Triple, DarwinVersion)
 {
   GCCVersion[0] = _GCCVersion[0];
   GCCVersion[1] = _GCCVersion[1];
@@ -289,9 +286,8 @@ void DarwinGCC::AddLinkRuntimeLibArgs(const ArgList &Args,
 }
 
 DarwinClang::DarwinClang(const HostInfo &Host, const llvm::Triple& Triple,
-                         const unsigned (&DarwinVersion)[3],
-                         bool IsIPhoneOS)
-  : Darwin(Host, Triple, DarwinVersion, IsIPhoneOS)
+                         const unsigned (&DarwinVersion)[3])
+  : Darwin(Host, Triple, DarwinVersion)
 {
   // We expect 'as', 'ld', etc. to be adjacent to our install dir.
   getProgramPaths().push_back(getDriver().Dir);
@@ -424,13 +420,13 @@ DerivedArgList *Darwin::TranslateArgs(InputArgList &Args,
       iPhoneVersion = DAL->MakeJoinedArg(0, O, iPhoneOSTarget);
       DAL->append(iPhoneVersion);
     } else {
-      // Otherwise, choose the default version based on the toolchain.
-
-      // FIXME: This is confusing it should be more explicit what the default
-      // target is.
-      if (isIPhoneOS()) {
+      // Otherwise, choose a default platform based on the tool chain.
+      //
+      // FIXME: Don't hardcode default here.
+      if (getTriple().getArch() == llvm::Triple::arm ||
+          getTriple().getArch() == llvm::Triple::thumb) {
         const Option *O = Opts.getOption(options::OPT_miphoneos_version_min_EQ);
-        iPhoneVersion = DAL->MakeJoinedArg(0, O, IPhoneOSVersionMin) ;
+        iPhoneVersion = DAL->MakeJoinedArg(0, O, "3.0");
         DAL->append(iPhoneVersion);
       } else {
         const Option *O = Opts.getOption(options::OPT_mmacosx_version_min_EQ);
index b6cdacac300b4d3f69e4e44b8f32f8aebd295d00..758007f03a72843b0ca3bb09385ce7b1e22acc09 100644 (file)
@@ -63,26 +63,13 @@ class VISIBILITY_HIDDEN Darwin : public ToolChain {
   /// The OS version we are targetting.
   mutable unsigned TargetVersion[3];
 
-  /// Whether this is this an iPhoneOS toolchain.
-  //
-  // FIXME: This should go away, such differences should be completely
-  // determined by the target triple.
-  //
-  // FIXME: It is also broken, we need to distinguish the "default target" from
-  // the actual target. The -m...-version-min strings and deployment targets can
-  // change this.
-  bool IsIPhoneOS;
-
   /// The default macosx-version-min of this tool chain; empty until
   /// initialized.
   std::string MacosxVersionMin;
 
-  /// The default iphoneos-version-min of this tool chain.
-  std::string IPhoneOSVersionMin;
-
 public:
   Darwin(const HostInfo &Host, const llvm::Triple& Triple,
-         const unsigned (&DarwinVersion)[3], bool IsIPhoneOS);
+         const unsigned (&DarwinVersion)[3]);
   ~Darwin();
 
   /// @name Darwin Specific Toolchain API
@@ -167,8 +154,6 @@ public:
   virtual void AddLinkRuntimeLibArgs(const ArgList &Args,
                                      ArgStringList &CmdArgs) const = 0;
 
-  bool isIPhoneOS() const { return IsIPhoneOS; }
-
   /// }
   /// @name ToolChain Implementation
   /// {
@@ -204,7 +189,7 @@ public:
 class VISIBILITY_HIDDEN DarwinClang : public Darwin {
 public:
   DarwinClang(const HostInfo &Host, const llvm::Triple& Triple,
-              const unsigned (&DarwinVersion)[3], bool IsIPhoneOS);
+              const unsigned (&DarwinVersion)[3]);
 
   /// @name Darwin ToolChain Implementation
   /// {
@@ -228,8 +213,8 @@ class VISIBILITY_HIDDEN DarwinGCC : public Darwin {
 
 public:
   DarwinGCC(const HostInfo &Host, const llvm::Triple& Triple,
-            const unsigned (&DarwinVersion)[3], const unsigned (&GCCVersion)[3],
-            bool IsIPhoneOS);
+            const unsigned (&DarwinVersion)[3],
+            const unsigned (&GCCVersion)[3]);
 
   /// @name Darwin ToolChain Implementation
   /// {