diff options
author | Ricardo Wurmus <rekado@elephly.net> | 2022-02-05 00:56:54 +0100 |
---|---|---|
committer | Ricardo Wurmus <rekado@elephly.net> | 2022-02-07 14:02:26 +0100 |
commit | defa85b26537a3cc20624fb9dbcae906226361d5 (patch) | |
tree | 02515efaf2e491e87c71203839a0885b31d6e51d /gnu/packages/base.scm | |
parent | 013086c3dbaa2e28dd1b3c21a7ebe51ac829a1eb (diff) | |
download | guix-defa85b26537a3cc20624fb9dbcae906226361d5.tar guix-defa85b26537a3cc20624fb9dbcae906226361d5.tar.gz |
gnu: Add glibc-2.2.5.
* gnu/packages/commencement.scm (glibc-mesboot0, gcc-mesboot0,
binutils-mesboot): Export variables.
* gnu/packages/base.scm (glibc-2.2.5): New variable.
Diffstat (limited to 'gnu/packages/base.scm')
-rw-r--r-- | gnu/packages/base.scm | 102 |
1 files changed, 101 insertions, 1 deletions
diff --git a/gnu/packages/base.scm b/gnu/packages/base.scm index 0e49b6044c..32a462b545 100644 --- a/gnu/packages/base.scm +++ b/gnu/packages/base.scm @@ -13,7 +13,7 @@ ;;; Copyright © 2017, 2018, 2020 Marius Bakke <mbakke@fastmail.com> ;;; Copyright © 2017 Eric Bavier <bavier@member.fsf.org> ;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr> -;;; Copyright © 2018, 2019 Ricardo Wurmus <rekado@elephly.net> +;;; Copyright © 2018, 2019, 2022 Ricardo Wurmus <rekado@elephly.net> ;;; Copyright © 2020 Vitaliy Shatrov <D0dyBo0D0dyBo0@protonmail.com> ;;; Copyright © 2020 Chris Marusich <cmmarusich@gmail.com> ;;; Copyright © 2021 Leo Le Bouter <lle-bout@zaclys.net> @@ -46,6 +46,7 @@ #:use-module (gnu packages bash) #:use-module (gnu packages bison) #:use-module (gnu packages ed) + #:use-module (gnu packages gawk) #:use-module (gnu packages gcc) #:use-module (gnu packages guile) #:use-module (gnu packages multiprecision) @@ -1014,6 +1015,105 @@ with the Linux kernel.") "glibc-reinstate-prlimit64-fallback.patch" "glibc-2.29-supported-locales.patch")))))) + +(define-public glibc-2.2.5 + (package + (inherit glibc) + (version "2.2.5") + (source (origin + (method url-fetch) + (uri (string-append "mirror://gnu/glibc/glibc-" version ".tar.gz")) + (patches (search-patches "glibc-boot-2.2.5.patch" + "glibc-bootstrap-system-2.2.5.patch")) + (sha256 + (base32 + "1vl48i16gx6h68whjyhgnn1s57vqq32f9ygfa2fls7pdkbsqvp2q")))) + (arguments + (list #:system "i686-linux" + #:implicit-inputs? #f + #:tests? #f + #:strip-binaries? #f + #:validate-runpath? #f + #:parallel-build? #f ; gcc-2.95.3 ICEs on massively parallel builds + #:make-flags + #~(list (string-append + "SHELL=" #$(this-package-native-input "bash") "/bin/sh")) + #:configure-flags + #~(list "--enable-shared" + "--enable-static" + "--disable-sanity-checks" + "--build=i686-unknown-linux-gnu" + "--host=i686-unknown-linux-gnu" + (string-append "--with-headers=" + #$(this-package-native-input "kernel-headers") + "/include") + "--enable-static-nss" + "--without-__thread" + "--without-cvs" + "--without-gd" + "--without-tls" + (string-append "--prefix=" #$output)) + #:phases + #~(modify-phases %standard-phases + (add-before 'configure 'setenv + (lambda* (#:key inputs outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (bash (assoc-ref inputs "bash")) + (shell (string-append bash "/bin/bash")) + (gcc (assoc-ref inputs "gcc")) + (cppflags (string-append + " -D MES_BOOTSTRAP=1" + " -D BOOTSTRAP_GLIBC=1")) + (cflags (string-append " -L " (getcwd)))) + (setenv "CONFIG_SHELL" shell) + (setenv "SHELL" shell) + (setenv "CPP" (string-append gcc "/bin/gcc -E " cppflags)) + (setenv "CC" (string-append gcc "/bin/gcc " cppflags cflags))))) + (replace 'configure ; needs classic invocation of configure + (lambda* (#:key configure-flags #:allow-other-keys) + (format (current-error-port) + "running ./configure ~a\n" (string-join configure-flags)) + (apply invoke "./configure" configure-flags))) + (add-after 'configure 'fixup-configure + (lambda* (#:key inputs outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (bash (assoc-ref inputs "bash")) + (shell (string-append bash "/bin/bash"))) + (substitute* "config.make" + (("INSTALL = scripts/") "INSTALL = $(..)./scripts/")) + (substitute* "config.make" + (("INSTALL = scripts/") "INSTALL = $(..)./scripts/") + (("BASH = ") (string-append + "SHELL = " shell " + BASH = "))))))))) + (supported-systems '("i686-linux" "x86_64-linux")) + (outputs '("out")) + (inputs '()) + (propagated-inputs '()) + (native-inputs + ;; Lazily resolve NAME in (gnu packages commencement) to avoid a cycle. + (let ((c (lambda (name) + (module-ref (resolve-interface + '(gnu packages commencement)) + name)))) + `(("bash" ,bash-minimal) + ("coreutils" ,coreutils) + ("gawk" ,gawk) + ("grep" ,grep) + ("make" ,gnu-make) + ("sed" ,sed) + ("tar" ,tar) + ("bzip2" ,bzip2) + ("gzip" ,gzip) + ("patch" ,patch) + ("xz" ,xz) + ("kernel-headers" ,linux-libre-headers) + + ;; Old toolchain + ("gcc" ,(c 'gcc-mesboot0)) + ("binutils" ,(c 'binutils-mesboot)) + ("libc" ,(c 'glibc-mesboot0))))))) + (define-public (make-gcc-libc base-gcc libc) "Return a GCC that targets LIBC." (package (inherit base-gcc) |