aboutsummaryrefslogtreecommitdiff
path: root/gnu/packages/patches/clang-cling-13-libc-search-path.patch
diff options
context:
space:
mode:
Diffstat (limited to 'gnu/packages/patches/clang-cling-13-libc-search-path.patch')
-rw-r--r--gnu/packages/patches/clang-cling-13-libc-search-path.patch96
1 files changed, 0 insertions, 96 deletions
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 {