From patchwork Fri Jul 8 15:58:52 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Greg Hogan X-Patchwork-Id: 40602 Return-Path: X-Original-To: patchwork@mira.cbaines.net Delivered-To: patchwork@mira.cbaines.net Received: by mira.cbaines.net (Postfix, from userid 113) id ADFBD27BBEA; Fri, 8 Jul 2022 18:01:59 +0100 (BST) X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on mira.cbaines.net X-Spam-Level: X-Spam-Status: No, score=-2.7 required=5.0 tests=BAYES_00,DKIM_INVALID, DKIM_SIGNED,MAILING_LIST_MULTI,SPF_HELO_PASS,URIBL_BLOCKED autolearn=unavailable autolearn_force=no version=3.4.6 Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mira.cbaines.net (Postfix) with ESMTPS id 0DF1C27BBE9 for ; Fri, 8 Jul 2022 18:01:59 +0100 (BST) Received: from localhost ([::1]:54576 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1o9rMc-0001ne-5r for patchwork@mira.cbaines.net; Fri, 08 Jul 2022 13:01:58 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:47430) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1o9qOj-0004rN-Gg for guix-patches@gnu.org; Fri, 08 Jul 2022 12:00:05 -0400 Received: from debbugs.gnu.org ([209.51.188.43]:39171) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1o9qOj-0007mh-24 for guix-patches@gnu.org; Fri, 08 Jul 2022 12:00:05 -0400 Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1o9qOi-0001z8-WE for guix-patches@gnu.org; Fri, 08 Jul 2022 12:00:05 -0400 X-Loop: help-debbugs@gnu.org Subject: [bug#56452] [PATCH 5/5] gnu: clang-toolchain-14: Build with libomp-14. Resent-From: Greg Hogan Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Fri, 08 Jul 2022 16:00:04 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 56452 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: 56452@debbugs.gnu.org Cc: Greg Hogan Received: via spool by 56452-submit@debbugs.gnu.org id=B56452.16572959507499 (code B ref 56452); Fri, 08 Jul 2022 16:00:04 +0000 Received: (at 56452) by debbugs.gnu.org; 8 Jul 2022 15:59:10 +0000 Received: from localhost ([127.0.0.1]:33064 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1o9qNq-0001wo-Cu for submit@debbugs.gnu.org; Fri, 08 Jul 2022 11:59:10 -0400 Received: from mail-qk1-f178.google.com ([209.85.222.178]:47009) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1o9qNl-0001vZ-El for 56452@debbugs.gnu.org; Fri, 08 Jul 2022 11:59:06 -0400 Received: by mail-qk1-f178.google.com with SMTP id x22so3175624qkf.13 for <56452@debbugs.gnu.org>; Fri, 08 Jul 2022 08:59:05 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=greghogan-com.20210112.gappssmtp.com; s=20210112; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=jQiJeUp4xdqMAw4xvrld3hJVrttwsVShtc/eYRAUkhQ=; b=vUiVR2R0t3Z2AEnsMP4fs8X1BCp2OSgDnOUQvVmcXElPA+30FUAZsnkrzj0nQ/6hZS UE5FdOX6UeH4iBQ7bnu5piw0UQxi02L4dyskhYKRHvV7EcGOoiRcO9xl2cN6+/hlCPLA Z50N2EO7Q/x9larnkRmRmHoGCJngujpOWAHTj2UadKCZeQecQNiOTXhj+OOvzGXx8lTv fVSe7O1NM17uT8aQ2LMKloO+W6yCAsqKuJDE1VGQCwzpdNe1cHDn04rnNeswWKrRbzbo Fic+fF60s38uhqJ+ibf5CWr8hh4hsjpZztg0nkrILtUctzINIWcRkfDilaPyteHMZ/nq b7nw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=jQiJeUp4xdqMAw4xvrld3hJVrttwsVShtc/eYRAUkhQ=; b=NgiS/KNMB/nMmMff/I2silJteFtsHsdsojo8aZo5M+vPSkAWcX5uqygaBAsYARHS8x TG46SIwf1CRSZWA2VwIimSlYYw8vsE1hQDmLdH8Wz86n0hKQrfWp+MNVzQS5mIhwPCb4 HssYtWzvUYXS4LeHC6l2gU/0rpa7I+/wERgWwe3pNXaU2x0pDJDW49xTXtCwANkcNM+y +fb5cg9eg+hjO4r1LyTAgLw3ac7qoCpM4YouvGE74VBnzcHS6M3aWmPdgKlsAO9I5fPY 6iUg25bKVYDCdgEYNSmfhTj6lvOwg4w12Sg1+48XuI38zi8KNACKkqSBOGPsg9JBU9wJ eUIg== X-Gm-Message-State: AJIora8tJop20/LDKsZs5aaAIy0zGC0fYwppQ2fyUpg5QajeOcMLwt4Y 4vsJq7QCyWO3hKBkGngQM796JnP/iiOWQIQg X-Google-Smtp-Source: AGRyM1vq4TEtsCHhijtqw+uMMKD+mMJCfOIOohaz2okuvpe1SpUYo0efiYobyYjaPdOFypFT2PDHFQ== X-Received: by 2002:a05:620a:1a9f:b0:6af:2348:ad95 with SMTP id bl31-20020a05620a1a9f00b006af2348ad95mr2804012qkb.526.1657295939715; Fri, 08 Jul 2022 08:58:59 -0700 (PDT) Received: from ip-10-114-89-251.evoforge.org (ec2-52-70-167-183.compute-1.amazonaws.com. [52.70.167.183]) by smtp.gmail.com with ESMTPSA id z3-20020a05622a124300b00316a384447fsm28890911qtx.16.2022.07.08.08.58.59 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 08 Jul 2022 08:58:59 -0700 (PDT) From: Greg Hogan Date: Fri, 8 Jul 2022 15:58:52 +0000 Message-Id: <50d9574341a83c7de317befb05a3d6e1da17183d.1657294938.git.code@greghogan.com> X-Mailer: git-send-email 2.36.1 In-Reply-To: <985ab84c845abce551a920787da67fc982a664bc.1657294938.git.code@greghogan.com> References: <985ab84c845abce551a920787da67fc982a664bc.1657294938.git.code@greghogan.com> MIME-Version: 1.0 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: , Errors-To: guix-patches-bounces+patchwork=mira.cbaines.net@gnu.org Sender: "Guix-patches" X-getmail-retrieved-from-mailbox: Patches * gnu/packages/llvm.scm (libomp-14): New variable. (libomp-13): Inherit from libomp-14. (libomp): Define as libomp-13. (make-clang-toolchain): Parameterize libomp. (clang-toolchain-14): Use libomp-14. --- gnu/packages/llvm.scm | 109 +++++++++++++++++++++++++++--------------- 1 file changed, 70 insertions(+), 39 deletions(-) diff --git a/gnu/packages/llvm.scm b/gnu/packages/llvm.scm index 67ca5ab5ea..5a2f411eb2 100644 --- a/gnu/packages/llvm.scm +++ b/gnu/packages/llvm.scm @@ -485,7 +485,7 @@ (define (clang-properties version) "znver3") '()))))) -(define (make-clang-toolchain clang) +(define* (make-clang-toolchain clang #:optional (libomp libomp-13)) (package (name (string-append (package-name clang) "-toolchain")) (version (package-version clang)) @@ -660,8 +660,50 @@ (define-public clang-14 (lambda _ (chdir "clang")))))))))) +(define-public libomp-14 + (package + (name "libomp") + (version "14.0.6") + (source (origin + (method url-fetch) + (uri (llvm-uri "openmp" version)) + (sha256 + (base32 + "07zby3gwy5c8jssabrhjk3nsxlwipnm6sk4dsvck1l5d0br1ywsg")) + (file-name (string-append "libomp-" version ".tar.xz")))) + (build-system cmake-build-system) + ;; XXX: Note this gets built with GCC because building with Clang itself + ;; fails (missing , even when libcxx is added as an input.) + (arguments + (list + #:configure-flags #~(list "-DLIBOMP_USE_HWLOC=ON" + "-DOPENMP_TEST_C_COMPILER=clang" + "-DOPENMP_TEST_CXX_COMPILER=clang++") + #:test-target "check-libomp" + #:phases + #~(modify-phases %standard-phases + (add-after 'unpack 'chdir-to-source-and-install-license + (lambda _ + (chdir #$(string-append "../openmp-" version ".src")) + (install-file "LICENSE.TXT" + (string-append #$output "/share/doc"))))))) + (native-inputs + (list clang-14 llvm-14 perl pkg-config python)) + (inputs + (list `(,hwloc "lib"))) + (home-page "https://openmp.llvm.org") + (synopsis "OpenMP run-time support library") + (description + "This package provides the run-time support library developed by the LLVM +project for the OpenMP multi-theaded programming extension. This package +notably provides @file{libgomp.so}, which is has a binary interface compatible +with that of libgomp, the GNU Offloading and Multi Processing Library.") + (properties `((release-monitoring-url . ,%llvm-release-monitoring-url) + (upstream-name . "openmp"))) + (license license:expat))) + (define-public clang-toolchain-14 - (make-clang-toolchain clang-14)) + (make-clang-toolchain clang-14 libomp-14)) (define-public llvm-13 (package @@ -699,6 +741,31 @@ (define-public clang-13 (base32 "1l4jjdqfl9hrh0fwzv27hc263zc6x61h09vs4ni3yla8i1cwhayc"))))) +(define-public libomp-13 + (package + (inherit libomp-14) + (version "13.0.1") + (source (origin + (method url-fetch) + (uri (llvm-uri "openmp" version)) + (sha256 + (base32 + "0kvbr4j6ldpssiv7chgqra5y77n7jwbyxlwcl7z32v31f49jcybb")) + (file-name (string-append "libomp-" version ".tar.xz")))) + (arguments + '(#:configure-flags '("-DLIBOMP_USE_HWLOC=ON" + "-DOPENMP_TEST_C_COMPILER=clang" + "-DOPENMP_TEST_CXX_COMPILER=clang++" + + ;; Work around faulty target detection, fixed in 14: + ;; https://github.com/llvm/llvm-project/issues/52910 + "-DLIBOMPTARGET_BUILD_AMDGCN_BCLIB=OFF") + #:test-target "check-libomp")) + (native-inputs + (modify-inputs (package-native-inputs libomp-14) + (replace "clang" clang-13) + (replace "llvm" llvm-13))))) + (define-public clang-toolchain-13 (make-clang-toolchain clang-13)) @@ -1515,43 +1582,7 @@ (define-public libclc ;; Apache license 2.0 with LLVM exception (license license:asl2.0))) -(define-public libomp - (package - (name "libomp") - (version "13.0.1") - (source (origin - (method url-fetch) - (uri (llvm-uri "openmp" version)) - (sha256 - (base32 - "0kvbr4j6ldpssiv7chgqra5y77n7jwbyxlwcl7z32v31f49jcybb")) - (file-name (string-append "libomp-" version ".tar.xz")))) - (build-system cmake-build-system) - ;; XXX: Note this gets built with GCC because building with Clang itself - ;; fails (missing , even when libcxx is added as an input.) - (arguments - '(#:configure-flags '("-DLIBOMP_USE_HWLOC=ON" - "-DOPENMP_TEST_C_COMPILER=clang" - "-DOPENMP_TEST_CXX_COMPILER=clang++" - - ;; Work around faulty target detection, fixed in 14: - ;; https://github.com/llvm/llvm-project/issues/52910 - "-DLIBOMPTARGET_BUILD_AMDGCN_BCLIB=OFF") - #:test-target "check-libomp")) - (native-inputs - (list clang llvm perl pkg-config python)) - (inputs - (list `(,hwloc "lib"))) - (home-page "https://openmp.llvm.org") - (synopsis "OpenMP run-time support library") - (description - "This package provides the run-time support library developed by the LLVM -project for the OpenMP multi-theaded programming extension. This package -notably provides @file{libgomp.so}, which is has a binary interface compatible -with that of libgomp, the GNU Offloading and Multi Processing Library.") - (properties `((release-monitoring-url . ,%llvm-release-monitoring-url) - (upstream-name . "openmp"))) - (license license:expat))) +(define-public libomp libomp-13) (define-public python-llvmlite (package