diff options
Diffstat (limited to 'gnu/packages/make-bootstrap.scm')
-rw-r--r-- | gnu/packages/make-bootstrap.scm | 117 |
1 files changed, 56 insertions, 61 deletions
diff --git a/gnu/packages/make-bootstrap.scm b/gnu/packages/make-bootstrap.scm index cdcb1dcaa2..2d7a97488d 100644 --- a/gnu/packages/make-bootstrap.scm +++ b/gnu/packages/make-bootstrap.scm @@ -1,5 +1,5 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020 Ludovic Courtès <[email protected]> +;;; Copyright © 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020, 2021 Ludovic Courtès <[email protected]> ;;; Copyright © 2017, 2021 Efraim Flashner <[email protected]> ;;; Copyright © 2018 Tobias Geerinckx-Rice <[email protected]> ;;; Copyright © 2018, 2019 Mark H Weaver <[email protected]> @@ -23,13 +23,14 @@ ;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. (define-module (gnu packages make-bootstrap) + #:use-module (guix gexp) #:use-module (guix utils) #:use-module (guix packages) #:use-module (guix memoization) #:use-module ((guix licenses) #:select (gpl3+)) #:use-module (guix build-system trivial) #:use-module (guix build-system gnu) - #:use-module ((gnu packages) #:select (search-patch)) + #:use-module ((gnu packages) #:select (search-patch search-patches)) #:use-module (gnu packages base) #:use-module (gnu packages cross-base) #:use-module (gnu packages bash) @@ -72,8 +73,10 @@ for `sh' in $PATH, and without nscd, and with static NSS modules." (package (inherit base) (source (origin (inherit (package-source base)) - (patches (cons (search-patch "glibc-bootstrap-system.patch") - (origin-patches (package-source base)))))) + (patches (append (search-patches + "glibc-bootstrap-system.patch" + "glibc-static-nss.patch") + (origin-patches (package-source base)))))) (arguments (substitute-keyword-arguments (package-arguments base) ((#:configure-flags flags) @@ -374,10 +377,6 @@ for `sh' in $PATH, and without nscd, and with static NSS modules." (package-arguments binutils)) ((#:configure-flags flags _ ...) flags))) - #:make-flags ,(match (memq #:make-flags (package-arguments binutils)) - ((#:make-flags flags _ ...) - flags) - (_ ''())) #:strip-flags '("--strip-all") #:phases (modify-phases %standard-phases (add-before 'configure 'all-static @@ -441,7 +440,7 @@ for `sh' in $PATH, and without nscd, and with static NSS modules." (assoc-ref %build-inputs "kernel-headers"))))) (inputs `(("kernel-headers" ,(if (or (and (%current-target-system) - (hurd-triplet? (%current-target-system))) + (target-hurd? (%current-target-system))) (string-suffix? "-hurd" (%current-system))) gnumach-headers linux-libre-headers)) @@ -588,11 +587,11 @@ for `sh' in $PATH, and without nscd, and with static NSS modules." (define %mescc-tools-static ;; A statically linked MesCC Tools. (package - (inherit mescc-tools-0.5.2) + (inherit mescc-tools) (name "mescc-tools-static") (arguments `(#:system "i686-linux" - ,@(substitute-keyword-arguments (package-arguments mescc-tools-0.5.2) + ,@(substitute-keyword-arguments (package-arguments mescc-tools) ((#:make-flags flags) `(cons "CC=gcc -static" ,flags))))))) @@ -626,31 +625,29 @@ for `sh' in $PATH, and without nscd, and with static NSS modules." ;; Two packages: first build static, bare minimum content. (define-public %mes-minimal ;; A minimal Mes without documentation. - (let ((triplet "i686-unknown-linux-gnu")) - (package - (inherit mes-0.19) - (name "mes-minimal") - (native-inputs - `(("guile" ,guile-2.2))) - (arguments - `(#:system "i686-linux" - #:strip-binaries? #f - #:configure-flags '("--mes") - #:phases - (modify-phases %standard-phases - (delete 'patch-shebangs) - (add-after 'install 'strip-install - (lambda _ - (let* ((out (assoc-ref %outputs "out")) - (share (string-append out "/share"))) - (delete-file-recursively (string-append out "/lib/guile")) - (delete-file-recursively (string-append share "/guile")) - (delete-file-recursively (string-append share "/mes/scaffold")) - - (for-each delete-file - (find-files - (string-append share "/mes/lib") - "\\.(h|c)"))))))))))) + (package + (inherit mes) + (name "mes-minimal") + (native-inputs + `(("guile" ,guile-3.0))) + (arguments + `(#:system "i686-linux" + #:strip-binaries? #f + #:configure-flags '("--mes") + #:phases + (modify-phases %standard-phases + (delete 'patch-shebangs) + (add-after 'install 'strip-install + (lambda _ + (let* ((out (assoc-ref %outputs "out")) + (share (string-append out "/share"))) + (delete-file-recursively (string-append out "/lib/guile")) + (delete-file-recursively (string-append share "/guile")) + + (for-each delete-file + (find-files + (string-append share "/mes/lib") + "\\.(h|c)")))))))))) ;; next remove store references. (define %mes-minimal-stripped @@ -661,6 +658,7 @@ for `sh' in $PATH, and without nscd, and with static NSS modules." (build-system trivial-build-system) (arguments `(#:modules ((guix build utils)) + #:allowed-references () #:builder (begin (use-modules (guix build utils)) @@ -705,12 +703,8 @@ for `sh' in $PATH, and without nscd, and with static NSS modules." ;; When `configure' checks for ltdl availability, it ;; doesn't try to link using libtool, and thus fails ;; because of a missing -ldl. Work around that. - - ;; XXX: On ARMv7, disable JIT: it causes crashes with 3.0.2, - ;; possibly related to <https://bugs.gnu.org/40737>. - (if (target-arm32?) - ''("LDFLAGS=-ldl" "--disable-jit") - ''("LDFLAGS=-ldl"))) + ''("LDFLAGS=-ldl" + "--enable-mini-gmp")) ((#:phases phases '%standard-phases) `(modify-phases ,phases @@ -882,25 +876,26 @@ for `sh' in $PATH, and without nscd, and with static NSS modules." (source #f) (build-system trivial-build-system) (arguments - `(#:modules ((guix build utils)) - #:builder - (let ((out (assoc-ref %outputs "out"))) - (use-modules (guix build utils) - (ice-9 match) - (srfi srfi-26)) - - (setvbuf (current-output-port) - (cond-expand (guile-2.0 _IOLBF) (else 'line))) - (mkdir out) - (chdir out) - (for-each (match-lambda - ((name . directory) - (for-each (lambda (file) - (format #t "~a -> ~a~%" file out) - (symlink file (basename file))) - (find-files directory "\\.tar\\.")))) - %build-inputs) - #t))) + (list #:modules '((guix build utils)) + #:builder + #~(begin + (use-modules (guix build utils) + (ice-9 match) + (srfi srfi-26)) + + (define out #$output) + + (setvbuf (current-output-port) + (cond-expand (guile-2.0 _IOLBF) (else 'line))) + (mkdir out) + (chdir out) + (for-each (match-lambda + ((name . directory) + (for-each (lambda (file) + (format #t "~a -> ~a~%" file out) + (symlink file (basename file))) + (find-files directory "\\.tar\\.")))) + %build-inputs)))) (inputs `(("guile-tarball" ,%guile-bootstrap-tarball) ,@(match (or (%current-target-system) (%current-system)) ((or "i686-linux" "x86_64-linux") |