File: PORTING

package info (click to toggle)
mes 0.24.2-1
  • links: PTS, VCS
  • area: main
  • in suites: bookworm, sid
  • size: 6,908 kB
  • sloc: ansic: 24,104; lisp: 11,490; sh: 6,609; asm: 187; makefile: 36
file content (82 lines) | stat: -rw-r--r-- 2,877 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
#+COMMENT:                                                            -*- org -*-
#+TITLE: Porting GNU Mes

* Porting GNU Mes to ARM

The ARM port can be found in wip-arm on savannah.

For development, we use Guix's qemu-binfmt-service-type.

** Guix Setup, see [[info:guix#Virtualization%20Services][Virtualization Services]].

Add something like
   #+BEGIN_SRC scheme
      (service qemu-binfmt-service-type
               (qemu-binfmt-configuration
                (platforms (lookup-qemu-platforms "arm"))
                (guix-support? #t)))
   #+END_SRC
to your config.scm and run guix system reconfigure.

** Setup environment

For example (note: ARM is no longer a 'port', see HACKING)
   #+BEGIN_SRC bash
   guix shell --system=armhf-linux --pure bash coreutils diffutils findutils gawk gcc-toolchain grep git guile gzip help2man make mescc-tools nyacc openssh-sans-x pkg-config sed tar texinfo
   #+END_SRC

** Try it
   #+BEGIN_SRC bash
   CC=gnu-triplet-gcc ./configure --with-courage --with-system-libc
   ./simple.sh
   #+END_SRC

some failures are expected.

** Build it
   #+BEGIN_SRC bash
   ./configure --with-courage --with-system-libc
   make MES=guile
   make check
   #+END_SRC

expect many failures.  Non-system-libc, i.e. using the Mes C Library is currently WIP.

* Porting GNU Mes to x86_64

The x86_64 port is almost done, only a few bugs remain.  The Guix
bootstrap for x86_64 uses x86 mes and that is not expected to change.

* Porting GNU Mes to GNU/Hurd

The Hurd port can be found in wip-hurd on savannah.  For development, we
use a Debian GNU/Hurd vm.

* Porting GNU Mes to FreeBSD
The FreeBSD port can be found in wip-freebsd on savannah.

* Porting the Reduced Binary Seed bootstrap to NixOS
The NixOS port of the Reduced Binary Seed bootstrap lives on the
mes-bootstrap branch in https://github.com/xwvvvvwx/nixpkgs

* Porting the Reduced Binary Seed bootstrap to Debian GNU/Linux
To port the Reduced Binary Seed bootstrap to a traditional distribution
such as Debian, two things need to happen: the bootstrap must be ported
and the distribution build process needs to change to start from a only
binary seed.

The porting aspect is probably easiest: we start by packaging GNU Mes as
a regular package.  Having Mes built as a regular package, we can then
build a bootstrap Mes.  This bootstrap Mes can be used to build tinycc,
and so on.

Once we have shown that the Debian base system can be bootstrapped from
a Reduced Binary seed, thus significantly reducing the Trusted Computing
Base (TCB), strategic decisions about the build process can start.

* Legalese
Copyright © 2019,2022 Jan (janneke) Nieuwenhuizen <[[mailto:janneke@gnu.org][janneke@gnu.org]]>

  Copying and distribution of this file, with or without modification,
  are permitted in any medium without royalty provided the copyright
  notice and this notice are preserved.