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