Make Triple::getOSVersion make sense for Android.
authorDan Albert <danalbert@google.com>
Tue, 3 Mar 2015 18:23:51 +0000 (18:23 +0000)
committerDan Albert <danalbert@google.com>
Tue, 3 Mar 2015 18:23:51 +0000 (18:23 +0000)
Reviewers: srhines

Reviewed By: srhines

Subscribers: llvm-commits

Differential Revision: http://reviews.llvm.org/D7928

llvm-svn: 231090

llvm/lib/Support/Triple.cpp

index e74b23c..33472e5 100644 (file)
@@ -714,6 +714,14 @@ void Triple::getOSVersion(unsigned &Major, unsigned &Minor,
                           unsigned &Micro) const {
   StringRef OSName = getOSName();
 
+  // For Android, we care about the Android version rather than the Linux
+  // version.
+  if (getEnvironment() == Android) {
+    OSName = getEnvironmentName().substr(strlen("android"));
+    if (OSName.startswith("eabi"))
+      OSName = OSName.substr(strlen("eabi"));
+  }
+
   // Assume that the OS portion of the triple starts with the canonical name.
   StringRef OSTypeName = getOSTypeName(getOS());
   if (OSName.startswith(OSTypeName))