pkgsrc-Changes archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

CVS commit: pkgsrc/lang/clang



Module Name:    pkgsrc
Committed By:   wiz
Date:           Sun Jul  7 14:00:21 UTC 2024

Modified Files:
        pkgsrc/lang/clang: Makefile.common distinfo
        pkgsrc/lang/clang/patches: patch-lib_Driver_ToolChain.cpp
Added Files:
        pkgsrc/lang/clang/patches: patch-lib_Basic_Targets_OSTargets.h
            patch-lib_Driver_ToolChains_Gnu.cpp

Log Message:
clang: try merging Solaris patches


To generate a diff of this commit:
cvs rdiff -u -r1.60 -r1.61 pkgsrc/lang/clang/Makefile.common
cvs rdiff -u -r1.86 -r1.87 pkgsrc/lang/clang/distinfo
cvs rdiff -u -r0 -r1.10 \
    pkgsrc/lang/clang/patches/patch-lib_Basic_Targets_OSTargets.h
cvs rdiff -u -r1.4 -r1.5 \
    pkgsrc/lang/clang/patches/patch-lib_Driver_ToolChain.cpp
cvs rdiff -u -r0 -r1.4 \
    pkgsrc/lang/clang/patches/patch-lib_Driver_ToolChains_Gnu.cpp

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: pkgsrc/lang/clang/Makefile.common
diff -u pkgsrc/lang/clang/Makefile.common:1.60 pkgsrc/lang/clang/Makefile.common:1.61
--- pkgsrc/lang/clang/Makefile.common:1.60      Sun Jul  7 07:36:08 2024
+++ pkgsrc/lang/clang/Makefile.common   Sun Jul  7 14:00:21 2024
@@ -1,4 +1,4 @@
-# $NetBSD: Makefile.common,v 1.60 2024/07/07 07:36:08 jperkin Exp $
+# $NetBSD: Makefile.common,v 1.61 2024/07/07 14:00:21 wiz Exp $
 # used by lang/clang/Makefile
 # used by lang/clang-tools-extra/Makefile
 
@@ -115,6 +115,21 @@ LIBCPP_CHECK=      NO
 CMAKE_ARGS+=                   -DCLANG_DEFAULT_CXX_STDLIB:STRING="libstdc++"
 .endif
 
+# On SunOS use the libraries from the GCC used to build clang rather than
+# aimlessly searching the file system for ones that might be incompatible.
+#
+SUBST_CLASSES.SunOS+=  sunos-gcc
+SUBST_STAGE.sunos-gcc= pre-configure
+SUBST_FILES.sunos-gcc= lib/Driver/ToolChains/Gnu.cpp
+SUBST_SED.sunos-gcc=   -e 's,@GCCBASEDIR@,${CCPATH:H:H},'
+
+# Not perfect, but should catch most common cases.  We can't simply use
+# gcc-libs as that doesn't ship the headers.
+#
+.if ${OPSYS} == "SunOS" && ${PKGSRC_COMPILER:Mgcc}
+BUILDLINK_DEPMETHOD.${_GCC_PKGBASE}=   full
+.endif
+
 # 3.8.0 -> 3.8
 LLVM_MAJOR=    ${PKGVERSION_NOREV:C/^([0-9]+\.[0-9]+)\..*$/\1/}
 PLIST_SUBST+=  LLVM_MAJOR=${LLVM_MAJOR}

Index: pkgsrc/lang/clang/distinfo
diff -u pkgsrc/lang/clang/distinfo:1.86 pkgsrc/lang/clang/distinfo:1.87
--- pkgsrc/lang/clang/distinfo:1.86     Sun Jul  7 07:36:08 2024
+++ pkgsrc/lang/clang/distinfo  Sun Jul  7 14:00:21 2024
@@ -1,4 +1,4 @@
-$NetBSD: distinfo,v 1.86 2024/07/07 07:36:08 jperkin Exp $
+$NetBSD: distinfo,v 1.87 2024/07/07 14:00:21 wiz Exp $
 
 BLAKE2s (clang-18.1.8.src.tar.xz) = 7b596722003d9519baaa1f49320bc7ce80f3da104d96df834ebbc0778cb3cfa7
 SHA512 (clang-18.1.8.src.tar.xz) = 4147ef5e3547e80fbea573a6e3964870b38e7a547e796deb8859ca670b039ddd1af289cd4feadcb4ab5e94211b2ab5e91dfa84f58f114fdcbc9e807c9de901ca
@@ -9,5 +9,7 @@ Size (cmake-18.1.8.src.tar.xz) = 8708 by
 BLAKE2s (runtimes-18.1.8.src.tar.xz) = f9034c238edd0e7809d4a82a0bdb643926ad23566d2447e8f4ce8ad0b068e90e
 SHA512 (runtimes-18.1.8.src.tar.xz) = 6ddf33676a1f4b69111a077e2b4bec951433f9e6d84ba2f1d578be373690e0abd8fccd1104bf34355c8fb9613c002c720b53fa536be4a923dca7e2d7abd1614c
 Size (runtimes-18.1.8.src.tar.xz) = 6788 bytes
-SHA1 (patch-lib_Driver_ToolChain.cpp) = 33a8e346a72893140fde42245e4b108f3a9b9e3e
+SHA1 (patch-lib_Basic_Targets_OSTargets.h) = 0dcfbf3c8b0006e3314c36a75995032891ea8ceb
+SHA1 (patch-lib_Driver_ToolChain.cpp) = 06002fa45d16f9b9385f8a7a947aaf3970007938
+SHA1 (patch-lib_Driver_ToolChains_Gnu.cpp) = c24056b86736a29fc9bef3b20f83dedb4a260535
 SHA1 (patch-lib_Interpreter_IncrementalParser.cpp) = c5ace959ce566478316447b1621e9bfd9a537cc5

Index: pkgsrc/lang/clang/patches/patch-lib_Driver_ToolChain.cpp
diff -u pkgsrc/lang/clang/patches/patch-lib_Driver_ToolChain.cpp:1.4 pkgsrc/lang/clang/patches/patch-lib_Driver_ToolChain.cpp:1.5
--- pkgsrc/lang/clang/patches/patch-lib_Driver_ToolChain.cpp:1.4        Sat Jul  6 15:45:07 2024
+++ pkgsrc/lang/clang/patches/patch-lib_Driver_ToolChain.cpp    Sun Jul  7 14:00:21 2024
@@ -1,11 +1,12 @@
-$NetBSD: patch-lib_Driver_ToolChain.cpp,v 1.4 2024/07/06 15:45:07 adam Exp $
+$NetBSD: patch-lib_Driver_ToolChain.cpp,v 1.5 2024/07/07 14:00:21 wiz Exp $
 
 [LLD] Add NetBSD support as a new flavor of LLD (nb.lld)
 https://reviews.llvm.org/D70048
+Add -R for library paths on SunOS.
 
---- lib/Driver/ToolChain.cpp.orig      2019-07-11 19:06:38.000000000 +0000
+--- lib/Driver/ToolChain.cpp.orig      2023-11-28 08:52:28.000000000 +0000
 +++ lib/Driver/ToolChain.cpp
-@@ -506,6 +506,8 @@ std::string ToolChain::GetLinkerPath() c
+@@ -837,6 +837,8 @@ std::string ToolChain::GetLinkerPath(boo
      llvm::SmallString<8> LinkerName;
      if (Triple.isOSDarwin())
        LinkerName.append("ld64.");
@@ -14,3 +15,19 @@ https://reviews.llvm.org/D70048
      else
        LinkerName.append("ld.");
      LinkerName.append(UseLinker);
+@@ -1213,9 +1215,13 @@ void ToolChain::AddCXXStdlibLibArgs(cons
+ 
+ void ToolChain::AddFilePathLibArgs(const ArgList &Args,
+                                    ArgStringList &CmdArgs) const {
+-  for (const auto &LibPath : getFilePaths())
+-    if(LibPath.length() > 0)
++  for (const auto &LibPath : getFilePaths()) {
++    if(LibPath.length() > 0) {
+       CmdArgs.push_back(Args.MakeArgString(StringRef("-L") + LibPath));
++      if (Triple.isOSSolaris())
++        CmdArgs.push_back(Args.MakeArgString(StringRef("-R") + LibPath));
++    }
++  }
+ }
+ 
+ void ToolChain::AddCCKextLibArgs(const ArgList &Args,

Added files:

Index: pkgsrc/lang/clang/patches/patch-lib_Basic_Targets_OSTargets.h
diff -u /dev/null pkgsrc/lang/clang/patches/patch-lib_Basic_Targets_OSTargets.h:1.10
--- /dev/null   Sun Jul  7 14:00:21 2024
+++ pkgsrc/lang/clang/patches/patch-lib_Basic_Targets_OSTargets.h       Sun Jul  7 14:00:21 2024
@@ -0,0 +1,42 @@
+$NetBSD: patch-lib_Basic_Targets_OSTargets.h,v 1.10 2024/07/07 14:00:21 wiz Exp $
+
+Add __illumos__ if the bootstrap compiler also defines it.
+Sync SunOS default defines with what GCC uses.
+
+--- lib/Basic/Targets/OSTargets.h.orig 2023-11-28 08:52:28.000000000 +0000
++++ lib/Basic/Targets/OSTargets.h
+@@ -639,25 +639,21 @@ protected:
+   void getOSDefines(const LangOptions &Opts, const llvm::Triple &Triple,
+                     MacroBuilder &Builder) const override {
+     DefineStd(Builder, "sun", Opts);
++#if defined(__illumos__)
++    DefineStd(Builder, "__illumos__", Opts);
++#endif
+     DefineStd(Builder, "unix", Opts);
+     Builder.defineMacro("__svr4__");
+     Builder.defineMacro("__SVR4");
+-    // Solaris headers require _XOPEN_SOURCE to be set to 600 for C99 and
+-    // newer, but to 500 for everything else.  feature_test.h has a check to
+-    // ensure that you are not using C99 with an old version of X/Open or C89
+-    // with a new version.
+-    if (Opts.C99)
+-      Builder.defineMacro("_XOPEN_SOURCE", "600");
+-    else
+-      Builder.defineMacro("_XOPEN_SOURCE", "500");
++    // Compatibility with GCC to satisfy <sys/feature_tests.h> requirements.
+     if (Opts.CPlusPlus) {
+-      Builder.defineMacro("__C99FEATURES__");
++      Builder.defineMacro("__STDC_VERSION__", "199901L");
++      Builder.defineMacro("_XOPEN_SOURCE", "600");
+       Builder.defineMacro("_FILE_OFFSET_BITS", "64");
++      Builder.defineMacro("_LARGEFILE_SOURCE");
++      Builder.defineMacro("_LARGEFILE64_SOURCE");
++      Builder.defineMacro("__EXTENSIONS__");
+     }
+-    // GCC restricts the next two to C++.
+-    Builder.defineMacro("_LARGEFILE_SOURCE");
+-    Builder.defineMacro("_LARGEFILE64_SOURCE");
+-    Builder.defineMacro("__EXTENSIONS__");
+     if (Opts.POSIXThreads)
+       Builder.defineMacro("_REENTRANT");
+     if (this->HasFloat128)

Index: pkgsrc/lang/clang/patches/patch-lib_Driver_ToolChains_Gnu.cpp
diff -u /dev/null pkgsrc/lang/clang/patches/patch-lib_Driver_ToolChains_Gnu.cpp:1.4
--- /dev/null   Sun Jul  7 14:00:21 2024
+++ pkgsrc/lang/clang/patches/patch-lib_Driver_ToolChains_Gnu.cpp       Sun Jul  7 14:00:21 2024
@@ -0,0 +1,18 @@
+$NetBSD: patch-lib_Driver_ToolChains_Gnu.cpp,v 1.4 2024/07/07 14:00:21 wiz Exp $
+
+On SunOS always use the GCC that was used to build clang.
+
+--- lib/Driver/ToolChains/Gnu.cpp.orig 2024-06-15 17:21:32.000000000 +0000
++++ lib/Driver/ToolChains/Gnu.cpp
+@@ -2382,6 +2382,11 @@ void Generic_GCC::GCCInstallationDetecto
+     // /usr/gcc/<version> as a prefix.
+ 
+     SmallVector<std::pair<GCCVersion, std::string>, 8> SolarisPrefixes;
++
++    // Only use compiler as configured by pkgsrc
++    Prefixes.push_back("@GCCBASEDIR@");
++    return;
++
+     std::string PrefixDir = concat(SysRoot, "/usr/gcc");
+     std::error_code EC;
+     for (llvm::vfs::directory_iterator LI = D.getVFS().dir_begin(PrefixDir, EC),



Home | Main Index | Thread Index | Old Index