diff options
author | jperkin <jperkin@pkgsrc.org> | 2019-01-23 15:44:34 +0000 |
---|---|---|
committer | jperkin <jperkin@pkgsrc.org> | 2019-01-23 15:44:34 +0000 |
commit | 6b6a918928bbdb4223b5a000f14cba6dbfefabdc (patch) | |
tree | 6978d1727fc2bec7662e8a41fa0ee562ccd6ef36 /lang/clang | |
parent | 564c40be44ed1dee689d43edad4d543d0e86eec7 (diff) | |
download | pkgsrc-6b6a918928bbdb4223b5a000f14cba6dbfefabdc.tar.gz |
clang: Fix SunOS include paths. Bump PKGREVISION.
Diffstat (limited to 'lang/clang')
-rw-r--r-- | lang/clang/Makefile | 3 | ||||
-rw-r--r-- | lang/clang/distinfo | 6 | ||||
-rw-r--r-- | lang/clang/patches/patch-lib_Driver_ToolChains_Solaris.cpp | 83 | ||||
-rw-r--r-- | lang/clang/patches/patch-lib_Driver_ToolChains_Solaris.h | 12 |
4 files changed, 90 insertions, 14 deletions
diff --git a/lang/clang/Makefile b/lang/clang/Makefile index c51df51876e..8a4e96e3373 100644 --- a/lang/clang/Makefile +++ b/lang/clang/Makefile @@ -1,6 +1,7 @@ -# $NetBSD: Makefile,v 1.46 2018/12/09 20:04:38 adam Exp $ +# $NetBSD: Makefile,v 1.47 2019/01/23 15:44:34 jperkin Exp $ PKGNAME= ${DISTNAME:S/.src//:S/cfe/clang/} +PKGREVISION= 1 PYTHON_FOR_BUILD_ONLY= yes CMAKE_ARGS+= -DCLANG_ENABLE_STATIC_ANALYZER=OFF diff --git a/lang/clang/distinfo b/lang/clang/distinfo index 103e45361cd..b26d7241c90 100644 --- a/lang/clang/distinfo +++ b/lang/clang/distinfo @@ -1,10 +1,10 @@ -$NetBSD: distinfo,v 1.56 2018/12/23 00:11:39 adam Exp $ +$NetBSD: distinfo,v 1.57 2019/01/23 15:44:34 jperkin Exp $ SHA1 (cfe-7.0.1.src.tar.xz) = 427e12762836d808583fb4149c033d02de0a8db2 RMD160 (cfe-7.0.1.src.tar.xz) = 914adafed7c97e5ebab15a437670906c404cb8bd SHA512 (cfe-7.0.1.src.tar.xz) = df2f38153ebdc261bcfa6a569567f759bbb1a803192882a9d4eca55a47878166ac9057151a94ad341dc1281136547e4faa783a68070dfde2307b48cacd4b9194 Size (cfe-7.0.1.src.tar.xz) = 12488668 bytes SHA1 (patch-lib_Basic_Targets_OSTargets.h) = 2a00f6de42c67d8c8aca0153339aba1adc455280 -SHA1 (patch-lib_Driver_ToolChains_Solaris.cpp) = 17b6b748135fb051101e926f86910fd3bb55f312 -SHA1 (patch-lib_Driver_ToolChains_Solaris.h) = 07dacb5c341360bdce229f512bdfa95e5d6ef81c +SHA1 (patch-lib_Driver_ToolChains_Solaris.cpp) = 7e951a4c82f47ec0c9c18054d9622984ffb9f751 +SHA1 (patch-lib_Driver_ToolChains_Solaris.h) = 94968d0de0972ff832727822fbdc02442be74ab8 SHA1 (patch-lib_Frontend_InitHeaderSearch.cpp) = 497ddbe1eac8726d736bed58557a795dce207d1a diff --git a/lang/clang/patches/patch-lib_Driver_ToolChains_Solaris.cpp b/lang/clang/patches/patch-lib_Driver_ToolChains_Solaris.cpp index 83feb6155d3..b7b54acbe3d 100644 --- a/lang/clang/patches/patch-lib_Driver_ToolChains_Solaris.cpp +++ b/lang/clang/patches/patch-lib_Driver_ToolChains_Solaris.cpp @@ -1,4 +1,4 @@ -$NetBSD: patch-lib_Driver_ToolChains_Solaris.cpp,v 1.2 2018/12/09 20:04:38 adam Exp $ +$NetBSD: patch-lib_Driver_ToolChains_Solaris.cpp,v 1.3 2019/01/23 15:44:34 jperkin Exp $ Use compiler-rt instead of libgcc. Pull in libcxx correctly. @@ -53,7 +53,7 @@ Test removing -Bdynamic for golang. } // libpthread has been folded into libc since Solaris 10, no need to do -@@ -88,13 +104,11 @@ void solaris::Linker::ConstructJob(Compi +@@ -88,21 +104,21 @@ void solaris::Linker::ConstructJob(Compi if (!Args.hasArg(options::OPT_nostdlib, options::OPT_nostartfiles)) { if (!Args.hasArg(options::OPT_shared)) CmdArgs.push_back( @@ -61,16 +61,26 @@ Test removing -Bdynamic for golang. + Args.MakeArgString(SysPath + "crt1.o")); - CmdArgs.push_back(Args.MakeArgString(getToolChain().GetFilePath("crti.o"))); -- CmdArgs.push_back( -- Args.MakeArgString(getToolChain().GetFilePath("values-Xa.o"))); + CmdArgs.push_back(Args.MakeArgString(SysPath + "crti.o")); CmdArgs.push_back( +- Args.MakeArgString(getToolChain().GetFilePath("values-Xa.o"))); +- CmdArgs.push_back( - Args.MakeArgString(getToolChain().GetFilePath("crtbegin.o"))); + Args.MakeArgString(SysPath + "values-Xa.o")); } // Provide __start___sancov_guards. Solaris ld doesn't automatically create -@@ -113,21 +127,18 @@ void solaris::Linker::ConstructJob(Compi + // __start_SECNAME labels. ++#if 0 + CmdArgs.push_back("--whole-archive"); + CmdArgs.push_back( + getToolChain().getCompilerRTArgString(Args, "sancov_begin", false)); + CmdArgs.push_back("--no-whole-archive"); ++#endif + + getToolChain().AddFilePathLibArgs(Args, CmdArgs); + +@@ -113,37 +129,32 @@ void solaris::Linker::ConstructJob(Compi AddLinkerInputs(getToolChain(), Inputs, Args, CmdArgs, JA); if (!Args.hasArg(options::OPT_nostdlib, options::OPT_nodefaultlibs)) { @@ -102,9 +112,15 @@ Test removing -Bdynamic for golang. if (NeedsSanitizerDeps) linkSanitizerRuntimeDeps(getToolChain(), CmdArgs); } -@@ -139,11 +150,7 @@ void solaris::Linker::ConstructJob(Compi + + // Provide __stop___sancov_guards. Solaris ld doesn't automatically create + // __stop_SECNAME labels. ++#if 0 + CmdArgs.push_back("--whole-archive"); + CmdArgs.push_back( getToolChain().getCompilerRTArgString(Args, "sancov_end", false)); CmdArgs.push_back("--no-whole-archive"); ++#endif - if (!Args.hasArg(options::OPT_nostdlib, options::OPT_nostartfiles)) { - CmdArgs.push_back( @@ -115,7 +131,7 @@ Test removing -Bdynamic for golang. getToolChain().addProfileRTLibs(Args, CmdArgs); -@@ -172,26 +179,9 @@ Solaris::Solaris(const Driver &D, const +@@ -172,26 +183,9 @@ Solaris::Solaris(const Driver &D, const const ArgList &Args) : Generic_ELF(D, Triple, Args) { @@ -145,7 +161,7 @@ Test removing -Bdynamic for golang. } SanitizerMask Solaris::getSupportedSanitizers() const { -@@ -211,6 +201,32 @@ Tool *Solaris::buildAssembler() const { +@@ -211,6 +205,32 @@ Tool *Solaris::buildAssembler() const { Tool *Solaris::buildLinker() const { return new tools::solaris::Linker(*this); } @@ -178,3 +194,54 @@ Test removing -Bdynamic for golang. void Solaris::AddClangSystemIncludeArgs(const ArgList &DriverArgs, ArgStringList &CC1Args) const { const Driver &D = getDriver(); +@@ -243,40 +263,20 @@ void Solaris::AddClangSystemIncludeArgs( + return; + } + +- // Add include directories specific to the selected multilib set and multilib. +- if (GCCInstallation.isValid()) { +- const MultilibSet::IncludeDirsFunc &Callback = +- Multilibs.includeDirsCallback(); +- if (Callback) { +- for (const auto &Path : Callback(GCCInstallation.getMultilib())) +- addExternCSystemIncludeIfExists( +- DriverArgs, CC1Args, GCCInstallation.getInstallPath() + Path); +- } +- } +- + addExternCSystemInclude(DriverArgs, CC1Args, D.SysRoot + "/usr/include"); + } + +-void Solaris::addLibStdCxxIncludePaths( ++void Solaris::addLibCxxIncludePaths( + const llvm::opt::ArgList &DriverArgs, + llvm::opt::ArgStringList &CC1Args) const { +- // We need a detected GCC installation on Solaris (similar to Linux) +- // to provide libstdc++'s headers. +- if (!GCCInstallation.isValid()) +- return; ++ addSystemInclude(DriverArgs, CC1Args, ++ llvm::sys::path::parent_path(getDriver().getInstalledDir()) ++ + "/include/c++/v1"); ++} + +- // By default, look for the C++ headers in an include directory adjacent to +- // the lib directory of the GCC installation. +- // On Solaris this usually looks like /usr/gcc/X.Y/include/c++/X.Y.Z +- StringRef LibDir = GCCInstallation.getParentLibPath(); +- StringRef TripleStr = GCCInstallation.getTriple().str(); +- const Multilib &Multilib = GCCInstallation.getMultilib(); +- const GCCVersion &Version = GCCInstallation.getVersion(); +- +- // The primary search for libstdc++ supports multiarch variants. +- addLibStdCXXIncludePaths(LibDir.str() + "/../include", "/c++/" + Version.Text, +- TripleStr, +- /*GCCMultiarchTriple*/ "", +- /*TargetMultiarchTriple*/ "", +- Multilib.includeSuffix(), DriverArgs, CC1Args); ++void Solaris::addLibStdCxxIncludePaths( ++ const llvm::opt::ArgList &DriverArgs, ++ llvm::opt::ArgStringList &CC1Args) const { ++ // Location of GCC includes is not reliable so do not support it. ++ return; + } diff --git a/lang/clang/patches/patch-lib_Driver_ToolChains_Solaris.h b/lang/clang/patches/patch-lib_Driver_ToolChains_Solaris.h index 7919ed4d68f..afc14ac54c9 100644 --- a/lang/clang/patches/patch-lib_Driver_ToolChains_Solaris.h +++ b/lang/clang/patches/patch-lib_Driver_ToolChains_Solaris.h @@ -1,10 +1,18 @@ -$NetBSD: patch-lib_Driver_ToolChains_Solaris.h,v 1.2 2018/12/09 20:04:38 adam Exp $ +$NetBSD: patch-lib_Driver_ToolChains_Solaris.h,v 1.3 2019/01/23 15:44:34 jperkin Exp $ Override AddCXXStdlibLibArgs(). --- lib/Driver/ToolChains/Solaris.h.orig 2018-02-05 23:59:13.000000000 +0000 +++ lib/Driver/ToolChains/Solaris.h -@@ -67,6 +67,9 @@ public: +@@ -62,11 +62,17 @@ public: + llvm::opt::ArgStringList &CC1Args) const override; + + void ++ addLibCxxIncludePaths(const llvm::opt::ArgList &DriverArgs, ++ llvm::opt::ArgStringList &CC1Args) const override; ++ void + addLibStdCxxIncludePaths(const llvm::opt::ArgList &DriverArgs, + llvm::opt::ArgStringList &CC1Args) const override; SanitizerMask getSupportedSanitizers() const override; unsigned GetDefaultDwarfVersion() const override { return 2; } |