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;
   }


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;
   }
_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to