Subject: [bug#70985] [PATCH v2 5/6] gnu: rust: Guard against cross-libc returning #f.

From: Christopher Baines <[email-masked]>
Date: Fri, 5 Jul 2024 18:06:02 +0200

* gnu/packages/rust.scm (make-rust-sysroot/implementation): Guard against
cross-libc returning #f.

Change-Id: Ia0d5c889c6f5cd3478ad985c79feb9ba1c472c29
---
 gnu/packages/rust.scm | 10 ++++++++--
 1 file changed, 8 insertions(+), 2 deletions(-)

diff --git a/gnu/packages/rust.scm b/gnu/packages/rust.scm
index a385344473..f1de34b277 100644
--- a/gnu/packages/rust.scm
+++ b/gnu/packages/rust.scm
@@ -73,7 +73,9 @@ (define-module (gnu packages rust)
   #:use-module (ice-9 match)
   #:use-module (ice-9 optargs)
   #:use-module (srfi srfi-1)
-  #:use-module (srfi srfi-26))
+  #:use-module (srfi srfi-26)
+  #:use-module (srfi srfi-34)
+  #:use-module (srfi srfi-35))
 
 ;; This is the hash for the empty file, and the reason it's relevant is not
 ;; the most obvious.
@@ -1464,7 +1466,11 @@ (define make-rust-sysroot/implementation
          (modify-inputs (package-native-inputs base-rust)
                         (prepend (cross-gcc target
                                             #:libc (cross-libc target))
-                                 (cross-libc target)
+                                 (or (cross-libc target) ; could be #f
+                                     (raise (condition
+                                             (&package-unsupported-target-error
+                                              (package (libc-for-target target))
+                                              (target target)))))
                                  (cross-binutils target)))))
       (properties
        `((hidden? . #t)
-- 
2.45.2