[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
13/21: gnu: commencement: make-mesboot0: Support ARM.
From: |
guix-commits |
Subject: |
13/21: gnu: commencement: make-mesboot0: Support ARM. |
Date: |
Wed, 19 Oct 2022 01:40:11 -0400 (EDT) |
janneke pushed a commit to branch wip-arm-bootstrap
in repository guix.
commit a49dd5b0ba2aeaa1032dd2a43e74fd2fb108928c
Author: Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
AuthorDate: Mon Dec 20 09:52:51 2021 +0100
gnu: commencement: make-mesboot0: Support ARM.
* gnu/packages/commencement.scm (gnu-make-mesboot0)[supported-systems]: Add
armhf-linux, aarch64-linux.
[arguments]: Cater for armhf-linux, aarch64-linux.
---
gnu/packages/commencement.scm | 106 +++++++++++++------------
gnu/packages/patches/gcc-boot-2.95.3-arm.patch | 31 ++++++++
2 files changed, 87 insertions(+), 50 deletions(-)
diff --git a/gnu/packages/commencement.scm b/gnu/packages/commencement.scm
index 1e508841d6..e37392fe2a 100644
--- a/gnu/packages/commencement.scm
+++ b/gnu/packages/commencement.scm
@@ -637,56 +637,62 @@ $MES -e '(mescc)' module/mescc.scm -- \"$@\"
(define gnu-make-mesboot0
;; The initial make
- (package
- (inherit gnu-make)
- (name "make-mesboot0")
- (version "3.80")
- (source (origin
- (method url-fetch)
- (uri (string-append "mirror://gnu/make/make-" version ".tar.gz"))
- (sha256
- (base32
- "1pb7fb7fqf9wz9najm85qdma1xhxzf1rhj5gwrlzdsz2zm0hpcv4"))))
- (supported-systems '("i686-linux" "x86_64-linux"))
- (inputs '())
- (propagated-inputs '())
- (native-inputs `(("tcc" ,tcc-boot0)
- ,@(%boot-gash-inputs)))
- (arguments
- `(#:implicit-inputs? #f
- #:guile ,%bootstrap-guile
- #:configure-flags '("CC=tcc"
- "CPP=tcc -E"
- "LD=tcc"
- "--build=i686-unknown-linux-gnu"
- "--host=i686-unknown-linux-gnu"
- "--disable-nls")
- #:modules ((guix build gnu-build-system)
- (guix build utils)
- (srfi srfi-1))
- #:strip-binaries? #f ; no strip yet
- #:phases
- (modify-phases %standard-phases
- (add-after 'unpack 'scripted-patch
- (lambda _
- (substitute* "build.sh.in"
- (("@LIBOBJS@") "getloadavg.o")
- (("@REMOTE@") "stub"))))
- (add-after 'configure 'configure-fixup
- (lambda _
- (substitute* "make.h"
- (("^extern long int lseek.*" all) (string-append "// " all)))))
- (replace 'build
- (lambda _
- (invoke "sh" "./build.sh")))
- (replace 'check ; proper check needs awk
- (lambda _
- (invoke "./make" "--version")))
- (replace 'install
- (lambda _
- (let* ((out (assoc-ref %outputs "out"))
- (bin (string-append out "/bin")))
- (install-file "make" bin)))))))))
+ (let ((triplet (match (%current-system)
+ ((or "armhf-linux" "aarch64-linux")
+ "arm-linux")
+ ((or "i686-linux" "x86_64-linux")
+ "i686-linux-gnu"))))
+ (package
+ (inherit gnu-make)
+ (name "make-mesboot0")
+ (version "3.80")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append "mirror://gnu/make/make-" version
".tar.gz"))
+ (sha256
+ (base32
+ "1pb7fb7fqf9wz9najm85qdma1xhxzf1rhj5gwrlzdsz2zm0hpcv4"))))
+ (supported-systems '("armhf-linux" "aarch64-linux"
+ "i686-linux" "x86_64-linux"))
+ (inputs '())
+ (propagated-inputs '())
+ (native-inputs `(("tcc" ,tcc-boot0)
+ ,@(%boot-gash-inputs)))
+ (arguments
+ `(#:implicit-inputs? #f
+ #:guile ,%bootstrap-guile
+ #:configure-flags (list "CC=tcc"
+ "CPP=tcc -E"
+ "LD=tcc"
+ (string-append "--build=" ,triplet)
+ (string-append "--host=" ,triplet)
+ "--disable-nls")
+ #:modules ((guix build gnu-build-system)
+ (guix build utils)
+ (srfi srfi-1))
+ #:strip-binaries? #f ; no strip yet
+ #:phases
+ (modify-phases %standard-phases
+ (add-after 'unpack 'scripted-patch
+ (lambda _
+ (substitute* "build.sh.in"
+ (("@LIBOBJS@") "getloadavg.o")
+ (("@REMOTE@") "stub"))))
+ (add-after 'configure 'configure-fixup
+ (lambda _
+ (substitute* "make.h"
+ (("^extern long int lseek.*" all) (string-append "// "
all)))))
+ (replace 'build
+ (lambda _
+ (invoke "sh" "./build.sh")))
+ (replace 'check ; proper check needs awk
+ (lambda _
+ (invoke "./make" "--version")))
+ (replace 'install
+ (lambda _
+ (let* ((out (assoc-ref %outputs "out"))
+ (bin (string-append out "/bin")))
+ (install-file "make" bin))))))))))
(define (%boot-tcc0-inputs)
`(("make" ,gnu-make-mesboot0)
diff --git a/gnu/packages/patches/gcc-boot-2.95.3-arm.patch
b/gnu/packages/patches/gcc-boot-2.95.3-arm.patch
new file mode 100644
index 0000000000..73a059ef7f
--- /dev/null
+++ b/gnu/packages/patches/gcc-boot-2.95.3-arm.patch
@@ -0,0 +1,31 @@
+This patch enables building gcc-2.95.3 on armhf-linux using TCC and
+Mes C Library.
+
+ * Add include/asm/unist.h linux header.
+ * Disable libgcc2.c float and long long functions.
+
+Upstream status: Not presented upstream.
+
+--- gcc-2.95.3/include/asm/unistd.h.orig 1970-01-01 01:00:00.000000000
+0100
++++ gcc-2.95.3/include/asm/unistd.h 2020-12-23 07:49:44.156673879 +0100
+@@ -0,0 +1,9 @@
++#ifndef __ASM_UNISTD_H
++#define __ASM_UNISTD_H
++
++#if __arm__
++#define __NR_getpid 0x14
++#define __NR_kill 0x25
++#endif
++
++#endif // __ASM_UNISTD_H
+--- gcc-2.95.3/gcc/Makefile.in.orig 2020-12-23 08:31:57.733501802 +0100
++++ gcc-2.95.3/gcc/Makefile.in 2020-12-23 08:31:49.985371208 +0100
+@@ -1260,7 +1260,7 @@
+ -(cd tmpcopy; chmod +w * > /dev/null 2>&1)
+ (cd tmpcopy; $(AR_FOR_TARGET) x ../$(LIBGCC2))
+ (cd tmpcopy; $(AR_FOR_TARGET) $(AR_FLAGS_FOR_TARGET) ../tmplibgcc.a
*$(objext))
+- rm -rf libgcc2.a tmpcopy
++ rm -rf tmpcopy
+ if $(RANLIB_TEST_FOR_TARGET) ; then \
+ $(RANLIB_FOR_TARGET) tmplibgcc.a; \
+ else true; fi
- branch wip-arm-bootstrap created (now 83842db321), guix-commits, 2022/10/19
- 08/21: gnu: commencement: bootstrap-mes-rewired: Support ARM., guix-commits, 2022/10/19
- 16/21: gnu: commencement: binutils-mesboot0: Support ARM., guix-commits, 2022/10/19
- 03/21: gnu: bootstrap: mes-minimal: Support ARM, update for mes-0.23.1., guix-commits, 2022/10/19
- 09/21: gnu: commencement: mes-boot: Support ARM, update to 0.23.1., guix-commits, 2022/10/19
- 12/21: gnu: commencement: gzip-mesboot: Support ARM., guix-commits, 2022/10/19
- 20/21: DRAFT gnu: commencement: glibc-mesboot0: Support ARM., guix-commits, 2022/10/19
- 13/21: gnu: commencement: make-mesboot0: Support ARM.,
guix-commits <=
- 15/21: gnu: commencement: patch-mesboot: Support ARM., guix-commits, 2022/10/19
- 18/21: gnu: bootstrap: linux-libre-headers-bootstrap: Support ARM., guix-commits, 2022/10/19
- 02/21: gnu: bootstrap: mescc-tools: Support ARM., guix-commits, 2022/10/19
- 01/21: gnu: mes: Update to 0.23.1., guix-commits, 2022/10/19
- 04/21: DRAFT gnu: bootstrap: %bootstrap-mescc-tools: Support ARM., guix-commits, 2022/10/19
- 06/21: DRAFT gnu: bootstrap: %bootstrap-mes: Support ARM., guix-commits, 2022/10/19
- 14/21: gnu: commencement: tcc-boot: Support ARM., guix-commits, 2022/10/19
- 19/21: gnu: commencement: mesboot-headers: Support ARM., guix-commits, 2022/10/19
- 05/21: gnu: bootstrap: %bootstrap-mescc-tools: Update ARM to 1.4.0., guix-commits, 2022/10/19
- 21/21: DRAFT gnu: commencement: gcc-mesboot0: Support ARM., guix-commits, 2022/10/19