From 866fc620b3dbe160c8d0ed4e77ed18515f2ce6fb Mon Sep 17 00:00:00 2001
From: Maxim Cournoyer <maxim.cournoyer@gmail.com>
Date: Sat, 21 Sep 2024 10:51:28 +0900
Subject: gnu: cling: Update to 1.1.

* gnu/packages/llvm.scm (llvm-cling-base): New variable
(llvm-cling): Use it.  Update to version 16-20240621-02.
[source]: Delete patches.
(clang-cling-runtime): Base on clang-runtime-16.
[phases]: Delete change-directory phase.
(clang-cling): Base on clang-16.
[phases]: Delete change-directory and delete-static-libraries phases (the
later would cause CMake to fail due to baking the static targets in).
(cling): Update to 1.1.
[source]: Delete patches.
[arguments] <#:tests?>: Reference upstream discussion in comment.
[phases] <patch-paths>: Adjust file name of clang lib directory.
<set-CLANG>: New phase.
[native-inputs]: Add clang-cling, used by the test suite.
* gnu/packages/patches/clang-cling-13-libc-search-path.patch
* gnu/packages/patches/clang-cling-13-remove-crypt-interceptors.patch
* gnu/packages/patches/clang-cling-runtime-13-glibc-2.36-compat.patch
* gnu/packages/patches/cling-use-shared-library.patch: Delete files.
* gnu/local.mk (dist_patch_DATA): De-register deleted files.

Change-Id: Ia8b58188ad9de2795a52289bd46ed15a8e722bfa
---
 .../patches/clang-cling-13-libc-search-path.patch  | 96 ----------------------
 1 file changed, 96 deletions(-)
 delete mode 100644 gnu/packages/patches/clang-cling-13-libc-search-path.patch

(limited to 'gnu/packages/patches/clang-cling-13-libc-search-path.patch')

diff --git a/gnu/packages/patches/clang-cling-13-libc-search-path.patch b/gnu/packages/patches/clang-cling-13-libc-search-path.patch
deleted file mode 100644
index c7d22eaaa3..0000000000
--- a/gnu/packages/patches/clang-cling-13-libc-search-path.patch
+++ /dev/null
@@ -1,96 +0,0 @@
-Clang attempts to guess file names based on the OS and distro (yes!),
-but unfortunately, that doesn't work for us.
-
-This patch makes it easy to insert libc's $libdir so that Clang passes the
-correct absolute file name of crt1.o etc. to 'ld'.  It also disables all
-the distro-specific stuff and removes the hard-coded FHS directory names
-to make sure Clang also works on foreign distros.
-
-diff --git a/clang/lib/Driver/Distro.cpp b/clang/lib/Driver/Distro.cpp
-index ee4fe841..f0313bbe 100644
---- a/clang/lib/Driver/Distro.cpp
-+++ b/clang/lib/Driver/Distro.cpp
-@@ -93,6 +93,10 @@ static Distro::DistroType DetectLsbRelease(llvm::vfs::FileSystem &VFS) {
- }
- 
- static Distro::DistroType DetectDistro(llvm::vfs::FileSystem &VFS) {
-+  // The compiler should always behave the same, even when used via Guix on a
-+  // foreign distro.
-+  return Distro::UnknownDistro;
-+
-   Distro::DistroType Version = Distro::UnknownDistro;
- 
-   // Newer freedesktop.org's compilant systemd-based systems
-diff --git a/clang/lib/Driver/ToolChains/Cuda.cpp b/clang/lib/Driver/ToolChains/Cuda.cpp
-index d14776c5..88bc3ccd 100644
---- a/clang/lib/Driver/ToolChains/Cuda.cpp
-+++ b/clang/lib/Driver/ToolChains/Cuda.cpp
-@@ -119,6 +119,9 @@ CudaInstallationDetector::CudaInstallationDetector(
-     const Driver &D, const llvm::Triple &HostTriple,
-     const llvm::opt::ArgList &Args)
-     : D(D) {
-+  // Don't look for CUDA in /usr.
-+  return;
-+
-   struct Candidate {
-     std::string Path;
-     bool StrictChecking;
-diff --git a/clang/lib/Driver/ToolChains/Linux.cpp b/clang/lib/Driver/ToolChains/Linux.cpp
---- a/clang/lib/Driver/ToolChains/Linux.cpp
-+++ b/clang/lib/Driver/ToolChains/Linux.cpp
-@@ -186,6 +186,10 @@
- 
-   Generic_GCC::PushPPaths(PPaths);
- 
-+  // Comment out the distro-specific tweaks so that they don't bite when
-+  // using Guix on a foreign distro.
-+#if 0
-+
-   Distro Distro(D.getVFS(), Triple);
- 
-   if (Distro.IsAlpineLinux() || Triple.isAndroid()) {
-@@ -251,6 +255,7 @@
- 
-   if (IsAndroid || Distro.IsOpenSUSE())
-     ExtraOpts.push_back("--enable-new-dtags");
-+#endif
- 
-   // The selection of paths to try here is designed to match the patterns which
-   // the GCC driver itself uses, as this is part of the GCC-compatible driver.
-@@ -264,6 +269,7 @@
- 
-   Generic_GCC::AddMultilibPaths(D, SysRoot, OSLibDir, MultiarchTriple, Paths);
- 
-+#if 0
-   addPathIfExists(D, SysRoot + "/lib/" + MultiarchTriple, Paths);
-   addPathIfExists(D, SysRoot + "/lib/../" + OSLibDir, Paths);
- 
-@@ -295,9 +301,11 @@
-     addPathIfExists(D, SysRoot + "/" + OSLibDir + "/" + ABIName, Paths);
-     addPathIfExists(D, SysRoot + "/usr/" + OSLibDir + "/" + ABIName, Paths);
-   }
-+#endif
- 
-   Generic_GCC::AddMultiarchPaths(D, SysRoot, OSLibDir, Paths);
- 
-+#if 0
-   // Similar to the logic for GCC above, if we are currently running Clang
-   // inside of the requested system root, add its parent library path to those
-   // searched.
-@@ -305,9 +313,14 @@
-   // directory ('Dir' below) or the ResourceDir.
-   if (StringRef(D.Dir).startswith(SysRoot))
-     addPathIfExists(D, D.Dir + "/../lib", Paths);
-+#endif
-+
-+  // Add libc's lib/ directory to the search path, so that crt1.o, crti.o,
-+  // and friends can be found.
-+  addPathIfExists(D, "@GLIBC_LIBDIR@", Paths);
- 
--  addPathIfExists(D, SysRoot + "/lib", Paths);
--  addPathIfExists(D, SysRoot + "/usr/lib", Paths);
-+  // Add GCC's lib/ directory so libstdc++.so can be found.
-+  addPathIfExists(D, GCCInstallation.getParentLibPath(), Paths);
- }
- 
- ToolChain::RuntimeLibType Linux::GetDefaultRuntimeLibType() const {
-- 
cgit v1.2.3