Subject: [bug#35611] [PATCH 1/2] gnu: cross-base: Allow using non-default glibc.

From: Ludovic Courtès <[email-masked]>
Date: Sun, 12 May 2019 23:40:23 +0200

Hi Carl,

Carl Dong <[email-masked]> skribis:

> * gnu/packages/cross-base.scm (cross-libc, native-libc, cross-newlib?):
>   Add xlibc optional argument to specify using a non-default glibc
>   package.

[...]

>  (define* (cross-libc target
>                       #:optional
> +                     (xlibc glibc)
>                       (xgcc (cross-gcc target))
>                       (xbinutils (cross-binutils target))
>                       (xheaders (cross-kernel-headers target)))
> -  "Return a libc cross-built for TARGET, a GNU triplet.  Use XGCC and
> -XBINUTILS and the cross tool chain."
> -  (if (cross-newlib? target)
> -      (native-libc target)
> -      (let ((libc glibc))
> +  "Return XLIBC cross-built for TARGET, a GNU triplet. Use XGCC and XBINUTILS
> +and the cross tool chain."

Really a detail, but for clarity I would change “xlibc” to “libc”,
because this argument denotes a C library, not a cross-compiled C
library.

Ditto in other places.

You can send an updated patch or I can make this change on your behalf
if you prefer, let me know!

> -(define (native-libc target)
> +(define* (native-libc target
> +                     #:optional
> +                     (xlibc glibc))
>    (if (target-mingw? target)
>        mingw-w64
> -      glibc))
> +      xlibc))

This procedure is starting to look weird.  :-)  I wonder if we should
inline it at the call sites, but we can look into it later.

Thanks,
Ludo’.