From unknown Sat Jun 14 18:44:58 2025 X-Loop: help-debbugs@gnu.org Subject: [bug#54725] [PATCH 0/2] LLVM 14 and Chromium 99 Resent-From: Marius Bakke Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Tue, 05 Apr 2022 12:19:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: report 54725 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: 54725@debbugs.gnu.org X-Debbugs-Original-To: guix-patches@gnu.org Received: via spool by submit@debbugs.gnu.org id=B.164916110410407 (code B ref -1); Tue, 05 Apr 2022 12:19:01 +0000 Received: (at submit) by debbugs.gnu.org; 5 Apr 2022 12:18:24 +0000 Received: from localhost ([127.0.0.1]:54014 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1nbi8e-0002hn-9w for submit@debbugs.gnu.org; Tue, 05 Apr 2022 08:18:24 -0400 Received: from lists.gnu.org ([209.51.188.17]:39312) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1nbi8b-0002he-So for submit@debbugs.gnu.org; Tue, 05 Apr 2022 08:18:22 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:58576) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1nbi8Z-0000YO-NZ for guix-patches@gnu.org; Tue, 05 Apr 2022 08:18:21 -0400 Received: from fencepost.gnu.org ([2001:470:142:3::e]:58666) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1nbi8Z-00022j-9t for guix-patches@gnu.org; Tue, 05 Apr 2022 08:18:19 -0400 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org; s=fencepost-gnu-org; h=MIME-Version:Date:Subject:To:From:in-reply-to: references; bh=nB3z8ka9dnUNRY/qsu/nWFCuLbGQREKkTlH6ETfpSys=; b=fVcB0wt5n3bZQE JE0nfxS3hK+AGCZX8S9Wz+w4LZnu/j0hdEShn30F8XlBD4IWZLfmgDXkT41psG4J5OeSWzDLGh7ry k05oDT4NwZEK72LlMb8nnmfjQGbd/c7BgQMZwWcnZ26+sImkTLDnQ1lWrGt8N4stgofG29HNC6zTq KWOY8pdgnjlYEhK2CI1bFdbARgsLaIG0UlCKzjmoRotwjeLOC5Y+3Ran0dGERsLNOGSJ9KEkdYjvD fguMOmFaqbHsWHuZqKHukP4na7ivknt8Gc08UNGaXstYObd24oOUMTdVwI5dig9wmCMjAy/X60ATb xIuicVkuuspiA7FgoUNw==; Received: from eduroam-193-157-181-199.wlan.uio.no ([193.157.181.199]:54008 helo=localhost) by fencepost.gnu.org with esmtpsa (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1nbi8V-0004Vg-3v for guix-patches@gnu.org; Tue, 05 Apr 2022 08:18:16 -0400 From: Marius Bakke Date: Tue, 5 Apr 2022 14:18:11 +0200 Message-Id: <20220405121811.26289-1-marius@gnu.org> X-Mailer: git-send-email 2.34.0 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Spam-Score: -2.3 (--) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.3 (---) Long time no see... I have been battling poor health and injuries for a while, but am slowly recovering. First on my agenda is a long-overdue Chromium update. It requires a newer LLVM, which can not be built from individual tarballs due to and other problems (likely fixed in 14.0.1). This patch makes small adjustments to the LLVM and Clang build procedures so they can be built from the LLVM "monorepo" instead of tarballs. Feedback wanted! I'm hoping to "fast track" these patches as Chromium 100 is already released with another slew of security fixes. I will start working on that next. Marius Bakke (2): gnu: LLVM, Clang: Add 14.0.0. gnu: ungoogled-chromium: Update to 99.0.4844.84-1. gnu/local.mk | 1 + gnu/packages/chromium.scm | 34 ++- gnu/packages/llvm.scm | 229 ++++++++++++------ .../patches/clang-14.0-libc-search-path.patch | 94 +++++++ gnu/packages/zig.scm | 2 +- 5 files changed, 280 insertions(+), 80 deletions(-) create mode 100644 gnu/packages/patches/clang-14.0-libc-search-path.patch -- 2.34.0 From unknown Sat Jun 14 18:44:58 2025 X-Loop: help-debbugs@gnu.org Subject: [bug#54725] [PATCH 1/2] gnu: LLVM, Clang: Add 14.0.0. References: <20220405121811.26289-1-marius@gnu.org> In-Reply-To: <20220405121811.26289-1-marius@gnu.org> Resent-From: Marius Bakke Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Tue, 05 Apr 2022 12:22:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 54725 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: 54725@debbugs.gnu.org Received: via spool by 54725-submit@debbugs.gnu.org id=B54725.164916126710774 (code B ref 54725); Tue, 05 Apr 2022 12:22:01 +0000 Received: (at 54725) by debbugs.gnu.org; 5 Apr 2022 12:21:07 +0000 Received: from localhost ([127.0.0.1]:54022 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1nbiBG-0002nh-PI for submit@debbugs.gnu.org; Tue, 05 Apr 2022 08:21:07 -0400 Received: from eggs.gnu.org ([209.51.188.92]:37812) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1nbiBF-0002mo-4K for 54725@debbugs.gnu.org; Tue, 05 Apr 2022 08:21:06 -0400 Received: from fencepost.gnu.org ([2001:470:142:3::e]:58736) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1nbiB9-0002xT-O0 for 54725@debbugs.gnu.org; Tue, 05 Apr 2022 08:20:59 -0400 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org; s=fencepost-gnu-org; h=MIME-Version:Date:Subject:To:From:in-reply-to: references; bh=TSSiSxmnxIyAU5n2cVzVicdRGYoKDbjylmP1cL5cUHk=; b=CDFxdAtst6JhQj tJqgrpwIYEufcAmRRuDVrvZfBq2VgiRQcLn98nfCaP3i/9ipElzhI08MLUgD2o3QnxMxDB/tggh4Q 46GixPCAWldksLB5PGJE2UcGoww+OFnbL4G+xLiQPOXYnsk9F9AUa3Xtp3Wddg2Mk1CMPyMriZZ9t dgV9yn+ikjByxcjE+9+OWSFID3Ix0yoxCkpoU/PRdZvv9Ljb1uXeHW5+kHxFrkNyPcoCuEAcme5mq qJXWYRUSeHEp0LT9f1T7rs1crqLueTxGnMN1B/Te27UuqjD+gR3+jcrb41zhsSPJs+KqpTGj3bXS1 zTVFxEXJCM/FHqiXp5cg==; Received: from eduroam-193-157-181-199.wlan.uio.no ([193.157.181.199]:54010 helo=localhost) by fencepost.gnu.org with esmtpsa (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1nbiB9-0004qQ-8i for 54725@debbugs.gnu.org; Tue, 05 Apr 2022 08:20:59 -0400 From: Marius Bakke Date: Tue, 5 Apr 2022 14:20:54 +0200 Message-Id: <20220405122055.26649-1-marius@gnu.org> X-Mailer: git-send-email 2.34.0 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Spam-Score: -2.3 (--) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.3 (---) * gnu/packages/llvm.scm (%llvm-monorepo-hashes, %llvm-patches, llvm-monorepo): New variables. (clang-runtime-from-llvm): Make HASH optional; use monorepo when not present. (clang-from-llvm): Likewise. (llvm-14, clang-runtime-14, clang-14, clang-toolchain-14, lld-14): New variables. (llvm-13): Inherit from LLVM-14. (lld-13): Inherit from LLD-14. (lld): Turn into alias for LLD-14. * gnu/packages/patches/clang-14.0-libc-search-path.patch: New file. * gnu/local.mk (dist_patch_DATA): Adjust accordingly. * gnu/packages/zig.scm (zig): Change from LLD to LLD-13. --- gnu/local.mk | 1 + gnu/packages/llvm.scm | 229 ++++++++++++------ .../patches/clang-14.0-libc-search-path.patch | 94 +++++++ gnu/packages/zig.scm | 2 +- 4 files changed, 255 insertions(+), 71 deletions(-) create mode 100644 gnu/packages/patches/clang-14.0-libc-search-path.patch diff --git a/gnu/local.mk b/gnu/local.mk index 60ee713508..df8bbc9fbc 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -950,6 +950,7 @@ dist_patch_DATA = \ %D%/packages/patches/clang-11.0-libc-search-path.patch \ %D%/packages/patches/clang-12.0-libc-search-path.patch \ %D%/packages/patches/clang-13.0-libc-search-path.patch \ + %D%/packages/patches/clang-14.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 eb949bed1b..0011faa50f 100644 --- a/gnu/packages/llvm.scm +++ b/gnu/packages/llvm.scm @@ -108,17 +108,21 @@ (define (llvm-uri component version) (define %llvm-release-monitoring-url "https://github.com/llvm/llvm-project/releases") -(define* (clang-runtime-from-llvm llvm hash - #:optional (patches '())) +(define* (clang-runtime-from-llvm llvm + #:optional + hash + (patches '())) (package (name "clang-runtime") (version (package-version llvm)) (source - (origin - (method url-fetch) - (uri (llvm-uri "compiler-rt" version)) - (sha256 (base32 hash)) - (patches (map search-patch patches)))) + (if hash + (origin + (method url-fetch) + (uri (llvm-uri "compiler-rt" version)) + (sha256 (base32 hash)) + (patches (map search-patch patches))) + (llvm-monorepo (package-version llvm)))) (build-system cmake-build-system) (native-inputs (package-native-inputs llvm)) (inputs @@ -162,7 +166,8 @@ (define* (clang-runtime-from-llvm llvm hash ;; doesn't list MIPS as supported. (supported-systems (delete "mips64el-linux" %supported-systems)))) -(define* (clang-from-llvm llvm clang-runtime hash +(define* (clang-from-llvm llvm clang-runtime + #:optional hash #:key (patches '()) tools-extra (properties (append `((release-monitoring-url @@ -176,14 +181,16 @@ (define* (clang-from-llvm llvm clang-runtime hash (name "clang") (version (package-version llvm)) (source - (origin - (method url-fetch) - (uri (llvm-uri (if (version>=? version "9.0.1") - "clang" - "cfe") - version)) - (sha256 (base32 hash)) - (patches (map search-patch patches)))) + (if hash + (origin + (method url-fetch) + (uri (llvm-uri (if (version>=? version "9.0.1") + "clang" + "cfe") + version)) + (sha256 (base32 hash)) + (patches (map search-patch patches))) + (llvm-monorepo (package-version llvm)))) ;; Using cmake allows us to treat llvm as an external library. There ;; doesn't seem to be any way to do this with clang's autotools-based ;; build system. @@ -519,17 +526,27 @@ (define (make-clang-toolchain clang) ("libc-debug" ,glibc "debug") ("libc-static" ,glibc "static"))))) -(define-public llvm-13 +(define %llvm-monorepo-hashes + '(("14.0.0" . "1ixqzjzq4ad3mv1w44gwcg1shy34c2b3i9ja71vx1wa7l2ms2376"))) + +(define %llvm-patches + '(("14.0.0" . ("clang-14.0-libc-search-path.patch")))) + +(define (llvm-monorepo version) + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/llvm/llvm-project") + (commit (string-append "llvmorg-" version)))) + (file-name (git-file-name "llvm-project" version)) + (sha256 (base32 (assoc-ref %llvm-monorepo-hashes version))) + (patches (map search-patch (assoc-ref %llvm-patches version))))) + +(define-public llvm-14 (package (name "llvm") - (version "13.0.1") - (source - (origin - (method url-fetch) - (uri (llvm-uri "llvm" version)) - (sha256 - (base32 - "0d681xiixmx9inwvz14vi3xsznrcryk06a8rvk9cljiq5kc80szc")))) + (version "14.0.0") + (source (llvm-monorepo version)) (build-system cmake-build-system) (outputs '("out" "opt-viewer")) (native-inputs @@ -538,42 +555,46 @@ (define-public llvm-13 (inputs (list libffi)) (propagated-inputs - (list zlib)) ;to use output from llvm-config + (list zlib)) ;to use output from llvm-config (arguments - `(#:configure-flags - ,#~(quasiquote - ;; These options are required for cross-compiling LLVM according to - ;; https://llvm.org/docs/HowToCrossCompileLLVM.html. - (#$@(if (%current-target-system) - #~(,(string-append "-DLLVM_TABLEGEN=" - #+(file-append this-package - "/bin/llvm-tblgen")) - #$(string-append "-DLLVM_DEFAULT_TARGET_TRIPLE=" - (%current-target-system)) - #$(string-append "-DLLVM_TARGET_ARCH=" - (system->llvm-target)) - #$(string-append "-DLLVM_TARGETS_TO_BUILD=" - (system->llvm-target))) - #~()) - "-DCMAKE_SKIP_BUILD_RPATH=FALSE" - "-DCMAKE_BUILD_WITH_INSTALL_RPATH=FALSE" - "-DBUILD_SHARED_LIBS:BOOL=TRUE" - "-DLLVM_ENABLE_FFI:BOOL=TRUE" - "-DLLVM_REQUIRES_RTTI=1" ; For some third-party utilities - "-DLLVM_INSTALL_UTILS=ON")) ; Needed for rustc. - ;; Don't use '-g' during the build, to save space. - #:build-type "Release" - #:phases - (modify-phases %standard-phases - (add-after 'install 'install-opt-viewer - (lambda* (#:key outputs #:allow-other-keys) - (let* ((out (assoc-ref outputs "out")) - (opt-viewer-out (assoc-ref outputs "opt-viewer")) - (opt-viewer-share-dir (string-append opt-viewer-out "/share")) - (opt-viewer-dir (string-append opt-viewer-share-dir "/opt-viewer"))) - (mkdir-p opt-viewer-share-dir) - (rename-file (string-append out "/share/opt-viewer") - opt-viewer-dir))))))) + (list + #:configure-flags + #~(list + ;; These options are required for cross-compiling LLVM according + ;; to . + #$@(if (%current-target-system) + #~(,(string-append "-DLLVM_TABLEGEN=" + #+(file-append this-package + "/bin/llvm-tblgen")) + #$(string-append "-DLLVM_DEFAULT_TARGET_TRIPLE=" + (%current-target-system)) + #$(string-append "-DLLVM_TARGET_ARCH=" + (system->llvm-target)) + #$(string-append "-DLLVM_TARGETS_TO_BUILD=" + (system->llvm-target))) + '()) + "-DCMAKE_SKIP_BUILD_RPATH=FALSE" + "-DCMAKE_BUILD_WITH_INSTALL_RPATH=FALSE" + "-DBUILD_SHARED_LIBS:BOOL=TRUE" + "-DLLVM_ENABLE_FFI:BOOL=TRUE" + "-DLLVM_REQUIRES_RTTI=1" ;for some third-party utilities + "-DLLVM_INSTALL_UTILS=ON") ;needed for rustc + ;; Don't use '-g' during the build, to save space. + #:build-type "Release" + #:phases + #~(modify-phases %standard-phases + (add-after 'unpack 'change-directory + (lambda _ + (chdir "llvm"))) + (add-after 'install 'install-opt-viewer + (lambda* (#:key outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (opt-viewer-out (assoc-ref outputs "opt-viewer")) + (opt-viewer-share-dir (string-append opt-viewer-out "/share")) + (opt-viewer-dir (string-append opt-viewer-share-dir "/opt-viewer"))) + (mkdir-p opt-viewer-share-dir) + (rename-file (string-append out "/share/opt-viewer") + opt-viewer-dir))))))) (home-page "https://www.llvm.org") (synopsis "Optimizing compiler infrastructure") (description @@ -586,6 +607,55 @@ (define-public llvm-13 (license license:asl2.0) (properties `((release-monitoring-url . ,%llvm-release-monitoring-url))))) +(define-public clang-runtime-14 + (let ((template (clang-runtime-from-llvm llvm-14))) + (package + (inherit template) + (arguments + (substitute-keyword-arguments (package-arguments template) + ((#:phases phases '(@ (guix build cmake-build-system) %standard-phases)) + #~(modify-phases #$phases + (add-after 'unpack 'change-directory + (lambda _ + (chdir "compiler-rt"))))))) + (native-inputs + `(;; FIXME: libfuzzer fails to build with GCC 10. + ("gcc" ,gcc-11) + ,@(package-native-inputs template)))))) + +(define-public clang-14 + (let ((template (clang-from-llvm llvm-14 clang-runtime-14))) + (package + (inherit template) + (arguments + (substitute-keyword-arguments (package-arguments template) + ((#:phases phases '(@ (guix build cmake-build-system) %standard-phases)) + #~(modify-phases #$phases + (add-after 'unpack 'change-directory + (lambda _ + (chdir "clang")))))))))) + +(define-public clang-toolchain-14 + (make-clang-toolchain clang-14)) + +(define-public llvm-13 + (package + (inherit llvm-14) + (version "13.0.1") + (source + (origin + (method url-fetch) + (uri (llvm-uri "llvm" version)) + (sha256 + (base32 + "0d681xiixmx9inwvz14vi3xsznrcryk06a8rvk9cljiq5kc80szc")))) + (arguments + (substitute-keyword-arguments (package-arguments llvm-14) + ((#:phases phases '%standard-phases) + #~(modify-phases #$phases + (delete 'change-directory))))) + (properties `((release-monitoring-url . ,%llvm-release-monitoring-url))))) + (define-public clang-runtime-13 (clang-runtime-from-llvm llvm-13 @@ -1072,9 +1142,32 @@ (define-public libunwind-headers (properties `((release-monitoring-url . ,%llvm-release-monitoring-url))) (license license:asl2.0))) ;with LLVM exceptions -(define-public lld +(define-public lld-14 (package (name "lld") + (version "14.0.0") + (source (llvm-monorepo version)) + (build-system cmake-build-system) + (inputs + (list llvm-14)) + (arguments + '(#:build-type "Release" + ;; TODO: Tests require the lit tool, which isn't installed by the LLVM + ;; package. + #:tests? #f + #:phases (modify-phases %standard-phases + (add-after 'unpack 'change-directory + (lambda _ + (chdir "lld")))))) + (home-page "https://lld.llvm.org/") + (synopsis "Linker from the LLVM project") + (description "LLD is a high-performance linker, built as a set of reusable +components which highly leverage existing libraries in the larger LLVM Project.") + (license license:asl2.0))) ; With LLVM exception + +(define-public lld-13 + (package + (inherit lld-14) (version "13.0.1") (source (origin (method url-fetch) @@ -1082,7 +1175,6 @@ (define-public lld (sha256 (base32 "1yscckcszfr234k4svhybdbsnz6w65x8pldl6c2nhyxzx12zfsk6")))) - (build-system cmake-build-system) (native-inputs ;; Note: check to see ;; whether this is still necessary. @@ -1090,20 +1182,15 @@ (define-public lld (inputs (list llvm-13)) (arguments - `(#:build-type "Release" + '(#:build-type "Release" ;; TODO: Tests require the lit tool, which isn't installed by the LLVM ;; package. #:tests? #f)) - (home-page "https://lld.llvm.org/") - (synopsis "Linker from the LLVM project") - (description "LLD is a high-performance linker, built as a set of reusable -components which highly leverage existing libraries in the larger LLVM Project.") - (properties `((release-monitoring-url . ,%llvm-release-monitoring-url))) - (license license:asl2.0))) ; With LLVM exception + (properties `((release-monitoring-url . ,%llvm-release-monitoring-url))))) (define-public lld-12 (package - (inherit lld) + (inherit lld-13) (version "12.0.1") (source (origin (method url-fetch) @@ -1114,6 +1201,8 @@ (define-public lld-12 (inputs (modify-inputs (package-inputs lld) (replace "llvm" llvm-12))))) +(define-public lld lld-14) + (define* (make-lld-wrapper lld #:key lld-as-ld?) "Return a LLD wrapper. When LLD-AS-LD? is true, create a 'ld' symlink that points to 'lld'." diff --git a/gnu/packages/patches/clang-14.0-libc-search-path.patch b/gnu/packages/patches/clang-14.0-libc-search-path.patch new file mode 100644 index 0000000000..7e439cd1ef --- /dev/null +++ b/gnu/packages/patches/clang-14.0-libc-search-path.patch @@ -0,0 +1,94 @@ +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 +--- a/clang/lib/Driver/Distro.cpp ++++ b/clang/lib/Driver/Distro.cpp +@@ -96,6 +96,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 +--- a/clang/lib/Driver/ToolChains/Cuda.cpp ++++ b/clang/lib/Driver/ToolChains/Cuda.cpp +@@ -117,6 +117,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 @@ 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()) { +@@ -250,6 +254,7 @@ Linux::Linux(const Driver &D, const llvm::Triple &Triple, const ArgList &Args) + + 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. +@@ -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, SysRoot + "/lib/" + MultiarchTriple, Paths); + addPathIfExists(D, SysRoot + "/lib/../" + OSLibDir, Paths); + +@@ -298,9 +304,11 @@ Linux::Linux(const Driver &D, const llvm::Triple &Triple, const ArgList &Args) + 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. +@@ -313,9 +321,14 @@ Linux::Linux(const Driver &D, const llvm::Triple &Triple, const ArgList &Args) + if (OSLibDir != "lib") + addPathIfExists(D, D.Dir + "/../" + OSLibDir, 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 { diff --git a/gnu/packages/zig.scm b/gnu/packages/zig.scm index b3de72226b..9db78516cc 100644 --- a/gnu/packages/zig.scm +++ b/gnu/packages/zig.scm @@ -46,7 +46,7 @@ (define-public zig (build-system cmake-build-system) (inputs (list clang-13 ; Clang propagates llvm. - lld)) + lld-13)) ;; Zig compiles fine with GCC, but also needs native LLVM libraries. (native-inputs (list llvm-13)) -- 2.34.0 From unknown Sat Jun 14 18:44:58 2025 X-Loop: help-debbugs@gnu.org Subject: [bug#54725] [PATCH 2/2] gnu: ungoogled-chromium: Update to 99.0.4844.84-1. Resent-From: Marius Bakke Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Tue, 05 Apr 2022 12:22:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 54725 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: 54725@debbugs.gnu.org Received: via spool by 54725-submit@debbugs.gnu.org id=B54725.164916127510799 (code B ref 54725); Tue, 05 Apr 2022 12:22:02 +0000 Received: (at 54725) by debbugs.gnu.org; 5 Apr 2022 12:21:15 +0000 Received: from localhost ([127.0.0.1]:54026 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1nbiBJ-0002nw-PX for submit@debbugs.gnu.org; Tue, 05 Apr 2022 08:21:14 -0400 Received: from eggs.gnu.org ([209.51.188.92]:37858) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1nbiBI-0002nS-M6 for 54725@debbugs.gnu.org; Tue, 05 Apr 2022 08:21:09 -0400 Received: from fencepost.gnu.org ([2001:470:142:3::e]:58738) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1nbiBD-000312-FB for 54725@debbugs.gnu.org; Tue, 05 Apr 2022 08:21:03 -0400 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org; s=fencepost-gnu-org; h=MIME-Version:References:In-Reply-To:Date:Subject:To: From; bh=gWiGBOnvNCIeNzQkqgUWtgvlsYsx84CMLR2lLgfurdQ=; b=mCV+QYtxdjgsjlAtcwCy 3+mrbviUqBvQU3AfZm4PPg/EI4t71zD5ioB56nhBSD3DPyTLjMSeC+dcYqjjt/agLkwNS1Di2RmBl SWjCPvAqvr6fe6gGalCaNCoofzh9XFPg2zSsUU+VuPIMnK1pAgQoTa10Q0HrCHyUCx6kglAUytqSa Tcp4QVhI+Q9MYhOpT5IRmUtzf1ojAai5MsR6ZI/ewdH5zuR7zWueGtb57d9NI0o8j/7K1Z2MuhM2v u2I/JQ53EiuZ31U0XH2RmrVF4SbJDrK3drmMeCM9aMTwf5mu08yivkDmf1YtLTvuSu4k2mfmMLZN+ 5mrfynjL/Emg5g==; Received: from eduroam-193-157-181-199.wlan.uio.no ([193.157.181.199]:54012 helo=localhost) by fencepost.gnu.org with esmtpsa (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1nbiBB-0005AO-NR for 54725@debbugs.gnu.org; Tue, 05 Apr 2022 08:21:03 -0400 From: Marius Bakke Date: Tue, 5 Apr 2022 14:20:55 +0200 Message-Id: <20220405122055.26649-2-marius@gnu.org> X-Mailer: git-send-email 2.34.0 In-Reply-To: <20220405122055.26649-1-marius@gnu.org> References: <20220405122055.26649-1-marius@gnu.org> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Spam-Score: -2.3 (--) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.3 (---) * gnu/packages/chromium.scm (%preserved-third-party-files): Adjust for 99. (%chromium-version): Set to 99.0.4844.84. (%ungoogled-origin): Update hash. (ungoogled-chromium): Likewise. [arguments]: Patch absolute file names to GTK libraries. Patch one more Opus header inclusion. Remove labels in wrapping phase. [native-inputs]: Change from CLANG-13 to CLANG-14. [inputs]: Add AT-SPI2-ATK. --- gnu/packages/chromium.scm | 34 +++++++++++++++++++++++++--------- 1 file changed, 25 insertions(+), 9 deletions(-) diff --git a/gnu/packages/chromium.scm b/gnu/packages/chromium.scm index 7ef1e5ac1b..75c48905db 100644 --- a/gnu/packages/chromium.scm +++ b/gnu/packages/chromium.scm @@ -133,6 +133,8 @@ (define %preserved-third-party-files "third_party/depot_tools/owners.py" ;BSD-3 "third_party/devtools-frontend" ;BSD-3 "third_party/devtools-frontend/src/front_end/third_party/acorn" ;Expat + "third_party/devtools-frontend/src/front_end/third_party\ +/additional_readme_paths.json" ;no explicit license; trivial "third_party/devtools-frontend/src/front_end/third_party/axe-core" ;MPL2.0 "third_party/devtools-frontend/src/front_end/third_party/chromium" ;BSD-3 "third_party/devtools-frontend/src/front_end/third_party/codemirror" ;Expat @@ -310,7 +312,7 @@ (define %blacklisted-files ;; run the Blink performance tests, just remove everything to save ~70MiB. '("third_party/blink/perf_tests")) -(define %chromium-version "98.0.4758.102") +(define %chromium-version "99.0.4844.84") (define %ungoogled-revision (string-append %chromium-version "-1")) (define %debian-revision "debian/90.0.4430.85-1") @@ -322,7 +324,7 @@ (define %ungoogled-origin (file-name (git-file-name "ungoogled-chromium" %ungoogled-revision)) (sha256 (base32 - "0baz90fnzpldw0wwibhmh4pmki7vlpci9b9vvifa0rj5cwckl8a0")))) + "1j02zcam09mdw7wg30r1mx27b8bw0s9dvk4qjl6vrhp24rbmscs7")))) (define* (debian-patch name hash #:optional (revision %debian-revision)) (origin @@ -451,7 +453,7 @@ (define-public ungoogled-chromium %chromium-version ".tar.xz")) (sha256 (base32 - "0gpk13k8pfk65vinlmkg3p7mm0qb8z35psajkxzx0v3n2bllfns1")) + "05bma8lsm5lad58mlfiv8bg0fw5k5mxh0v6g1ik7xp2bsd71iv10")) (modules '((guix build utils))) (snippet (force ungoogled-chromium-snippet)))) (build-system gnu-build-system) @@ -595,6 +597,9 @@ (define-public ungoogled-chromium "#include \"opus/opus_types.h\""))) (find-files (string-append "third_party/webrtc/modules" "/audio_coding/codecs/opus"))) + (substitute* "media/audio/audio_opus_encoder.h" + (("\"third_party/opus/src/include/opus.h\"") + "")) (substitute* "third_party/webrtc/rtc_base/strings/json.h" (("#include \"third_party/jsoncpp/") @@ -637,7 +642,16 @@ (define-public ungoogled-chromium (libvulkan.so.1 (search-input-file inputs "/lib/libvulkan.so.1")) (mesa-lib (dirname (search-input-file inputs - "/lib/libGL.so.1")))) + "/lib/libGL.so.1"))) + (gtk-libs '("libgio-2.0.so.0" + "libgdk_pixbuf-2.0.so.0" + "libgdk-3.so.0" + "libgtk-3.so.0"))) + (for-each (lambda (lib) + (substitute* "ui/gtk/gtk_compat.cc" + ((lib) (search-input-file + inputs (string-append "lib/" lib))))) + gtk-libs) (substitute* "printing/cups_config_helper.py" (("cups_config =.*") (string-append "cups_config = '" cups-config "'\n"))) @@ -738,8 +752,9 @@ (define-public ungoogled-chromium #$(local-file (search-auxiliary-file "chromium/master-preferences.json"))) - (gtk+ (assoc-ref inputs "gtk+")) - (xdg-utils (assoc-ref inputs "xdg-utils"))) + (gtk (dirname (dirname + (search-input-file inputs "lib/libgtk-3.so")))) + (xdg-utils (dirname (search-input-file inputs "bin/xdg-open")))) (substitute* '("chrome/app/resources/manpage.1.in" "chrome/installer/linux/common/desktop.template") @@ -775,8 +790,8 @@ (define-public ungoogled-chromium (wrap-program exe ;; Avoid file manager crash. See . - `("XDG_DATA_DIRS" ":" prefix (,(string-append gtk+ "/share"))) - `("PATH" ":" prefix (,(string-append xdg-utils "/bin"))))) + `("XDG_DATA_DIRS" ":" prefix (,(string-append gtk "/share"))) + `("PATH" ":" prefix (,xdg-utils)))) (with-directory-excursion "chrome/app/theme/chromium" (for-each @@ -789,7 +804,7 @@ (define-public ungoogled-chromium '("24" "48" "64" "128" "256"))))))))) (native-inputs (list bison - clang-13 + clang-14 gn gperf lld-as-ld-wrapper @@ -804,6 +819,7 @@ (define-public ungoogled-chromium (inputs (list alsa-lib atk + at-spi2-atk cups curl dbus -- 2.34.0 From unknown Sat Jun 14 18:44:58 2025 MIME-Version: 1.0 X-Mailer: MIME-tools 5.505 (Entity 5.505) X-Loop: help-debbugs@gnu.org From: help-debbugs@gnu.org (GNU bug Tracking System) To: Marius Bakke Subject: bug#54725: closed (Re: [bug#54725] [PATCH 0/2] LLVM 14 and Chromium 99) Message-ID: References: <878rsgiobs.fsf@gnu.org> <20220405121811.26289-1-marius@gnu.org> X-Gnu-PR-Message: they-closed 54725 X-Gnu-PR-Package: guix-patches X-Gnu-PR-Keywords: patch Reply-To: 54725@debbugs.gnu.org Date: Thu, 07 Apr 2022 21:20:02 +0000 Content-Type: multipart/mixed; boundary="----------=_1649366402-24982-1" This is a multi-part message in MIME format... ------------=_1649366402-24982-1 Content-Disposition: inline Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Your bug report #54725: [PATCH 0/2] LLVM 14 and Chromium 99 which was filed against the guix-patches package, has been closed. The explanation is attached below, along with your original report. If you require more details, please reply to 54725@debbugs.gnu.org. --=20 54725: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=3D54725 GNU Bug Tracking System Contact help-debbugs@gnu.org with problems ------------=_1649366402-24982-1 Content-Type: message/rfc822 Content-Disposition: inline Content-Transfer-Encoding: 7bit Received: (at 54725-done) by debbugs.gnu.org; 7 Apr 2022 21:19:29 +0000 Received: from localhost ([127.0.0.1]:33551 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1ncZXN-0006U5-ER for submit@debbugs.gnu.org; Thu, 07 Apr 2022 17:19:29 -0400 Received: from eggs.gnu.org ([209.51.188.92]:45684) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1ncZXL-0006To-Nx for 54725-done@debbugs.gnu.org; Thu, 07 Apr 2022 17:19:28 -0400 Received: from fencepost.gnu.org ([2001:470:142:3::e]:54568) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1ncZXG-0002e2-H5 for 54725-done@debbugs.gnu.org; Thu, 07 Apr 2022 17:19:22 -0400 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org; s=fencepost-gnu-org; h=MIME-Version:Date:References:In-Reply-To:Subject:To: From; bh=Ulywzv/FUoSNmF1+m77H32d6wlOEJI0tAgvTcphLaA8=; b=q0xX/Z0FAB7mWBSnNqkq q5ntIy53QUEZqcCRmIIwdDn7Qw7dhnp82MGEXGRV5wB3xwFzUzaGaO09IU7ey1cKNgDbl7P61PqzS 4ygoORmhNCYw6ndHBBjzQ9yHy6pvXkJP5C69UbaQmLImWnz01BHLzNomXLM1bPB4yxzqLgW07jNck /J8jfG8UFa757Dp6u7c+MRkkMN2X7Jb3DhSxK2+o9NH5BrQ55+0/VOh2jK6kGMjlzlG4g0FCAzUkK Pjof01utntUlSQxcve5rwLxYdmkGmkH9XkWXutHuvxxqbLuHIv5Z3g8131rpC8YEusDjPOYvZ0hgc a0wMM6JVr5+Byg==; Received: from host-37-191-236-102.lynet.no ([37.191.236.102]:40158 helo=localhost) by fencepost.gnu.org with esmtpsa (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1ncZXF-0001gF-Ps for 54725-done@debbugs.gnu.org; Thu, 07 Apr 2022 17:19:22 -0400 From: Marius Bakke To: 54725-done@debbugs.gnu.org Subject: Re: [bug#54725] [PATCH 0/2] LLVM 14 and Chromium 99 In-Reply-To: <20220405121811.26289-1-marius@gnu.org> References: <20220405121811.26289-1-marius@gnu.org> Date: Thu, 07 Apr 2022 23:19:19 +0200 Message-ID: <878rsgiobs.fsf@gnu.org> MIME-Version: 1.0 Content-Type: multipart/signed; boundary="=-=-="; micalg=pgp-sha512; protocol="application/pgp-signature" X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 54725-done X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.3 (---) --=-=-= Content-Type: text/plain Marius Bakke skriver: > Marius Bakke (2): > gnu: LLVM, Clang: Add 14.0.0. > gnu: ungoogled-chromium: Update to 99.0.4844.84-1. > > gnu/local.mk | 1 + > gnu/packages/chromium.scm | 34 ++- > gnu/packages/llvm.scm | 229 ++++++++++++------ > .../patches/clang-14.0-libc-search-path.patch | 94 +++++++ > gnu/packages/zig.scm | 2 +- > 5 files changed, 280 insertions(+), 80 deletions(-) > create mode 100644 gnu/packages/patches/clang-14.0-libc-search-path.patch I went ahead and pushed these patches, along with an update to ungoogled-chromium 100. --=-=-= Content-Type: application/pgp-signature; name="signature.asc" -----BEGIN PGP SIGNATURE----- iIUEARYKAC0WIQRNTknu3zbaMQ2ddzTocYulkRQQdwUCYk9VVw8cbWFyaXVzQGdu dS5vcmcACgkQ6HGLpZEUEHdvlgD+LW12LlQB42rI2kyUR1JXSKAK2oJ9XCSIxtuW X0hd/q0A/iRcNTFFuYbyBVui3CvvSmA1CCB68WioXlBOFUHRmzIE =ADr5 -----END PGP SIGNATURE----- --=-=-=-- ------------=_1649366402-24982-1 Content-Type: message/rfc822 Content-Disposition: inline Content-Transfer-Encoding: 7bit Received: (at submit) by debbugs.gnu.org; 5 Apr 2022 12:18:24 +0000 Received: from localhost ([127.0.0.1]:54014 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1nbi8e-0002hn-9w for submit@debbugs.gnu.org; Tue, 05 Apr 2022 08:18:24 -0400 Received: from lists.gnu.org ([209.51.188.17]:39312) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1nbi8b-0002he-So for submit@debbugs.gnu.org; Tue, 05 Apr 2022 08:18:22 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:58576) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1nbi8Z-0000YO-NZ for guix-patches@gnu.org; Tue, 05 Apr 2022 08:18:21 -0400 Received: from fencepost.gnu.org ([2001:470:142:3::e]:58666) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1nbi8Z-00022j-9t for guix-patches@gnu.org; Tue, 05 Apr 2022 08:18:19 -0400 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org; s=fencepost-gnu-org; h=MIME-Version:Date:Subject:To:From:in-reply-to: references; bh=nB3z8ka9dnUNRY/qsu/nWFCuLbGQREKkTlH6ETfpSys=; b=fVcB0wt5n3bZQE JE0nfxS3hK+AGCZX8S9Wz+w4LZnu/j0hdEShn30F8XlBD4IWZLfmgDXkT41psG4J5OeSWzDLGh7ry k05oDT4NwZEK72LlMb8nnmfjQGbd/c7BgQMZwWcnZ26+sImkTLDnQ1lWrGt8N4stgofG29HNC6zTq KWOY8pdgnjlYEhK2CI1bFdbARgsLaIG0UlCKzjmoRotwjeLOC5Y+3Ran0dGERsLNOGSJ9KEkdYjvD fguMOmFaqbHsWHuZqKHukP4na7ivknt8Gc08UNGaXstYObd24oOUMTdVwI5dig9wmCMjAy/X60ATb xIuicVkuuspiA7FgoUNw==; Received: from eduroam-193-157-181-199.wlan.uio.no ([193.157.181.199]:54008 helo=localhost) by fencepost.gnu.org with esmtpsa (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1nbi8V-0004Vg-3v for guix-patches@gnu.org; Tue, 05 Apr 2022 08:18:16 -0400 From: Marius Bakke To: guix-patches@gnu.org Subject: [PATCH 0/2] LLVM 14 and Chromium 99 Date: Tue, 5 Apr 2022 14:18:11 +0200 Message-Id: <20220405121811.26289-1-marius@gnu.org> X-Mailer: git-send-email 2.34.0 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: submit X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.3 (---) Long time no see... I have been battling poor health and injuries for a while, but am slowly recovering. First on my agenda is a long-overdue Chromium update. It requires a newer LLVM, which can not be built from individual tarballs due to and other problems (likely fixed in 14.0.1). This patch makes small adjustments to the LLVM and Clang build procedures so they can be built from the LLVM "monorepo" instead of tarballs. Feedback wanted! I'm hoping to "fast track" these patches as Chromium 100 is already released with another slew of security fixes. I will start working on that next. Marius Bakke (2): gnu: LLVM, Clang: Add 14.0.0. gnu: ungoogled-chromium: Update to 99.0.4844.84-1. gnu/local.mk | 1 + gnu/packages/chromium.scm | 34 ++- gnu/packages/llvm.scm | 229 ++++++++++++------ .../patches/clang-14.0-libc-search-path.patch | 94 +++++++ gnu/packages/zig.scm | 2 +- 5 files changed, 280 insertions(+), 80 deletions(-) create mode 100644 gnu/packages/patches/clang-14.0-libc-search-path.patch -- 2.34.0 ------------=_1649366402-24982-1--