From c8a2128a1ffa5934b407c5ebdc2fbe749e9ee199 Mon Sep 17 00:00:00 2001 From: Jan Nieuwenhuizen Date: Fri, 22 Nov 2019 22:10:16 +0100 Subject: [PATCH] gnu: commencement: glibc-headers-mesboot: Use Gash instead of coreutils&co. * gnu/packages/commencement.scm (glibc-headers-mesboot): Use Gash instead of coreutils&co. --- gnu/packages/commencement.scm | 70 ++++++++++++++++++++--------------- 1 file changed, 40 insertions(+), 30 deletions(-) diff --git a/gnu/packages/commencement.scm b/gnu/packages/commencement.scm index 5f34d5b49f..9a20add6ac 100644 --- a/gnu/packages/commencement.scm +++ b/gnu/packages/commencement.scm @@ -2394,17 +2394,8 @@ exec " gcc "/bin/" program (sha256 (base32 "0vlz4x6cgz7h54qq4528q526qlhnsjzbsvgc4iizn76cb0bfanx7"))))) - (native-inputs `(("binutils" ,binutils-mesboot) - ("libc" ,glibc-mesboot0) - ("gcc" ,gcc-mesboot1) - ("headers" ,mesboot-headers) - - ("bash" ,%bootstrap-coreutils&co) - ("coreutils" ,%bootstrap-coreutils&co) - ("diffutils" ,diffutils-mesboot) - ("kernel-headers" ,%bootstrap-linux-libre-headers) - ("make" ,make-mesboot))) - + (native-inputs `(("headers" ,mesboot-headers) + ,@(%boot-mesboot3-inputs))) (arguments (substitute-keyword-arguments (package-arguments glibc-mesboot0) ((#:configure-flags configure-flags) @@ -2419,13 +2410,21 @@ exec " gcc "/bin/" program "--with-pthread" "--without-cvs" "--without-gd" - "--enable-add-ons=nptl"))) + "--enable-add-ons=nptl" + ;; avoid: configure: error: confusing output from nm -u + "libc_cv_predef_stack_protector=no"))) ((#:make-flags make-flags) - `(let ((bash (assoc-ref %build-inputs "bash"))) - (list (string-append "SHELL=" bash "/bin/sh") - "install-bootstrap-headers=yes" "install-headers"))) + '(list "install-bootstrap-headers=yes" "install-headers")) ((#:phases phases) `(modify-phases ,phases + (delete 'apply-boot-patch) + (delete 'fixup-configure) + (delete 'set-path) + (replace 'unpack + (lambda* (#:key source #:allow-other-keys) + (invoke "tar" "xvf" source) + (chdir (string-append "glibc-" ,version)) + #t)) (replace 'setenv (lambda* (#:key inputs #:allow-other-keys) (let* ((headers (assoc-ref inputs "headers")) @@ -2442,6 +2441,7 @@ exec " gcc "/bin/" program (setenv "CPP" (string-append gcc "/bin/gcc -E " cppflags)) (setenv "CC" (string-append gcc "/bin/gcc " cppflags cflags)) + (setenv "LD" "gcc") ;; avoid -fstack-protector (setenv "libc_cv_ssp" "false") @@ -2452,9 +2452,9 @@ exec " gcc "/bin/" program (lambda* (#:key outputs make-flags #:allow-other-keys) (let ((kernel-headers (assoc-ref %build-inputs "kernel-headers")) (out (assoc-ref outputs "out"))) - (apply invoke "make" make-flags) - (copy-recursively kernel-headers out) - #t))) + (and (apply invoke "make" make-flags) + (copy-recursively kernel-headers out) + #t)))) (replace 'configure (lambda* (#:key configure-flags #:allow-other-keys) (format (current-error-port) "running ../configure ~a\n" (string-join configure-flags)) @@ -2463,18 +2463,28 @@ exec " gcc "/bin/" program (apply invoke "../configure" configure-flags))) (add-after 'configure 'remove-sunrpc (lambda _ - (invoke "make" (string-append (getcwd) "/sysd-sorted" ) - (string-append "SHELL=" (getenv "CONFIG_SHELL"))) - (substitute* "sysd-sorted" - ((" sunrpc") " ") - ((" nis") " ")) - ;; 'rpcgen' needs native libc headers to be built. - (substitute* "../Makefile" - (("^SHELL := /bin/sh") (string-append "SHELL := " (getenv "CONFIG_SHELL")))) - (substitute* "../Makeconfig" - (("^SHELL := /bin/sh") (string-append "SHELL := " (getenv "CONFIG_SHELL")))) - (substitute* "../elf/Makefile" - (("^SHELL := /bin/sh") (string-append "SHELL := " (getenv "CONFIG_SHELL")))))))))))) + (let* ((out (assoc-ref %outputs "out")) + (bash (assoc-ref %build-inputs "bash")) + (shell (string-append bash "/bin/bash"))) + + (let ((Makefile (open-file "Makefile" "a"))) + (display (string-append " + +SHELL := " shell " +") + Makefile) + (close Makefile)) + (substitute* "../Makefile" + (("^SHELL := /bin/sh") (string-append "SHELL := " shell))) + (substitute* "../Makeconfig" + (("^SHELL := /bin/sh") (string-append "SHELL := " shell))) + (substitute* "../elf/Makefile" + (("^SHELL := /bin/sh") (string-append "SHELL := " shell))) + (invoke "make" (string-append (getcwd) "/sysd-sorted" )) + (substitute* "sysd-sorted" + ((" sunrpc") " ") + ((" nis") " ")) + #t))))))))) (define glibc-mesboot (package