mirror of
https://git.in.rschanz.org/ryan77627/guix.git
synced 2024-12-25 05:48:07 -05:00
gnu: clang: Move compiler-cpu-architectures to llvm-meta.scm.
* gnu/packages/llvm.scm (clang-properties): Extract compiler-cpu-architectures and move ... * gnu/packages/llvm-meta.scm: ... to here. * gnu/packages/zig.scm (zig-0.9, zig-0.10)[properties]: Use clang-compiler-cpu-architectures. * gnu/local.mk (GNU_SYSTEM_MODULES): Register new file. Change-Id: Ie0bedbd6e2927eaa05024685cc66375ea278e4c2
This commit is contained in:
parent
bcf3f55be9
commit
a3d2dde5b0
4 changed files with 103 additions and 73 deletions
|
@ -425,6 +425,7 @@ GNU_SYSTEM_MODULES = \
|
||||||
%D%/packages/lisp-check.scm \
|
%D%/packages/lisp-check.scm \
|
||||||
%D%/packages/lisp-xyz.scm \
|
%D%/packages/lisp-xyz.scm \
|
||||||
%D%/packages/llvm.scm \
|
%D%/packages/llvm.scm \
|
||||||
|
%D%/packages/llvm-meta.scm \
|
||||||
%D%/packages/lout.scm \
|
%D%/packages/lout.scm \
|
||||||
%D%/packages/logging.scm \
|
%D%/packages/logging.scm \
|
||||||
%D%/packages/logo.scm \
|
%D%/packages/logo.scm \
|
||||||
|
|
94
gnu/packages/llvm-meta.scm
Normal file
94
gnu/packages/llvm-meta.scm
Normal file
|
@ -0,0 +1,94 @@
|
||||||
|
;;; GNU Guix --- Functional package management for GNU
|
||||||
|
;;; Copyright © 2021 Ludovic Courtès <ludo@gnu.org>
|
||||||
|
;;; Copyright © 2024 Efraim Flashner <efraim@flashner.co.il>
|
||||||
|
;;;
|
||||||
|
;;; This file is part of GNU Guix.
|
||||||
|
;;;
|
||||||
|
;;; GNU Guix is free software; you can redistribute it and/or modify it
|
||||||
|
;;; under the terms of the GNU General Public License as published by
|
||||||
|
;;; the Free Software Foundation; either version 3 of the License, or (at
|
||||||
|
;;; your option) any later version.
|
||||||
|
;;;
|
||||||
|
;;; GNU Guix is distributed in the hope that it will be useful, but
|
||||||
|
;;; WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
;;; GNU General Public License for more details.
|
||||||
|
;;;
|
||||||
|
;;; You should have received a copy of the GNU General Public License
|
||||||
|
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
|
(define-module (gnu packages llvm-meta)
|
||||||
|
#:use-module (guix utils)
|
||||||
|
#:export (clang-compiler-cpu-architectures))
|
||||||
|
|
||||||
|
(define (clang-compiler-cpu-architectures version)
|
||||||
|
"Return package properties for Clang VERSION."
|
||||||
|
`((compiler-cpu-architectures
|
||||||
|
;; These lists were obtained by running:
|
||||||
|
;;
|
||||||
|
;; guix shell clang -- llc -march=x86-64 -mattr=help
|
||||||
|
;;
|
||||||
|
;; and then filtering against clang/test/Misc/target-invalid-cpu-note.c
|
||||||
|
("powerpc64le"
|
||||||
|
,@(if (version>=? version "11.0")
|
||||||
|
'("power8" "power9" "power10" "powerpc64le")))
|
||||||
|
("x86_64"
|
||||||
|
,@(cond
|
||||||
|
((version>=? version "17.0")
|
||||||
|
'("nocona" "core2" "penryn" "bonnell" "atom" "silvermont" "slm"
|
||||||
|
"goldmont" "goldmont-plus" "tremont" "nehalem" "corei7" "westmere"
|
||||||
|
"sandybridge" "corei7-avx" "ivybridge" "core-avx-i" "haswell"
|
||||||
|
"core-avx2" "broadwell" "skylake" "skylake-avx512" "skx"
|
||||||
|
"cascadelake" "cooperlake" "cannonlake" "icelake-client"
|
||||||
|
"rocketlake" "icelake-server" "tigerlake" "sapphirerapids"
|
||||||
|
"alderlake" "raptorlake" "meteorlake" "sierraforest" "grandridge"
|
||||||
|
"graniterapids" "graniterapids-d" "emeraldrapids" "knl" "knm" "k8"
|
||||||
|
"athlon64" "athlon-fx" "opteron" "k8-sse3" "athlon64-sse3"
|
||||||
|
"opteron-sse3" "amdfam10" "barcelona" "btver1" "btver2" "bdver1"
|
||||||
|
"bdver2" "bdver3" "bdver4" "znver1" "znver2" "znver3" "znver4"
|
||||||
|
"x86-64" "x86-64-v2" "x86-64-v3" "x86-64-v4"))
|
||||||
|
((version>=? version "16.0")
|
||||||
|
'("nocona" "core2" "penryn" "bonnell" "atom" "silvermont" "slm"
|
||||||
|
"goldmont" "goldmont-plus" "tremont" "nehalem" "corei7" "westmere"
|
||||||
|
"sandybridge" "corei7-avx" "ivybridge" "core-avx-i" "haswell"
|
||||||
|
"core-avx2" "broadwell" "skylake" "skylake-avx512" "skx"
|
||||||
|
"cascadelake" "cooperlake" "cannonlake" "icelake-client"
|
||||||
|
"rocketlake" "icelake-server" "tigerlake" "sapphirerapids"
|
||||||
|
"alderlake" "raptorlake" "meteorlake" "sierraforest" "grandridge"
|
||||||
|
"graniterapids" "emeraldrapids" "knl" "knm" "k8" "athlon64"
|
||||||
|
"athlon-fx" "opteron" "k8-sse3" "athlon64-sse3" "opteron-sse3"
|
||||||
|
"amdfam10" "barcelona" "btver1" "btver2" "bdver1" "bdver2"
|
||||||
|
"bdver3" "bdver4" "znver1" "znver2" "znver3" "znver4" "x86-64"
|
||||||
|
"x86-64-v2" "x86-64-v3" "x86-64-v4"))
|
||||||
|
((version>=? version "15.0")
|
||||||
|
'("nocona" "core2" "penryn" "bonnell" "atom" "silvermont" "slm"
|
||||||
|
"goldmont" "goldmont-plus" "tremont" "nehalem" "corei7" "westmere"
|
||||||
|
"sandybridge" "corei7-avx" "ivybridge" "core-avx-i" "haswell"
|
||||||
|
"core-avx2" "broadwell" "skylake" "skylake-avx512" "skx"
|
||||||
|
"cascadelake" "cooperlake" "cannonlake" "icelake-client"
|
||||||
|
"rocketlake" "icelake-server" "tigerlake" "sapphirerapids"
|
||||||
|
"alderlake" "knl" "knm" "k8" "athlon64" "athlon-fx" "opteron"
|
||||||
|
"k8-sse3" "athlon64-sse3" "opteron-sse3" "amdfam10" "barcelona"
|
||||||
|
"btver1" "btver2" "bdver1" "bdver2" "bdver3" "bdver4" "znver1"
|
||||||
|
"znver2" "znver3" "x86-64" "x86-64-v2" "x86-64-v3" "x86-64-v4"))
|
||||||
|
((version>=? version "13.0")
|
||||||
|
'("nocona" "core2" "penryn" "bonnell" "atom" "silvermont" "slm"
|
||||||
|
"goldmont" "goldmont-plus" "tremont" "nehalem" "corei7" "westmere"
|
||||||
|
"sandybridge" "corei7-avx" "ivybridge" "core-avx-i" "haswell"
|
||||||
|
"core-avx2" "broadwell" "skylake" "skylake-avx512" "skx"
|
||||||
|
"cascadelake" "cooperlake" "cannonlake" "icelake-client"
|
||||||
|
"rocketlake" "icelake-server" "tigerlake" "sapphirerapids"
|
||||||
|
"alderlake" "knl" "knm" "k8" "athlon64" "athlon-fx" "opteron"
|
||||||
|
"k8-sse3" "athlon64-sse3" "opteron-sse3" "amdfam10" "barcelona"
|
||||||
|
"btver1" "btver2" "bdver1" "bdver2" "bdver3" "bdver4" "znver1"
|
||||||
|
"znver2" "znver3" "x86-64" "x86-64-v2" "x86-64-v3" "x86-64-v4"))
|
||||||
|
((version>=? version "9.0")
|
||||||
|
'("atom" "silvermont" "slm" "goldmont" "goldmont-plus" "tremont"
|
||||||
|
"nehalem" "corei7" "westmere" "sandybridge" "corei7-avx"
|
||||||
|
"ivybridge" "core-avx-i" "haswell" "core-avx2" "broadwell"
|
||||||
|
"skylake" "skylake-avx512" "skx" "cascadelake" "cooperlake"
|
||||||
|
"cannonlake" "icelake-client" "icelake-server" "knl" "knm" "k8"
|
||||||
|
"athlon64" "athlon-fx" "opteron" "k8-sse3" "athlon64-sse3"
|
||||||
|
"opteron-sse3" "amdfam10" "barcelona" "btver1" "btver2" "bdver1"
|
||||||
|
"bdver2" "bdver3" "bdver4" "znver1" "znver2" "x86-64"))
|
||||||
|
(else '()))))))
|
|
@ -7,7 +7,7 @@
|
||||||
;;; Copyright © 2017 Roel Janssen <roel@gnu.org>
|
;;; Copyright © 2017 Roel Janssen <roel@gnu.org>
|
||||||
;;; Copyright © 2018–2022 Marius Bakke <mbakke@fastmail.com>
|
;;; Copyright © 2018–2022 Marius Bakke <mbakke@fastmail.com>
|
||||||
;;; Copyright © 2018, 2019 Tobias Geerinckx-Rice <me@tobias.gr>
|
;;; Copyright © 2018, 2019 Tobias Geerinckx-Rice <me@tobias.gr>
|
||||||
;;; Copyright © 2018, 2021-2024 Efraim Flashner <efraim@flashner.co.il>
|
;;; Copyright © 2018, 2021-2023 Efraim Flashner <efraim@flashner.co.il>
|
||||||
;;; Copyright © 2018 Tim Gesthuizen <tim.gesthuizen@yahoo.de>
|
;;; Copyright © 2018 Tim Gesthuizen <tim.gesthuizen@yahoo.de>
|
||||||
;;; Copyright © 2018 Pierre Neidhardt <mail@ambrevar.xyz>
|
;;; Copyright © 2018 Pierre Neidhardt <mail@ambrevar.xyz>
|
||||||
;;; Copyright © 2019 Rutger Helling <rhelling@mykolab.com>
|
;;; Copyright © 2019 Rutger Helling <rhelling@mykolab.com>
|
||||||
|
@ -65,6 +65,7 @@ (define-module (gnu packages llvm)
|
||||||
#:use-module (gnu packages compression)
|
#:use-module (gnu packages compression)
|
||||||
#:use-module (gnu packages libedit)
|
#:use-module (gnu packages libedit)
|
||||||
#:use-module (gnu packages libffi)
|
#:use-module (gnu packages libffi)
|
||||||
|
#:use-module (gnu packages llvm-meta)
|
||||||
#:use-module (gnu packages lua)
|
#:use-module (gnu packages lua)
|
||||||
#:use-module (gnu packages mpi)
|
#:use-module (gnu packages mpi)
|
||||||
#:use-module (gnu packages ncurses)
|
#:use-module (gnu packages ncurses)
|
||||||
|
@ -79,8 +80,7 @@ (define-module (gnu packages llvm)
|
||||||
#:use-module (srfi srfi-1)
|
#:use-module (srfi srfi-1)
|
||||||
#:use-module (ice-9 match)
|
#:use-module (ice-9 match)
|
||||||
#:export (make-lld-wrapper
|
#:export (make-lld-wrapper
|
||||||
system->llvm-target
|
system->llvm-target))
|
||||||
clang-properties))
|
|
||||||
|
|
||||||
(define* (system->llvm-target #:optional
|
(define* (system->llvm-target #:optional
|
||||||
(system (or (and=> (%current-target-system)
|
(system (or (and=> (%current-target-system)
|
||||||
|
@ -481,73 +481,7 @@ (define* (clang-from-llvm llvm clang-runtime
|
||||||
|
|
||||||
(define (clang-properties version)
|
(define (clang-properties version)
|
||||||
"Return package properties for Clang VERSION."
|
"Return package properties for Clang VERSION."
|
||||||
`((compiler-cpu-architectures
|
`((clang-compiler-cpu-architectures version)))
|
||||||
("powerpc64le"
|
|
||||||
;; This list was obtained from clang/test/Misc/target-invalid-cpu-note.c
|
|
||||||
;; and then trimmed down.
|
|
||||||
,@(if (version>=? version "11.0")
|
|
||||||
'("power8" "power9" "power10" "powerpc64le")))
|
|
||||||
("x86_64"
|
|
||||||
;; This list was obtained from clang/test/Misc/target-invalid-cpu-note.c
|
|
||||||
,@(cond
|
|
||||||
((version>=? version "17.0")
|
|
||||||
'("nocona" "core2" "penryn" "bonnell" "atom" "silvermont" "slm"
|
|
||||||
"goldmont" "goldmont-plus" "tremont" "nehalem" "corei7" "westmere"
|
|
||||||
"sandybridge" "corei7-avx" "ivybridge" "core-avx-i" "haswell"
|
|
||||||
"core-avx2" "broadwell" "skylake" "skylake-avx512" "skx"
|
|
||||||
"cascadelake" "cooperlake" "cannonlake" "icelake-client"
|
|
||||||
"rocketlake" "icelake-server" "tigerlake" "sapphirerapids"
|
|
||||||
"alderlake" "raptorlake" "meteorlake" "sierraforest" "grandridge"
|
|
||||||
"graniterapids" "graniterapids-d" "emeraldrapids" "knl" "knm" "k8"
|
|
||||||
"athlon64" "athlon-fx" "opteron" "k8-sse3" "athlon64-sse3"
|
|
||||||
"opteron-sse3" "amdfam10" "barcelona" "btver1" "btver2" "bdver1"
|
|
||||||
"bdver2" "bdver3" "bdver4" "znver1" "znver2" "znver3" "znver4"
|
|
||||||
"x86-64" "x86-64-v2" "x86-64-v3" "x86-64-v4"))
|
|
||||||
((version>=? version "16.0")
|
|
||||||
'("nocona" "core2" "penryn" "bonnell" "atom" "silvermont" "slm"
|
|
||||||
"goldmont" "goldmont-plus" "tremont" "nehalem" "corei7" "westmere"
|
|
||||||
"sandybridge" "corei7-avx" "ivybridge" "core-avx-i" "haswell"
|
|
||||||
"core-avx2" "broadwell" "skylake" "skylake-avx512" "skx"
|
|
||||||
"cascadelake" "cooperlake" "cannonlake" "icelake-client"
|
|
||||||
"rocketlake" "icelake-server" "tigerlake" "sapphirerapids"
|
|
||||||
"alderlake" "raptorlake" "meteorlake" "sierraforest" "grandridge"
|
|
||||||
"graniterapids" "emeraldrapids" "knl" "knm" "k8" "athlon64"
|
|
||||||
"athlon-fx" "opteron" "k8-sse3" "athlon64-sse3" "opteron-sse3"
|
|
||||||
"amdfam10" "barcelona" "btver1" "btver2" "bdver1" "bdver2"
|
|
||||||
"bdver3" "bdver4" "znver1" "znver2" "znver3" "znver4" "x86-64"
|
|
||||||
"x86-64-v2" "x86-64-v3" "x86-64-v4"))
|
|
||||||
((version>=? version "15.0")
|
|
||||||
'("nocona" "core2" "penryn" "bonnell" "atom" "silvermont" "slm"
|
|
||||||
"goldmont" "goldmont-plus" "tremont" "nehalem" "corei7" "westmere"
|
|
||||||
"sandybridge" "corei7-avx" "ivybridge" "core-avx-i" "haswell"
|
|
||||||
"core-avx2" "broadwell" "skylake" "skylake-avx512" "skx"
|
|
||||||
"cascadelake" "cooperlake" "cannonlake" "icelake-client"
|
|
||||||
"rocketlake" "icelake-server" "tigerlake" "sapphirerapids"
|
|
||||||
"alderlake" "knl" "knm" "k8" "athlon64" "athlon-fx" "opteron"
|
|
||||||
"k8-sse3" "athlon64-sse3" "opteron-sse3" "amdfam10" "barcelona"
|
|
||||||
"btver1" "btver2" "bdver1" "bdver2" "bdver3" "bdver4" "znver1"
|
|
||||||
"znver2" "znver3" "x86-64" "x86-64-v2" "x86-64-v3" "x86-64-v4"))
|
|
||||||
((version>=? version "13.0")
|
|
||||||
'("nocona" "core2" "penryn" "bonnell" "atom" "silvermont" "slm"
|
|
||||||
"goldmont" "goldmont-plus" "tremont" "nehalem" "corei7" "westmere"
|
|
||||||
"sandybridge" "corei7-avx" "ivybridge" "core-avx-i" "haswell"
|
|
||||||
"core-avx2" "broadwell" "skylake" "skylake-avx512" "skx"
|
|
||||||
"cascadelake" "cooperlake" "cannonlake" "icelake-client"
|
|
||||||
"rocketlake" "icelake-server" "tigerlake" "sapphirerapids"
|
|
||||||
"alderlake" "knl" "knm" "k8" "athlon64" "athlon-fx" "opteron"
|
|
||||||
"k8-sse3" "athlon64-sse3" "opteron-sse3" "amdfam10" "barcelona"
|
|
||||||
"btver1" "btver2" "bdver1" "bdver2" "bdver3" "bdver4" "znver1"
|
|
||||||
"znver2" "znver3" "x86-64" "x86-64-v2" "x86-64-v3" "x86-64-v4"))
|
|
||||||
((version>=? version "9.0")
|
|
||||||
'("atom" "silvermont" "slm" "goldmont" "goldmont-plus" "tremont"
|
|
||||||
"nehalem" "corei7" "westmere" "sandybridge" "corei7-avx"
|
|
||||||
"ivybridge" "core-avx-i" "haswell" "core-avx2" "broadwell"
|
|
||||||
"skylake" "skylake-avx512" "skx" "cascadelake" "cooperlake"
|
|
||||||
"cannonlake" "icelake-client" "icelake-server" "knl" "knm" "k8"
|
|
||||||
"athlon64" "athlon-fx" "opteron" "k8-sse3" "athlon64-sse3"
|
|
||||||
"opteron-sse3" "amdfam10" "barcelona" "btver1" "btver2" "bdver1"
|
|
||||||
"bdver2" "bdver3" "bdver4" "znver1" "znver2" "x86-64"))
|
|
||||||
(else '()))))))
|
|
||||||
|
|
||||||
(define-public (make-clang-toolchain clang libomp)
|
(define-public (make-clang-toolchain clang libomp)
|
||||||
(package
|
(package
|
||||||
|
|
|
@ -28,7 +28,8 @@ (define-module (gnu packages zig)
|
||||||
#:use-module (guix build-system cmake)
|
#:use-module (guix build-system cmake)
|
||||||
#:use-module (gnu packages)
|
#:use-module (gnu packages)
|
||||||
#:use-module (gnu packages compression)
|
#:use-module (gnu packages compression)
|
||||||
#:use-module (gnu packages llvm))
|
#:use-module (gnu packages llvm)
|
||||||
|
#:use-module (gnu packages llvm-meta))
|
||||||
|
|
||||||
(define-public zig-0.9
|
(define-public zig-0.9
|
||||||
(package
|
(package
|
||||||
|
@ -130,7 +131,7 @@ (define-public zig-0.9
|
||||||
(supported-systems %64bit-supported-systems)
|
(supported-systems %64bit-supported-systems)
|
||||||
;; Stage3 can take a lot of time and isn't verbose.
|
;; Stage3 can take a lot of time and isn't verbose.
|
||||||
(properties `((max-silent-time . 9600)
|
(properties `((max-silent-time . 9600)
|
||||||
,@(clang-properties "13")))
|
,@(clang-compiler-cpu-architectures "13")))
|
||||||
(license license:expat)))
|
(license license:expat)))
|
||||||
|
|
||||||
(define-public zig-0.10
|
(define-public zig-0.10
|
||||||
|
@ -195,6 +196,6 @@ (define-public zig-0.10
|
||||||
(modify-inputs (package-native-inputs zig-0.9)
|
(modify-inputs (package-native-inputs zig-0.9)
|
||||||
(replace "llvm" llvm-15)))
|
(replace "llvm" llvm-15)))
|
||||||
(properties `((max-silent-time . 9600)
|
(properties `((max-silent-time . 9600)
|
||||||
,@(clang-properties "15")))))
|
,@(clang-compiler-cpu-architectures "15")))))
|
||||||
|
|
||||||
(define-public zig zig-0.10)
|
(define-public zig zig-0.10)
|
||||||
|
|
Loading…
Reference in a new issue