Package: guix-patches;
Reported by: Josselin Poiret <dev <at> jpoiret.xyz>
Date: Mon, 22 May 2023 09:01:02 UTC
Severity: normal
Tags: moreinfo, patch
Merged with 51770
Done: Josselin Poiret <dev <at> jpoiret.xyz>
Bug is archived. No further changes may be made.
View this message in rfc822 format
From: Josselin Poiret <dev <at> jpoiret.xyz> To: 63641 <at> debbugs.gnu.org Subject: [bug#63641] [PATCH 5/8] gnu: Add libc-for-target and glibc/hurd. Date: Mon, 22 May 2023 11:37:00 +0200
[Message part 1 (text/plain, inline)]
Hum, seems I forgot to add the corresponding patches. Will send a partial v2 of this one, my bad. Josselin Poiret <dev <at> jpoiret.xyz> writes: > From: Josselin Poiret <dev <at> jpoiret.xyz> > > * gnu/packages/base.scm (glibc/hurd, libc-for-target): New variables. > (glibc/hurd-headers): Use glibc/hurd. > * gnu/packages/commencement.scm (glibc-final-with-bootstrap-bash, > glibc-final): Use libc-for-target. > * gnu/packages/cross-base.scm (cross-libc/deprecated, cross-libc*): Use > libc-for-target. > --- > gnu/packages/base.scm | 38 ++++++++++++++++++-- > gnu/packages/commencement.scm | 66 +++++++++++++++++------------------ > gnu/packages/cross-base.scm | 4 +-- > 3 files changed, 70 insertions(+), 38 deletions(-) > > diff --git a/gnu/packages/base.scm b/gnu/packages/base.scm > index f944ab5d47..59c9632551 100644 > --- a/gnu/packages/base.scm > +++ b/gnu/packages/base.scm > @@ -75,6 +75,7 @@ (define-module (gnu packages base) > #:use-module (srfi srfi-1) > #:use-module (srfi srfi-26) > #:export (glibc > + libc-for-target > make-ld-wrapper > libiconv-if-needed)) > > @@ -1415,20 +1416,42 @@ (define-public which > command.") > (license gpl3+))) ; some files are under GPLv2+ > > +(define-public glibc/hurd > + (package/inherit glibc > + (name "glibc-hurd") > + (version "2.37") > + (source (origin > + (method url-fetch) > + (uri (string-append "mirror://gnu/glibc/glibc-" version ".tar.xz")) > + (sha256 > + (base32 > + "0hqsp4dzrjx0iga6jv0magjw26dh82pxlmk8yis5v0d127qyymr2")) > + (patches (search-patches "glibc-ldd-powerpc.patch" > + "glibc-2.37-ldd-x86_64.patch" > + "glibc-dl-cache.patch" > + "glibc-2.37-versioned-locpath.patch" > + "glibc-reinstate-prlimit64-fallback.patch" > + "glibc-supported-locales.patch" > + "glibc-2.37-hurd-clock_t_centiseconds.patch" > + "glibc-2.37-hurd-local-clock_gettime_MONOTONIC.patch" > + "glibc-hurd-mach-print.patch" > + "glibc-hurd-gettyent.patch")))) > + (supported-systems %hurd-systems))) > + > (define-public glibc/hurd-headers > - (package (inherit glibc) > + (package/inherit glibc/hurd > (name "glibc-hurd-headers") > (outputs '("out")) > (propagated-inputs (list gnumach-headers hurd-headers)) > (native-inputs > - (modify-inputs (package-native-inputs glibc) > + (modify-inputs (package-native-inputs glibc/hurd) > (prepend (if (%current-target-system) > (let* ((cross-base (resolve-interface '(gnu packages cross-base))) > (cross-mig (module-ref cross-base 'cross-mig))) > (cross-mig (%current-target-system))) > mig)))) > (arguments > - (substitute-keyword-arguments (package-arguments glibc) > + (substitute-keyword-arguments (package-arguments glibc/hurd) > ;; We just pass the flags really needed to build the headers. > ((#:configure-flags flags) > `(list "--enable-add-ons" > @@ -1449,6 +1472,15 @@ (define-public glibc/hurd-headers > (delete 'build))))) ; nothing to build > (supported-systems %hurd-systems))) > > +(define* (libc-for-target #:optional > + (target (or (%current-target-system) > + (%current-system)))) > + (match target > + ((? target-hurd?) > + glibc/hurd) > + (_ > + glibc))) > + > (define-public tzdata > (package > (name "tzdata") > diff --git a/gnu/packages/commencement.scm b/gnu/packages/commencement.scm > index ab07fb37ab..a24c60ebf8 100644 > --- a/gnu/packages/commencement.scm > +++ b/gnu/packages/commencement.scm > @@ -2816,13 +2816,13 @@ (define (%boot1-inputs) > ("binutils-cross" ,binutils-boot0) > ,@(alist-delete "binutils" (%boot0-inputs)))) > > -(define glibc-final-with-bootstrap-bash > +(define/system-dependent glibc-final-with-bootstrap-bash > ;; The final libc, "cross-built". If everything went well, the resulting > ;; store path has no dependencies. Actually, the really-final libc is > ;; built just below; the only difference is that this one uses the > ;; bootstrap Bash. > (package > - (inherit glibc) > + (inherit (libc-for-target)) > (name "glibc-intermediate") > (outputs (delete "debug" (package-outputs glibc))) > (source (bootstrap-origin (package-source glibc))) > @@ -2991,39 +2991,39 @@ (define gettext-boot0 > (("^PROGRAMS =.*$") > "PROGRAMS =\n"))))))))) > > -(define glibc-final > +(define/system-dependent glibc-final > ;; The final glibc, which embeds the statically-linked Bash built above. > ;; Use 'package/inherit' so we get the 'replacement' of 'glibc', if any. > - (package/inherit > - glibc > - (name "glibc") > - (source (bootstrap-origin (package-source glibc))) > - (inputs `(("static-bash" ,static-bash-for-glibc) > - ,@(alist-delete > - "static-bash" > - (package-inputs glibc-final-with-bootstrap-bash)))) > - > - ;; This time we need 'msgfmt' to install all the libc.mo files. > - (native-inputs `(,@(package-native-inputs glibc-final-with-bootstrap-bash) > - ("gettext" ,gettext-boot0))) > - > - (propagated-inputs > - (package-propagated-inputs glibc-final-with-bootstrap-bash)) > - > - ;; The final libc only refers to itself, but the 'debug' output contains > - ;; references to GCC-BOOT0 and to the Linux headers. XXX: Would be great > - ;; if 'allowed-references' were per-output. > - (arguments > - `(#:allowed-references > - (,(gexp-input gcc-boot0 "lib") > - ,(kernel-headers-boot0) > - ,static-bash-for-glibc > - ,@(if (hurd-system?) > - `(,gnumach-headers-boot0 > - ,hurd-headers-boot0) > - '()) > - ,@(package-outputs glibc-final-with-bootstrap-bash)) > - ,@(package-arguments glibc-final-with-bootstrap-bash))))) > + (let ((libc (libc-for-target))) > + (package/inherit libc > + (name "glibc") > + (source (bootstrap-origin (package-source glibc))) > + (inputs `(("static-bash" ,static-bash-for-glibc) > + ,@(alist-delete > + "static-bash" > + (package-inputs glibc-final-with-bootstrap-bash)))) > + > + ;; This time we need 'msgfmt' to install all the libc.mo files. > + (native-inputs `(,@(package-native-inputs glibc-final-with-bootstrap-bash) > + ("gettext" ,gettext-boot0))) > + > + (propagated-inputs > + (package-propagated-inputs glibc-final-with-bootstrap-bash)) > + > + ;; The final libc only refers to itself, but the 'debug' output contains > + ;; references to GCC-BOOT0 and to the Linux headers. XXX: Would be great > + ;; if 'allowed-references' were per-output. > + (arguments > + `(#:allowed-references > + (,(gexp-input gcc-boot0 "lib") > + ,(kernel-headers-boot0) > + ,static-bash-for-glibc > + ,@(if (hurd-system?) > + `(,gnumach-headers-boot0 > + ,hurd-headers-boot0) > + '()) > + ,@(package-outputs glibc-final-with-bootstrap-bash)) > + ,@(package-arguments glibc-final-with-bootstrap-bash)))))) > > (define/system-dependent gcc-boot0-wrapped > ;; Make the cross-tools GCC-BOOT0 and BINUTILS-BOOT0 available under the > diff --git a/gnu/packages/cross-base.scm b/gnu/packages/cross-base.scm > index 01c2295853..b2823c73c5 100644 > --- a/gnu/packages/cross-base.scm > +++ b/gnu/packages/cross-base.scm > @@ -577,7 +577,7 @@ (define* (cross-libc . args) > > (define* (cross-libc/deprecated target > #:optional > - (libc glibc) > + (libc (libc-for-target target)) > (xgcc (cross-gcc target)) > (xbinutils (cross-binutils target)) > (xheaders (cross-kernel-headers target))) > @@ -590,7 +590,7 @@ (define* (cross-libc/deprecated target > > (define* (cross-libc* target > #:key > - (libc glibc) > + (libc (libc-for-target target)) > (xgcc (cross-gcc target)) > (xbinutils (cross-binutils target)) > (xheaders (cross-kernel-headers target))) > -- > 2.40.1 > -- Josselin Poiret
[signature.asc (application/pgp-signature, inline)]
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.