From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mp10.migadu.com ([2001:41d0:403:478a::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by ms8.migadu.com with LMTPS id KEoSML5xNmVswgAAG6o9tA:P1 (envelope-from ) for ; Mon, 23 Oct 2023 15:14:38 +0200 Received: from aspmx1.migadu.com ([2001:41d0:403:478a::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by mp10.migadu.com with LMTPS id KEoSML5xNmVswgAAG6o9tA (envelope-from ) for ; Mon, 23 Oct 2023 15:14:38 +0200 Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by aspmx1.migadu.com (Postfix) with ESMTPS id 732E760153 for ; Mon, 23 Oct 2023 15:14:38 +0200 (CEST) Authentication-Results: aspmx1.migadu.com; dkim=fail ("headers rsa verify failed") header.d=ultrarare.space header.s=dkim header.b=zIZ8wp5R; spf=pass (aspmx1.migadu.com: domain of "guix-patches-bounces+larch=yhetil.org@gnu.org" designates 209.51.188.17 as permitted sender) smtp.mailfrom="guix-patches-bounces+larch=yhetil.org@gnu.org"; dmarc=pass (policy=none) header.from=gnu.org ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=yhetil.org; s=key1; t=1698066878; h=from:from:sender:sender:reply-to:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding:resent-cc: resent-from:resent-sender:resent-message-id:in-reply-to:in-reply-to: references:references:list-id:list-help:list-unsubscribe: list-subscribe:list-post:dkim-signature; bh=z+U/L/CPRZvxh7HThBdA3N6QLUZNpHp4pCUFhPTri70=; b=e2Db3xw0QiHdeYtb0u05cYrLzRaH4BGYtumt9Shcgx9X8i/u+fxh57EQZJr1eRDKBfymAq gZ391iRcV6+M7+tyFtW8vZ7aSYmE20dxI0RehNxkXlXR+Ub3vnlrKI6qCIN4ZFa6CoJ4cP rbyaEROqsHkp0MQqB8ptUgWqZivVoGKiLSq03wA5qoJboDdxYlvWL0PnWCWlJRPRnLKiVf lQYpoDdZyaeAy1SAc3CYpT/ewFOjGGynbv/AaIVmwsjfCXage7MacAqNx0ZhGZKd2IXU2P zaERB3I2rbPkNKP3wYDvs2lKXmEfY4U21cmDHFOLwyJCi8coqRE5lIc+J6yINw== ARC-Seal: i=1; s=key1; d=yhetil.org; t=1698066878; a=rsa-sha256; cv=none; b=ggQAa8gOq/FggA1eVSx1GyQmuagIOtAtE+2WQFW9dOnO9HfmH0p2kFjm+O2LZL4WfJMtNU TDaHRWg/QDknnsVfnRR69pl2EFfEW7dDjVjBvlc/k5BkPQjn7rwL/2rAlA7M1vTMGUNlek 2RRTAWB7vi/dR6aKG3QKAz3X4GtZbX2vYad5LxspT+8whtCkgscB6Ekjv2WwQa/agHbNnr GMq46Pe05FJx1genGW5uEHpczZ2YeElTQ//pbO6pMiCCrdbA16FQdJdRCNWQ5WqMYPRsb0 eg5B+YOTz8djR+OBCqSBgWFePBO+KCF2lh3b347WDbzTctTzu7AhgwvuyaKieQ== ARC-Authentication-Results: i=1; aspmx1.migadu.com; dkim=fail ("headers rsa verify failed") header.d=ultrarare.space header.s=dkim header.b=zIZ8wp5R; spf=pass (aspmx1.migadu.com: domain of "guix-patches-bounces+larch=yhetil.org@gnu.org" designates 209.51.188.17 as permitted sender) smtp.mailfrom="guix-patches-bounces+larch=yhetil.org@gnu.org"; dmarc=pass (policy=none) header.from=gnu.org Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1quuCp-0003II-8N; Mon, 23 Oct 2023 08:38:51 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1quuCY-0003Dj-OE for guix-patches@gnu.org; Mon, 23 Oct 2023 08:38:35 -0400 Received: from debbugs.gnu.org ([2001:470:142:5::43]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1quuCY-0001Mo-Cz for guix-patches@gnu.org; Mon, 23 Oct 2023 08:38:34 -0400 Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1quuD1-0007UK-9m; Mon, 23 Oct 2023 08:39:03 -0400 X-Loop: help-debbugs@gnu.org Subject: [bug#66701] [PATCH 03/14] gnu: Add llvm-16. Resent-From: Hilton Chain Original-Sender: "Debbugs-submit" Resent-CC: hako@ultrarare.space, guix-patches@gnu.org Resent-Date: Mon, 23 Oct 2023 12:39:03 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 66701 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: 66701@debbugs.gnu.org Cc: Hilton Chain , Hilton Chain X-Debbugs-Original-Xcc: Hilton Chain Received: via spool by 66701-submit@debbugs.gnu.org id=B66701.169806472928734 (code B ref 66701); Mon, 23 Oct 2023 12:39:03 +0000 Received: (at 66701) by debbugs.gnu.org; 23 Oct 2023 12:38:49 +0000 Received: from localhost ([127.0.0.1]:49343 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1quuCn-0007TN-5w for submit@debbugs.gnu.org; Mon, 23 Oct 2023 08:38:49 -0400 Received: from mail.boiledscript.com ([144.168.59.46]:56752) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1quuCj-0007TD-MU for 66701@debbugs.gnu.org; Mon, 23 Oct 2023 08:38:46 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ultrarare.space; s=dkim; t=1698064542; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=z+U/L/CPRZvxh7HThBdA3N6QLUZNpHp4pCUFhPTri70=; b=zIZ8wp5RMVawn+0o5CJFH1yDVmKuHQMo3oGyFOJN6WG+jXf9hkP03TY9+E383tnqCMi2hk 24BqVUBmNfB4GYlSgtNDz2dan9IqCAi/x15dScX0SwBfphzIkDUAbt+QFssRQpVAXdWAnt CtwT7nDpk99nqbK5EIiBJK0Lyl/mHomJfVrr5HNm8u1JQqOxrIpGZnX/R0V6Ki1JQ2To4T X0essJN30aG+ZVPkIREwZ65O2MIoH9AlzwdroV5zMgpoHLAs3nEU2xS2YM7X5NHVd7Nni+ 7UL8gokrwQ7lJZVaraPj12BSqmMj7RZ5/DaN2WHboNnnMomhleRJjGuCQViBhQ== Date: Mon, 23 Oct 2023 20:36:11 +0800 Message-ID: <09af827fbb41a351b4ce67e139505de43b2b03ca.1698063805.git.hako@ultrarare.space> In-Reply-To: References: MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Spamd-Bar: -- X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-BeenThere: guix-patches@gnu.org List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-to: Hilton Chain X-ACL-Warn: , Hilton Chain via Guix-patches From: Hilton Chain via Guix-patches via Errors-To: guix-patches-bounces+larch=yhetil.org@gnu.org Sender: guix-patches-bounces+larch=yhetil.org@gnu.org X-Migadu-Flow: FLOW_IN X-Migadu-Country: US X-Spam-Score: -3.12 X-Migadu-Queue-Id: 732E760153 X-Migadu-Scanner: mx0.migadu.com X-Migadu-Spam-Score: -3.12 X-TUID: WgS6+CzW4FlD * gnu/packages/llvm.scm (llvm-16): New variable. * gnu/packages/patches/clang-16.0-libc-search-path.patch: New file. * gnu/local.mk (dist_patch_DATA): Register it. Change-Id: I27738152ca95aeeef8d8b7150fdf14825b6b0b4d --- gnu/local.mk | 1 + gnu/packages/llvm.scm | 12 ++- .../patches/clang-16.0-libc-search-path.patch | 95 +++++++++++++++++++ 3 files changed, 106 insertions(+), 2 deletions(-) create mode 100644 gnu/packages/patches/clang-16.0-libc-search-path.patch diff --git a/gnu/local.mk b/gnu/local.mk index 43145caf80..d606cffd1f 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -1016,6 +1016,7 @@ dist_patch_DATA = \ %D%/packages/patches/clang-13.0-libc-search-path.patch \ %D%/packages/patches/clang-14.0-libc-search-path.patch \ %D%/packages/patches/clang-15.0-libc-search-path.patch \ + %D%/packages/patches/clang-16.0-libc-search-path.patch \ %D%/packages/patches/clang-runtime-asan-build-fixes.patch \ %D%/packages/patches/clang-runtime-esan-build-fixes.patch \ %D%/packages/patches/clang-runtime-9-libsanitizer-mode-field.patch \ diff --git a/gnu/packages/llvm.scm b/gnu/packages/llvm.scm index 97902fcf5c..6014787efc 100644 --- a/gnu/packages/llvm.scm +++ b/gnu/packages/llvm.scm @@ -590,11 +590,13 @@ (define-public (make-clang-toolchain clang libomp) (define %llvm-monorepo-hashes '(("14.0.6" . "14f8nlvnmdkp9a9a79wv67jbmafvabczhah8rwnqrgd5g3hfxxxx") - ("15.0.7" . "12sggw15sxq1krh1mfk3c1f07h895jlxbcifpwk3pznh4m1rjfy2"))) + ("15.0.7" . "12sggw15sxq1krh1mfk3c1f07h895jlxbcifpwk3pznh4m1rjfy2") + ("16.0.6" . "0jxmapg7shwkl88m4mqgfjv4ziqdmnppxhjz6vz51ycp2x4nmjky"))) (define %llvm-patches '(("14.0.6" . ("clang-14.0-libc-search-path.patch")) - ("15.0.7" . ("clang-15.0-libc-search-path.patch")))) + ("15.0.7" . ("clang-15.0-libc-search-path.patch")) + ("16.0.6" . ("clang-16.0-libc-search-path.patch")))) (define (llvm-monorepo version) (origin @@ -1450,6 +1452,12 @@ (define-public clang-3.5 #:legacy-build-shared-libs? #t #:patches '("clang-3.5-libc-search-path.patch"))) +(define-public llvm-16 + (package + (inherit llvm-15) + (version "16.0.6") + (source (llvm-monorepo version)))) + ;; Default LLVM and Clang version. (define-public libomp libomp-13) (define-public llvm llvm-13) diff --git a/gnu/packages/patches/clang-16.0-libc-search-path.patch b/gnu/packages/patches/clang-16.0-libc-search-path.patch new file mode 100644 index 0000000000..282f58f03b --- /dev/null +++ b/gnu/packages/patches/clang-16.0-libc-search-path.patch @@ -0,0 +1,95 @@ +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 87a0c5a58511..86ea82eda4b5 100644 +--- a/clang/lib/Driver/Distro.cpp ++++ b/clang/lib/Driver/Distro.cpp +@@ -98,6 +98,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 aa125bb308e8..8b86e144054c 100644 +--- a/clang/lib/Driver/ToolChains/Cuda.cpp ++++ b/clang/lib/Driver/ToolChains/Cuda.cpp +@@ -124,6 +124,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 +index c6fb290ffdb4..4736f4bb3392 100644 +--- a/clang/lib/Driver/ToolChains/Linux.cpp ++++ b/clang/lib/Driver/ToolChains/Linux.cpp +@@ -189,6 +189,10 @@ Linux::Linux(const Driver &D, const llvm::Triple &Triple, const ArgList &Args) + + 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()) { +@@ -249,6 +253,7 @@ Linux::Linux(const Driver &D, const llvm::Triple &Triple, const ArgList &Args) + + #ifdef ENABLE_LINKER_BUILD_ID + ExtraOpts.push_back("--build-id"); ++#endif + #endif + + // The selection of paths to try here is designed to match the patterns which +@@ -270,6 +275,7 @@ Linux::Linux(const Driver &D, const llvm::Triple &Triple, const ArgList &Args) + } + Generic_GCC::AddMultilibPaths(D, SysRoot, OSLibDir, MultiarchTriple, Paths); + ++#if 0 + addPathIfExists(D, concat(SysRoot, "/lib", MultiarchTriple), Paths); + addPathIfExists(D, concat(SysRoot, "/lib/..", OSLibDir), Paths); + +@@ -298,9 +304,11 @@ Linux::Linux(const Driver &D, const llvm::Triple &Triple, const ArgList &Args) + addPathIfExists(D, concat(SysRoot, "/", OSLibDir, ABIName), Paths); + addPathIfExists(D, concat(SysRoot, "/usr", OSLibDir, ABIName), Paths); + } ++#endif + + Generic_GCC::AddMultiarchPaths(D, SysRoot, OSLibDir, Paths); + ++#if 0 + // The deprecated -DLLVM_ENABLE_PROJECTS=libcxx configuration installs + // libc++.so in D.Dir+"/../lib/". Detect this path. + // TODO Remove once LLVM_ENABLE_PROJECTS=libcxx is unsupported. +@@ -310,6 +318,14 @@ Linux::Linux(const Driver &D, const llvm::Triple &Triple, const ArgList &Args) + + addPathIfExists(D, concat(SysRoot, "/lib"), Paths); + addPathIfExists(D, concat(SysRoot, "/usr/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); ++ ++ // Add GCC's lib/ directory so libstdc++.so can be found. ++ addPathIfExists(D, GCCInstallation.getParentLibPath(), Paths); + } + + ToolChain::RuntimeLibType Linux::GetDefaultRuntimeLibType() const { -- 2.41.0