summary refs log tree commit diff
path: root/gnu
diff options
context:
space:
mode:
authorJan Nieuwenhuizen <janneke@gnu.org>2018-10-04 23:28:20 +0200
committerJan Nieuwenhuizen <janneke@gnu.org>2018-10-07 16:29:39 +0200
commitfc4ff50f2d77d1ff20ebb5a1113b56487d34640f (patch)
treec86190f254c8db609e95f560218a6b703328cd29 /gnu
parent189ac60eac6d7c187ecf9bff5107a68867ced81d (diff)
downloadguix-fc4ff50f2d77d1ff20ebb5a1113b56487d34640f.tar.gz
gnu: mescc-tools-boot: Update to 0.5.2.
* gnu/packages/commencement.scm (mescc-tools-boot): Update to 0.5.2.
* gnu/packages/patches/mescc-tools-boot.patch: New file.
* gnu/local.mk (dist_patch_DATA): Add it.
Diffstat (limited to 'gnu')
-rw-r--r--gnu/local.mk1
-rw-r--r--gnu/packages/commencement.scm133
-rw-r--r--gnu/packages/patches/mescc-tools-boot.patch222
3 files changed, 286 insertions, 70 deletions
diff --git a/gnu/local.mk b/gnu/local.mk
index ba5dc0cc70..5740127571 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -961,6 +961,7 @@ dist_patch_DATA =						\
   %D%/packages/patches/mcrypt-CVE-2012-4426.patch			\
   %D%/packages/patches/mcrypt-CVE-2012-4527.patch			\
   %D%/packages/patches/mesa-skip-disk-cache-test.patch		\
+  %D%/packages/patches/mescc-tools-boot.patch			\
   %D%/packages/patches/meson-for-build-rpath.patch		\
   %D%/packages/patches/metabat-fix-compilation.patch		\
   %D%/packages/patches/mhash-keygen-test-segfault.patch		\
diff --git a/gnu/packages/commencement.scm b/gnu/packages/commencement.scm
index 77909f0bd5..c7a2b03918 100644
--- a/gnu/packages/commencement.scm
+++ b/gnu/packages/commencement.scm
@@ -107,77 +107,70 @@
       (propagated-inputs '()))))
 
 (define mescc-tools-boot
-  (let ((version "0.4")
-        (revision "1")
-        (commit "f02b8f4fda8d0c5c11a1d63a02b2bfdfab55abc5"))
-    (package-with-bootstrap-guile
-     (package
-       (inherit mescc-tools)
-       (name "mescc-tools-boot")
-       (version (string-append version "-" revision "." (string-take commit 7)))
-       (source (origin
-                 (method url-fetch)
-                 (uri (string-append "https://gitlab.com/janneke/mescc-tools"
-                                     "/-/archive/" commit
-                                     "/mescc-tools-" commit ".tar.gz"))
-                 (file-name (string-append name "-" version ".tar.gz"))
-                 (sha256
-                  (base32
-                   "14xw954ad4lnnyflgnwvzfhd3kqimniilzzyf4x23vljky2npkbf"))))
-       (inputs '())
-       (propagated-inputs '())
-       (native-inputs
-        `(("mescc-tools-seed" ,%mescc-tools-seed)
-          ("mes-source" ,(package-source mes-boot0))
+  (package-with-bootstrap-guile
+   (package
+     (inherit mescc-tools)
+     (name "mescc-tools-boot")
+     (source (origin
+               (inherit (package-source mescc-tools))
+               (patches (search-patches "mescc-tools-boot.patch"))))
+     (inputs '())
+     (propagated-inputs '())
+     (native-inputs
+      `(("mescc-tools-seed" ,%mescc-tools-seed)
+        ("mes-source" ,(package-source mes-boot0))
 
-          ("coreutils" ,%bootstrap-coreutils&co)
-          ("mes-seed" ,%mes-seed)))
-       (build-system gnu-build-system)
-       (arguments
-        `(#:implicit-inputs? #f
-          #:guile ,%bootstrap-guile
-          #:strip-binaries? #f ; binutil's strip b0rkes MesCC/M1/hex2 binaries
-          #:phases
-          (modify-phases %standard-phases
-            (add-after 'unpack 'unpack-seeds
-              (lambda* (#:key outputs #:allow-other-keys)
-                (let* ((coreutils (assoc-ref %build-inputs "coreutils"))
-                       (mescc-tools-seed (assoc-ref %build-inputs "mescc-tools-seed"))
-                       (mes-seed (assoc-ref %build-inputs "mes-seed"))
-                       (mes-source (assoc-ref %build-inputs "mes-source"))
-                       (out (assoc-ref %outputs "out")))
-                  (with-directory-excursion ".."
-                    (and
-                     (mkdir-p "mescc-tools-seed")
-                     (invoke "tar" "--strip=1" "-C" "mescc-tools-seed"
-                             "-xvf" mescc-tools-seed)
-                     (mkdir-p "mes-source")
-                     (invoke "tar" "--strip=1" "-C" "mes-source"
-                             "-xvf" mes-source)
-                     (mkdir-p "mes-seed")
-                     (invoke "tar" "--strip=1" "-C" "mes-seed"
-                             "-xvf" mes-seed))))))
-            (replace 'configure
-              (lambda* (#:key outputs #:allow-other-keys)
-                (let ((coreutils (assoc-ref %build-inputs "coreutils"))
-                      (out (assoc-ref %outputs "out")))
-                  (setenv "PATH" (string-append coreutils "/bin"
-                                                ":" "../mescc-tools-seed"))
-                  (format (current-error-port) "PATH=~s\n" (getenv "PATH"))
-                  (setenv "PREFIX" out)
-                  (setenv "MES_PREFIX" "../mes-source")
-                  (setenv "MESCC_TOOLS_SEED" "../mescc-tools-seed")
-                  (setenv "MES_SEED" "../mes-seed")
-                  #t)))
-            (replace 'build
-              (lambda _
-               (invoke "sh" "build.sh")))
-            (replace 'check
-              (lambda _
-                (invoke "sh" "check.sh")))
-            (replace 'install
-              (lambda _
-                (invoke "sh" "install.sh"))))))))))
+        ("coreutils" ,%bootstrap-coreutils&co)
+        ("mes-seed" ,%mes-seed)))
+     (build-system gnu-build-system)
+     (arguments
+      `(#:implicit-inputs? #f
+        #:guile ,%bootstrap-guile
+        #:strip-binaries? #f   ; binutil's strip b0rkes MesCC/M1/hex2 binaries
+        #:phases
+        (modify-phases %standard-phases
+          (add-after 'unpack 'unpack-seeds
+            (lambda* (#:key outputs #:allow-other-keys)
+              (let* ((coreutils (assoc-ref %build-inputs "coreutils"))
+                     (mescc-tools-seed (assoc-ref %build-inputs "mescc-tools-seed"))
+                     (mes-seed (assoc-ref %build-inputs "mes-seed"))
+                     (mes-source (assoc-ref %build-inputs "mes-source"))
+                     (out (assoc-ref %outputs "out")))
+                (with-directory-excursion ".."
+                  (and
+                   (mkdir-p "mescc-tools-seed")
+                   (invoke "tar" "--strip=1" "-C" "mescc-tools-seed"
+                           "-xvf" mescc-tools-seed)
+                   (mkdir-p "mes-source")
+                   (invoke "tar" "--strip=1" "-C" "mes-source"
+                           "-xvf" mes-source)
+                   (mkdir-p "mes-seed")
+                   (invoke "tar" "--strip=1" "-C" "mes-seed"
+                           "-xvf" mes-seed))))))
+          (replace 'configure
+            (lambda* (#:key outputs #:allow-other-keys)
+              (let ((coreutils (assoc-ref %build-inputs "coreutils"))
+                    (out (assoc-ref %outputs "out")))
+                (setenv "PATH" (string-append coreutils "/bin"
+                                              ":" "../mescc-tools-seed"))
+                (format (current-error-port) "PATH=~s\n" (getenv "PATH"))
+                (setenv "PREFIX" out)
+                (setenv "MES_PREFIX" "../mes-source")
+                (setenv "MESCC_TOOLS_SEED" "../mescc-tools-seed")
+                (setenv "MES_SEED" "../mes-seed")
+                #t)))
+          (replace 'build
+            (lambda _
+              (invoke "sh" "build.sh")))
+          (replace 'check
+            (lambda _
+              ;; bootstrap build.sh lacks exec_enable, get_machine, and
+              ;; kaem_machine
+              ;; (invoke "sh" "check.sh")
+              #t))
+          (replace 'install
+            (lambda _
+              (invoke "sh" "install.sh")))))))))
 
 (define nyacc-boot
   (let ((version "0.86.0")
diff --git a/gnu/packages/patches/mescc-tools-boot.patch b/gnu/packages/patches/mescc-tools-boot.patch
new file mode 100644
index 0000000000..2bce8a49c2
--- /dev/null
+++ b/gnu/packages/patches/mescc-tools-boot.patch
@@ -0,0 +1,222 @@
+From c184e95096881a13f29ebd7fc507fe305d3d8de5 Mon Sep 17 00:00:00 2001
+From: Jan Nieuwenhuizen <janneke@gnu.org>
+Date: Thu, 4 Oct 2018 22:03:31 +0200
+Subject: [PATCH] build.sh: Update for mes 0.18.
+
+---
+ build.sh   | 92 +++++++++++++++++++++++++++++++++++++-----------------
+ install.sh |  6 ++--
+ 2 files changed, 66 insertions(+), 32 deletions(-)
+
+diff --git a/build.sh b/build.sh
+index 335a7bb..19a0029 100755
+--- a/build.sh
++++ b/build.sh
+@@ -18,7 +18,8 @@
+ # along with mescc-tools.  If not, see <http://www.gnu.org/licenses/>.
+ 
+ set -eux
+-MES_SEED=${MES_SEED-../mescc-tools-seed/libs}
++MES_PREFIX=${MES_PREFIX-../mes}
++MES_SEED=${MES_SEED-../mes-seed}
+ MESCC_TOOLS_SEED=${MESCC_TOOLS_SEED-../mescc-tools-seed}
+ 
+ #########################################
+@@ -32,15 +33,23 @@ MESCC_TOOLS_SEED=${MESCC_TOOLS_SEED-../mescc-tools-seed}
+ # blood-elf
+ # Create proper debug segment
+ $MESCC_TOOLS_SEED/blood-elf\
++    -f $MESCC_TOOLS_SEED/file_print.M1\
++    -f $MESCC_TOOLS_SEED/match.M1\
++    -f $MESCC_TOOLS_SEED/numerate_number.M1\
++    -f $MESCC_TOOLS_SEED/string.M1\
+     -f $MESCC_TOOLS_SEED/blood-elf.M1\
+     -o blood-elf-blood-elf-footer.M1
+ 
+ # Build
+ # M1-macro phase
+ $MESCC_TOOLS_SEED/M1 --LittleEndian --Architecture 1\
+-    -f $MES_SEED/x86.M1\
+-    -f $MES_SEED/crt1.M1\
+-    -f $MES_SEED/libc+tcc-mes.M1\
++    -f $MES_PREFIX/lib/x86-mes/x86.M1\
++    -f $MES_SEED/x86-mes/crt1.S\
++    -f $MES_SEED/x86-mes/libc+tcc.S\
++    -f $MESCC_TOOLS_SEED/file_print.M1\
++    -f $MESCC_TOOLS_SEED/match.M1\
++    -f $MESCC_TOOLS_SEED/numerate_number.M1\
++    -f $MESCC_TOOLS_SEED/string.M1\
+     -f $MESCC_TOOLS_SEED/blood-elf.M1\
+     -f blood-elf-blood-elf-footer.M1\
+     -o blood-elf.hex2
+@@ -49,7 +58,7 @@ $MESCC_TOOLS_SEED/hex2\
+     --LittleEndian\
+     --Architecture 1\
+     --BaseAddress 0x1000000\
+-    -f $MES_SEED/elf32-header.hex2\
++    -f $MES_PREFIX/lib/x86-mes/elf32-header.hex2\
+     -f blood-elf.hex2\
+     --exec_enable\
+     -o bin/blood-elf
+@@ -65,9 +74,13 @@ $MESCC_TOOLS_SEED/hex2\
+ $MESCC_TOOLS_SEED/M1 \
+     --LittleEndian\
+     --Architecture 1\
+-    -f $MES_SEED/x86.M1\
+-    -f $MES_SEED/crt1.M1\
+-    -f $MES_SEED/libc+tcc-mes.M1\
++    -f $MES_PREFIX/lib/x86-mes/x86.M1\
++    -f $MES_SEED/x86-mes/crt1.S\
++    -f $MES_SEED/x86-mes/libc+tcc.S\
++    -f $MESCC_TOOLS_SEED/file_print.M1\
++    -f $MESCC_TOOLS_SEED/match.M1\
++    -f $MESCC_TOOLS_SEED/numerate_number.M1\
++    -f $MESCC_TOOLS_SEED/string.M1\
+     -f $MESCC_TOOLS_SEED/M1.M1\
+     -f M1-footer.M1\
+     -o M1.hex2
+@@ -76,7 +89,7 @@ $MESCC_TOOLS_SEED/hex2 \
+     --LittleEndian\
+     --Architecture 1\
+     --BaseAddress 0x1000000\
+-    -f $MES_SEED/elf32-header.hex2\
++    -f $MES_PREFIX/lib/x86-mes/elf32-header.hex2\
+     -f M1.hex2\
+     --exec_enable\
+     -o bin/M1
+@@ -92,9 +105,13 @@ $MESCC_TOOLS_SEED/hex2 \
+ ./bin/M1 \
+     --LittleEndian\
+     --Architecture 1\
+-    -f $MES_SEED/x86.M1\
+-    -f $MES_SEED/crt1.M1\
+-    -f $MES_SEED/libc+tcc-mes.M1\
++    -f $MES_PREFIX/lib/x86-mes/x86.M1\
++    -f $MES_SEED/x86-mes/crt1.S\
++    -f $MES_SEED/x86-mes/libc+tcc.S\
++    -f $MESCC_TOOLS_SEED/file_print.M1\
++    -f $MESCC_TOOLS_SEED/match.M1\
++    -f $MESCC_TOOLS_SEED/numerate_number.M1\
++    -f $MESCC_TOOLS_SEED/string.M1\
+     -f $MESCC_TOOLS_SEED/hex2.M1\
+     -f hex2-footer.M1\
+     -o hex2.hex2
+@@ -103,10 +120,10 @@ $MESCC_TOOLS_SEED/hex2 \
+       --LittleEndian\
+       --Architecture 1\
+       --BaseAddress 0x1000000\
+-      -f $MES_SEED/elf32-header.hex2\
++      -f $MES_PREFIX/lib/x86-mes/elf32-header.hex2\
+       -f hex2.hex2\
+       --exec_enable\
+-      -o bin/hex2
++      -o bin/hex2-0
+ 
+ #########################
+ # Phase-1 Self-host     #
+@@ -123,18 +140,22 @@ $MESCC_TOOLS_SEED/hex2 \
+ ./bin/M1 \
+     --LittleEndian\
+     --Architecture 1\
+-    -f $MES_SEED/x86.M1\
+-    -f $MES_SEED/crt1.M1\
+-    -f $MES_SEED/libc+tcc-mes.M1\
++    -f $MES_PREFIX/lib/x86-mes/x86.M1\
++    -f $MES_SEED/x86-mes/crt1.S\
++    -f $MES_SEED/x86-mes/libc+tcc.S\
++    -f $MESCC_TOOLS_SEED/file_print.M1\
++    -f $MESCC_TOOLS_SEED/match.M1\
++    -f $MESCC_TOOLS_SEED/numerate_number.M1\
++    -f $MESCC_TOOLS_SEED/string.M1\
+     -f $MESCC_TOOLS_SEED/blood-elf.M1\
+     -f blood-elf-blood-elf-footer.M1\
+     -o blood-elf.hex2
+ # Hex2-linker phase
+-./bin/hex2 \
++./bin/hex2-0 \
+     --LittleEndian\
+     --Architecture 1\
+     --BaseAddress 0x1000000\
+-    -f $MES_SEED/elf32-header.hex2\
++    -f $MES_PREFIX/lib/x86-mes/elf32-header.hex2\
+     -f blood-elf.hex2\
+     --exec_enable\
+     -o blood-elf
+@@ -150,18 +171,22 @@ $MESCC_TOOLS_SEED/hex2 \
+ ./bin/M1 \
+     --LittleEndian\
+     --Architecture 1\
+-    -f $MES_SEED/x86.M1\
+-    -f $MES_SEED/crt1.M1\
+-    -f $MES_SEED/libc+tcc-mes.M1\
++    -f $MES_PREFIX/lib/x86-mes/x86.M1\
++    -f $MES_SEED/x86-mes/crt1.S\
++    -f $MES_SEED/x86-mes/libc+tcc.S\
++    -f $MESCC_TOOLS_SEED/file_print.M1\
++    -f $MESCC_TOOLS_SEED/match.M1\
++    -f $MESCC_TOOLS_SEED/numerate_number.M1\
++    -f $MESCC_TOOLS_SEED/string.M1\
+     -f $MESCC_TOOLS_SEED/M1.M1\
+     -f M1-footer.M1\
+     -o M1.hex2
+ # Hex2-linker phase
+-./bin/hex2 \
++./bin/hex2-0 \
+     --LittleEndian\
+     --Architecture 1\
+     --BaseAddress 0x1000000\
+-    -f $MES_SEED/elf32-header.hex2\
++    -f $MES_PREFIX/lib/x86-mes/elf32-header.hex2\
+     -f M1.hex2\
+     --exec_enable\
+     -o bin/M1
+@@ -177,18 +202,27 @@ $MESCC_TOOLS_SEED/hex2 \
+ ./bin/M1 \
+     --LittleEndian\
+     --Architecture 1\
+-    -f $MES_SEED/x86.M1\
+-    -f $MES_SEED/crt1.M1\
+-    -f $MES_SEED/libc+tcc-mes.M1\
++    -f $MES_PREFIX/lib/x86-mes/x86.M1\
++    -f $MES_SEED/x86-mes/crt1.S\
++    -f $MES_SEED/x86-mes/libc+tcc.S\
++    -f $MESCC_TOOLS_SEED/file_print.M1\
++    -f $MESCC_TOOLS_SEED/match.M1\
++    -f $MESCC_TOOLS_SEED/numerate_number.M1\
++    -f $MESCC_TOOLS_SEED/string.M1\
+     -f $MESCC_TOOLS_SEED/hex2.M1\
+     -f hex2-footer.M1\
+     -o hex2.hex2
+ # Hex2-linker phase
+-./bin/hex2 \
++./bin/hex2-0 \
+       --LittleEndian\
+       --Architecture 1\
+       --BaseAddress 0x1000000\
+-      -f $MES_SEED/elf32-header.hex2\
++      -f $MES_PREFIX/lib/x86-mes/elf32-header.hex2\
+       -f hex2.hex2\
+       --exec_enable\
+       -o bin/hex2
++
++# TODO
++touch bin/exec_enable
++touch bin/get_machine
++touch bin/kaem
+diff --git a/install.sh b/install.sh
+index e4dccff..29e58d6 100644
+--- a/install.sh
++++ b/install.sh
+@@ -18,6 +18,6 @@
+ PREFIX=${PREFIX-usr}
+ 
+ mkdir -p "$PREFIX/bin"
+-cp blood-elf "$PREFIX/bin/blood-elf"
+-cp hex2 "$PREFIX/bin/hex2"
+-cp M1 "$PREFIX/bin/M1"
++cp bin/blood-elf "$PREFIX/bin/blood-elf"
++cp bin/hex2 "$PREFIX/bin/hex2"
++cp bin/M1 "$PREFIX/bin/M1"
+-- 
+2.18.0
+