mgorny created this revision.
mgorny added reviewers: rafael, theraven, ismail.
mgorny added a subscriber: cfe-commits.

Assume OpenSUSE distribution only when /etc/SuSE-release indicates OpenSUSE, 
rather than for any SUSE distribution. This reverts the behavior change from 
rL185537 which -- along with removing the version check -- also implicitly 
removed the check for OpenSUSE string. This fixes passing unsupported linker 
flags for old binutils on SLES10.


https://reviews.llvm.org/D24954

Files:
  lib/Driver/ToolChains.cpp

Index: lib/Driver/ToolChains.cpp
===================================================================
--- lib/Driver/ToolChains.cpp
+++ lib/Driver/ToolChains.cpp
@@ -3912,8 +3912,11 @@
     return UnknownDistro;
   }
 
-  if (D.getVFS().exists("/etc/SuSE-release"))
-    return OpenSUSE;
+  File = llvm::MemoryBuffer::getFile("/etc/SuSE-release");
+  if (File)
+    return llvm::StringSwitch<Distro>(File.get()->getBuffer())
+      .StartsWith("openSUSE", OpenSUSE)
+      .Default(UnknownDistro);
 
   if (D.getVFS().exists("/etc/exherbo-release"))
     return Exherbo;


Index: lib/Driver/ToolChains.cpp
===================================================================
--- lib/Driver/ToolChains.cpp
+++ lib/Driver/ToolChains.cpp
@@ -3912,8 +3912,11 @@
     return UnknownDistro;
   }
 
-  if (D.getVFS().exists("/etc/SuSE-release"))
-    return OpenSUSE;
+  File = llvm::MemoryBuffer::getFile("/etc/SuSE-release");
+  if (File)
+    return llvm::StringSwitch<Distro>(File.get()->getBuffer())
+      .StartsWith("openSUSE", OpenSUSE)
+      .Default(UnknownDistro);
 
   if (D.getVFS().exists("/etc/exherbo-release"))
     return Exherbo;
_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to