[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
11/25: gnu: Add binutils-boot0-cheat.
From: |
Jan Nieuwenhuizen |
Subject: |
11/25: gnu: Add binutils-boot0-cheat. |
Date: |
Tue, 26 Jun 2018 13:48:37 -0400 (EDT) |
janneke pushed a commit to branch wip-bootstrap
in repository guix.
commit fb470efd9d2b177950719a7d3c10fb2254f2fde6
Author: Jan Nieuwenhuizen <address@hidden>
Date: Sat Jun 23 13:26:32 2018 +0200
gnu: Add binutils-boot0-cheat.
* gnu/packages/mes.scm (binutils-boot0-cheat): New variable.
(%cheat-binutils?): New variable.
---
gnu/packages/mes.scm | 102 +++++++++++++++++++++++++++++++++++++++++++++++----
1 file changed, 94 insertions(+), 8 deletions(-)
diff --git a/gnu/packages/mes.scm b/gnu/packages/mes.scm
index 20cd43d..06c45d0 100644
--- a/gnu/packages/mes.scm
+++ b/gnu/packages/mes.scm
@@ -39,6 +39,7 @@
#:use-module (guix gexp))
(define %fake-bootstrap? #f) ; cheat using Guile instead of Mes for speed-up?
+(define %cheat-binutils? #t) ; cheat using binutils-boot0 compiled with
current tool-chain
(define %mescc-tools-seed
(let ((commit"29aae8c72e195cbb2f965f05a997b984a4f158fb"))
@@ -628,12 +629,13 @@ standard.")
(system* "./configure"
(string-append "--prefix=" out)))))))))))
-(define-public binutils-boot0
+(define-public binutils-boot0-real
(package
(inherit binutils)
- (name "binutils-boot0")
- (version "2.20.1a")
- (source (origin
+ (name (if %cheat-binutils? "binutils-boot0-real"
+ "binutils-boot0"))
+ (version "2.20.1a")
+ (source (origin
(method url-fetch)
(uri (string-append "mirror://gnu/binutils/binutils-"
version ".tar.bz2"))
@@ -704,9 +706,95 @@ standard.")
"--target=i386-unknown-linux"
(string-append "--prefix=" out))))))))))))
+(define-public binutils-boot0-cheat
+ (let* ((triplet "i686-unknown-linux-gnu")
+ (tool-prefix (string-append triplet "-")))
+ (package
+ (inherit binutils-boot0-real)
+ (name (if %cheat-binutils? "binutils-boot0"
+ "binutils-boot0-cheat"))
+ (supported-systems '("i686-linux"))
+ (native-inputs `(("flex" ,flex) ; cheat
+ ("binutils" ,(cross-binutils triplet))
+ ("gcc" ,(cross-gcc triplet))
+ ("glibc" ,(cross-libc triplet))
+ ("kernel-headers" ,(linux-libre-headers-boot0))))
+ (arguments
+ `(#:tests? #f ; runtest: command not found
+ #:parallel-build? #f
+ #:strip-binaries? #f
+ #:make-flags (list "RANLIB=true")
+ #:phases
+ (modify-phases %standard-phases
+ (replace 'configure
+ (lambda* (#:key outputs #:allow-other-keys)
+ (let* ((out (assoc-ref outputs "out"))
+ (glibc (assoc-ref %build-inputs "glibc"))
+ (headers (assoc-ref %build-inputs "kernel-headers"))
+ (cppflags (string-append " --static -static"
+ " -D MES_BOOTSTRAP=1"
+ " -B " glibc "/lib"
+ " -I " glibc "/include"
+ " -I " headers "/include"))
+ (ldflags (string-append " --static -static"
+ " -B " glibc "/lib")))
+ (setenv "C_INCLUDE_PATH"
+ (string-append glibc "/include"
+ ":" headers "/include"))
+ (setenv "LIBRARY_PATH"
+ (string-append glibc "/lib"))
+ (setenv "PATH"
+ (string-append
+ (assoc-ref %build-inputs "flex") "/bin"
+ ":" (assoc-ref %build-inputs "gcc") "/bin"
+ ":" (assoc-ref %build-inputs "binutils") "/"
,triplet "/bin"
+
+ ;; more bootstrap cheats
+ ":" (assoc-ref %build-inputs "bash") "/bin"
+ ":" (assoc-ref %build-inputs "bzip2") "/bin"
+ ":" (assoc-ref %build-inputs "coreutils") "/bin"
+ ":" (assoc-ref %build-inputs "diffutils") "/bin"
+ ;;":" (assoc-ref %build-inputs "file") "/bin"
+ ;;":" (assoc-ref %build-inputs "findutils") "/bin"
+ ":" (assoc-ref %build-inputs "gawk") "/bin"
+
+ ":" (assoc-ref %build-inputs "grep") "/bin"
+ ":" (assoc-ref %build-inputs "gzip") "/bin"
+ ;;":" (assoc-ref %build-inputs "m4") "/bin"
+ ":" (assoc-ref %build-inputs "make") "/bin"
+ ;;":" (assoc-ref %build-inputs "patch") "/bin"
+ ":" (assoc-ref %build-inputs "sed") "/bin"
+ ":" (assoc-ref %build-inputs "tar") "/bin"))
+
+ (setenv "CONFIG_SHELL" (string-append
+ (assoc-ref %build-inputs "bash")
+ "/bin/sh"))
+ (setenv "CPPFLAGS" cppflags)
+ (setenv "AR" "ar")
+ (setenv "RANLIB" "true")
+ (setenv "CC" (string-append ,tool-prefix "gcc" cppflags
ldflags))
+ (setenv "LD" (string-append ,tool-prefix "gcc" ldflags))
+ (setenv "CPP" (string-append ,tool-prefix "gcc -E" " "
cppflags))
+ (setenv "CC_FOR_BUILD" (string-append ,tool-prefix "gcc"
cppflags ldflags))
+
+ (format (current-error-port) "PATH=~a\n" (getenv "PATH"))
+ (format (current-error-port) "CC=~a\n" (getenv "CC"))
+
+ (and (zero? (system* "./configure"
+ "--disable-nls"
+ "--disable-shared"
+ "--disable-werror"
+ "--host=i386-unknown-linux"
+ "--target=i386-unknown-linux"
+ (string-append "--prefix="
out)))))))))))))
+
+(define-public binutils-boot0
+ (if %cheat-binutils? binutils-boot0-cheat
+ binutils-boot0-real))
+
(define-public binutils-boot
(package
- (inherit binutils-boot0)
+ (inherit binutils-boot0-real)
(name "binutils-boot")
(native-inputs `(("flex" ,flex) ; cheat
("glibc" ,glibc-boot)
@@ -943,9 +1031,7 @@ ac_cv_c_float_format='IEEE (little-endian)'
(inherit gcc-core-boot)
(name "gcc-boot")
(supported-systems '("i686-linux"))
- (native-inputs `(;;("binutils" ,binutils-boot)
- ,(let ((triplet "i686-unknown-linux-gnu")) ;; MORTAL SIN
HERE
- `("binutils" ,(cross-binutils triplet)))
+ (native-inputs `(("binutils" ,binutils-boot0)
("gcc" ,gcc-core-boot)
("glibc" ,glibc-boot)))
(outputs '("out"))
- branch wip-bootstrap updated (e428d5e -> 0f46768), Jan Nieuwenhuizen, 2018/06/26
- 01/25: gnu: mes-boot: Update for fopen: Return 0 upon failure., Jan Nieuwenhuizen, 2018/06/26
- 03/25: gnu: mes-boot: Update to 0.16., Jan Nieuwenhuizen, 2018/06/26
- 04/25: gnu: %tinycc-seed: Update for mes 0.16., Jan Nieuwenhuizen, 2018/06/26
- 02/25: gnu: %mes-seed: Update for mes 0.16., Jan Nieuwenhuizen, 2018/06/26
- 09/25: gnu: tcc-boot0: Update for mes 0.16., Jan Nieuwenhuizen, 2018/06/26
- 07/25: gnu: Add binutils-boot 2.20.1, built with gcc+glibc., Jan Nieuwenhuizen, 2018/06/26
- 13/25: gnu: binutils-boot0: Inject AR,LD from bootstrap-binaries., Jan Nieuwenhuizen, 2018/06/26
- 16/25: gnu: binutils-mesboot0: Rename from binutils-boot0., Jan Nieuwenhuizen, 2018/06/26
- 21/25: Revert: gnu: binutils-boot0: Inject AR, LD from bootstrap-binaries., Jan Nieuwenhuizen, 2018/06/26
- 11/25: gnu: Add binutils-boot0-cheat.,
Jan Nieuwenhuizen <=
- 19/25: gnu: gcc-mesboot: Rename from gcc-boot., Jan Nieuwenhuizen, 2018/06/26
- 17/25: gnu: gcc-core-mesboot: Rename from gcc-core-boot., Jan Nieuwenhuizen, 2018/06/26
- 18/25: gnu: glibc-mesboot: Rename from glibc-boot., Jan Nieuwenhuizen, 2018/06/26
- 15/25: gnu: m4:mesboot: Rename from m4-boot., Jan Nieuwenhuizen, 2018/06/26
- 14/25: gnu: Remove binutils-boot0-cheat., Jan Nieuwenhuizen, 2018/06/26
- 23/25: gnu: Add gcc-mesboot 4.7.4. WIP, Jan Nieuwenhuizen, 2018/06/26
- 24/25: REMOVEME: %fake-bootstrap => #t., Jan Nieuwenhuizen, 2018/06/26
- 06/25: gnu: gcc-core-boot: Install libgcc2.a too., Jan Nieuwenhuizen, 2018/06/26
- 25/25: Revert "REMOVEME: %fake-bootstrap => #t.", Jan Nieuwenhuizen, 2018/06/26
- 05/25: gnu: glibc-boot: Install all headers. WIP plus more, Jan Nieuwenhuizen, 2018/06/26