summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPhilip McGrath <philip@philipmcgrath.com>2023-02-03 20:14:12 -0500
committerLudovic Courtès <ludo@gnu.org>2023-02-11 00:09:40 +0100
commita89aa4523befd8c30d9f13800b4833abbc911ba1 (patch)
treefd1f0c52d1450e08678fbb975806a2bbb51b31e3
parentfb2bf136f0e27b2b6fd48fb3bb38c121f81af7f9 (diff)
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>
-rw-r--r--gnu/packages/chez.scm9
-rw-r--r--guix/build-system/meson.scm13
-rw-r--r--guix/utils.scm8
3 files changed, 15 insertions, 15 deletions
diff --git a/gnu/packages/chez.scm b/gnu/packages/chez.scm
index 0d22e2e20f..1f178d2c72 100644
--- a/gnu/packages/chez.scm
+++ b/gnu/packages/chez.scm
@@ -4,7 +4,7 @@
;;; Copyright © 2017, 2019 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2019 Brett Gilio <brettg@gnu.org>
;;; 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.
;;;
@@ -251,10 +251,9 @@ provided and is #f."
(if (target-64bit? system)
"64"
"32")
- ;; missing (guix utils) predicate target-little-endian?
- (if (target-ppc32? system)
- "b"
- "l")))
+ (if (target-little-endian? system)
+ "l"
+ "b")))
(define* (racket-cs-native-supported-system? #:optional
(system
diff --git a/guix/build-system/meson.scm b/guix/build-system/meson.scm
index b0bf8cb6e6..7d413a991d 100644
--- a/guix/build-system/meson.scm
+++ b/guix/build-system/meson.scm
@@ -74,16 +74,9 @@ for TRIPLET."
;; for selecting optimisations, so set it to something
;; arbitrary.
(#t "strawberries")))
- (endian . ,(cond ((string-prefix? "powerpc64le-" triplet) "little")
- ((string-prefix? "mips64el-" triplet) "little")
- ((target-x86-32? triplet) "little")
- ((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"))))))
+ (endian . ,(if (target-little-endian? triplet)
+ "little"
+ "big"))))
(define (make-binaries-alist triplet)
"Make an associatoin list describing what should go into
diff --git a/guix/utils.scm b/guix/utils.scm
index aca0af4e4b..774b80cd25 100644
--- a/guix/utils.scm
+++ b/guix/utils.scm
@@ -16,6 +16,7 @@
;;; Copyright © 2022 Taiju HIGASHI <higashi@taiju.info>
;;; Copyright © 2022 Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
;;; Copyright © 2022 Antero Mejr <antero@mailbox.org>
+;;; Copyright © 2023 Philip McGrath <philip@philipmcgrath.com>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -104,6 +105,7 @@
target-riscv64?
target-mips64el?
target-64bit?
+ target-little-endian?
ar-for-target
as-for-target
cc-for-target
@@ -744,6 +746,12 @@ architecture (x86_64)?"
(any (cut string-prefix? <> system) '("x86_64" "aarch64" "mips64"
"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)))
(if target
(string-append target "-ar")