[PATCH] D77776: [Driver] Drop support for FreeBSD < 10

Jan Beich via Phabricator via cfe-commits cfe-commits at lists.llvm.org
Wed Apr 8 21:40:20 PDT 2020


jbeich created this revision.
jbeich added reviewers: clang, dim.
Herald added subscribers: cfe-commits, fedor.sergeev, krytarowski, arichardson, emaste.
Herald added a project: clang.

Downstream may naively translate between DSL and LLVM target triple. If OS version is lost in the process then Clang would default to a version that's no longer supported by OS vendor.

Example: https://bugzilla.mozilla.org/show_bug.cgi?id=1628567

  $ cat a.cc
  #include <type_traits>
  
  $ clang++ -c a.cc
  $ clang++ --target=x86_64-unknown-freebsd -c a.cc
  a.cc:1:10: fatal error: 'type_traits' file not found
  #include <type_traits>
           ^~~~~~~~~~~~~


Repository:
  rG LLVM Github Monorepo

https://reviews.llvm.org/D77776

Files:
  clang/lib/CodeGen/TargetInfo.cpp
  clang/lib/Driver/ToolChains/FreeBSD.cpp


Index: clang/lib/Driver/ToolChains/FreeBSD.cpp
===================================================================
--- clang/lib/Driver/ToolChains/FreeBSD.cpp
+++ clang/lib/Driver/ToolChains/FreeBSD.cpp
@@ -172,9 +172,8 @@
       CmdArgs.push_back("/libexec/ld-elf.so.1");
     }
     const llvm::Triple &T = ToolChain.getTriple();
-    if (T.getOSMajorVersion() >= 9) {
-      if (Arch == llvm::Triple::arm || Arch == llvm::Triple::sparc || T.isX86())
-        CmdArgs.push_back("--hash-style=both");
+    if (Arch == llvm::Triple::arm || Arch == llvm::Triple::sparc || T.isX86()) {
+      CmdArgs.push_back("--hash-style=both");
     }
     CmdArgs.push_back("--enable-new-dtags");
   }
@@ -378,9 +377,7 @@
 }
 
 ToolChain::CXXStdlibType FreeBSD::GetDefaultCXXStdlibType() const {
-  if (getTriple().getOSMajorVersion() >= 10)
-    return ToolChain::CST_Libcxx;
-  return ToolChain::CST_Libstdcxx;
+  return ToolChain::CST_Libcxx;
 }
 
 unsigned FreeBSD::GetDefaultDwarfVersion() const {
Index: clang/lib/CodeGen/TargetInfo.cpp
===================================================================
--- clang/lib/CodeGen/TargetInfo.cpp
+++ clang/lib/CodeGen/TargetInfo.cpp
@@ -2224,7 +2224,7 @@
     const llvm::Triple &Triple = getTarget().getTriple();
     if (Triple.isOSDarwin() || Triple.getOS() == llvm::Triple::PS4)
       return false;
-    if (Triple.isOSFreeBSD() && Triple.getOSMajorVersion() >= 10)
+    if (Triple.isOSFreeBSD())
       return false;
     return true;
   }


-------------- next part --------------
A non-text attachment was scrubbed...
Name: D77776.256181.patch
Type: text/x-patch
Size: 1485 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20200409/f4ed4de3/attachment.bin>


More information about the cfe-commits mailing list