mirror of
https://git.in.rschanz.org/ryan77627/guix.git
synced 2025-01-12 14:16:55 -05:00
utils: Add target-little-endian?.
* guix/utils.scm (target-little-endian?): New function. * guix/build-system/meson.scm (make-machine-alist): Use it. * gnu/packages/chez.scm (nix-system->pbarch-machine-type): Likewise. Signed-off-by: Ludovic Courtès <ludo@gnu.org>
This commit is contained in:
parent
fb2bf136f0
commit
a89aa4523b
3 changed files with 15 additions and 15 deletions
|
@ -4,7 +4,7 @@
|
||||||
;;; Copyright © 2017, 2019 Tobias Geerinckx-Rice <me@tobias.gr>
|
;;; Copyright © 2017, 2019 Tobias Geerinckx-Rice <me@tobias.gr>
|
||||||
;;; Copyright © 2019 Brett Gilio <brettg@gnu.org>
|
;;; Copyright © 2019 Brett Gilio <brettg@gnu.org>
|
||||||
;;; Copyright © 2020 Brendan Tildesley <mail@brendan.scot>
|
;;; Copyright © 2020 Brendan Tildesley <mail@brendan.scot>
|
||||||
;;; Copyright © 2021, 2022 Philip McGrath <philip@philipmcgrath.com>
|
;;; Copyright © 2021, 2022, 2023 Philip McGrath <philip@philipmcgrath.com>
|
||||||
;;;
|
;;;
|
||||||
;;; This file is part of GNU Guix.
|
;;; This file is part of GNU Guix.
|
||||||
;;;
|
;;;
|
||||||
|
@ -251,10 +251,9 @@ (define* (nix-system->pbarch-machine-type #:optional
|
||||||
(if (target-64bit? system)
|
(if (target-64bit? system)
|
||||||
"64"
|
"64"
|
||||||
"32")
|
"32")
|
||||||
;; missing (guix utils) predicate target-little-endian?
|
(if (target-little-endian? system)
|
||||||
(if (target-ppc32? system)
|
"l"
|
||||||
"b"
|
"b")))
|
||||||
"l")))
|
|
||||||
|
|
||||||
(define* (racket-cs-native-supported-system? #:optional
|
(define* (racket-cs-native-supported-system? #:optional
|
||||||
(system
|
(system
|
||||||
|
|
|
@ -74,16 +74,9 @@ (define (make-machine-alist triplet)
|
||||||
;; for selecting optimisations, so set it to something
|
;; for selecting optimisations, so set it to something
|
||||||
;; arbitrary.
|
;; arbitrary.
|
||||||
(#t "strawberries")))
|
(#t "strawberries")))
|
||||||
(endian . ,(cond ((string-prefix? "powerpc64le-" triplet) "little")
|
(endian . ,(if (target-little-endian? triplet)
|
||||||
((string-prefix? "mips64el-" triplet) "little")
|
"little"
|
||||||
((target-x86-32? triplet) "little")
|
"big"))))
|
||||||
((target-x86-64? triplet) "little")
|
|
||||||
;; At least in Guix. Aarch64 and 32-bit arm
|
|
||||||
;; have a big-endian mode as well.
|
|
||||||
((target-arm? triplet) "little")
|
|
||||||
((target-ppc32? triplet) "big")
|
|
||||||
((target-riscv64? triplet) "little")
|
|
||||||
(#t (error "meson: unknown architecture"))))))
|
|
||||||
|
|
||||||
(define (make-binaries-alist triplet)
|
(define (make-binaries-alist triplet)
|
||||||
"Make an associatoin list describing what should go into
|
"Make an associatoin list describing what should go into
|
||||||
|
|
|
@ -16,6 +16,7 @@
|
||||||
;;; Copyright © 2022 Taiju HIGASHI <higashi@taiju.info>
|
;;; Copyright © 2022 Taiju HIGASHI <higashi@taiju.info>
|
||||||
;;; Copyright © 2022 Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
|
;;; Copyright © 2022 Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
|
||||||
;;; Copyright © 2022 Antero Mejr <antero@mailbox.org>
|
;;; Copyright © 2022 Antero Mejr <antero@mailbox.org>
|
||||||
|
;;; Copyright © 2023 Philip McGrath <philip@philipmcgrath.com>
|
||||||
;;;
|
;;;
|
||||||
;;; This file is part of GNU Guix.
|
;;; This file is part of GNU Guix.
|
||||||
;;;
|
;;;
|
||||||
|
@ -104,6 +105,7 @@ (define-module (guix utils)
|
||||||
target-riscv64?
|
target-riscv64?
|
||||||
target-mips64el?
|
target-mips64el?
|
||||||
target-64bit?
|
target-64bit?
|
||||||
|
target-little-endian?
|
||||||
ar-for-target
|
ar-for-target
|
||||||
as-for-target
|
as-for-target
|
||||||
cc-for-target
|
cc-for-target
|
||||||
|
@ -744,6 +746,12 @@ (define* (target-64bit? #:optional (system (or (%current-target-system)
|
||||||
(any (cut string-prefix? <> system) '("x86_64" "aarch64" "mips64"
|
(any (cut string-prefix? <> system) '("x86_64" "aarch64" "mips64"
|
||||||
"powerpc64" "riscv64")))
|
"powerpc64" "riscv64")))
|
||||||
|
|
||||||
|
(define* (target-little-endian? #:optional (target (or (%current-target-system)
|
||||||
|
(%current-system))))
|
||||||
|
"Is the architecture of TARGET little-endian?"
|
||||||
|
;; At least in Guix. Aarch64 and 32-bit arm have a big-endian mode as well.
|
||||||
|
(not (target-ppc32? target)))
|
||||||
|
|
||||||
(define* (ar-for-target #:optional (target (%current-target-system)))
|
(define* (ar-for-target #:optional (target (%current-target-system)))
|
||||||
(if target
|
(if target
|
||||||
(string-append target "-ar")
|
(string-append target "-ar")
|
||||||
|
|
Loading…
Reference in a new issue