Compare commits
82 Commits
master
...
wip-explod
Author | SHA1 | Date |
---|---|---|
Jan Nieuwenhuizen | c13941261e | |
Jan Nieuwenhuizen | dac4283f7d | |
Jan Nieuwenhuizen | 615a4a1d22 | |
Jan Nieuwenhuizen | a5474558c4 | |
Jan Nieuwenhuizen | 60e7c8491f | |
Jan Nieuwenhuizen | c971e02614 | |
Jan Nieuwenhuizen | 3d615ee790 | |
Jan Nieuwenhuizen | b2afb3b3f3 | |
Jan Nieuwenhuizen | 544d601aea | |
Jan Nieuwenhuizen | 8b149e7f4f | |
Jan Nieuwenhuizen | 4fc1f5444a | |
Jan Nieuwenhuizen | d0e6228fa1 | |
Jan Nieuwenhuizen | 29950ae645 | |
Jan Nieuwenhuizen | 39693eca63 | |
Jan Nieuwenhuizen | 44add95226 | |
Jan Nieuwenhuizen | 544540d332 | |
Jan Nieuwenhuizen | 0f7af7ac61 | |
Jan Nieuwenhuizen | 96b585aba4 | |
Jan Nieuwenhuizen | ace1056fab | |
Jan Nieuwenhuizen | 834a722029 | |
Jan Nieuwenhuizen | 7f26f85e75 | |
Jan Nieuwenhuizen | 61033960aa | |
Jan Nieuwenhuizen | b7b8470247 | |
Jan Nieuwenhuizen | a6072afb98 | |
Jan Nieuwenhuizen | 82332f0c0b | |
Jan Nieuwenhuizen | 31e03d1cd7 | |
Jan Nieuwenhuizen | b6bbbf66e9 | |
Jan Nieuwenhuizen | 76729c9971 | |
Jan Nieuwenhuizen | e930a00a35 | |
Jan Nieuwenhuizen | 2121b98bda | |
Jan Nieuwenhuizen | a3fb84e6a6 | |
Jan Nieuwenhuizen | 087a0767a0 | |
Jan Nieuwenhuizen | 6c1b4cf1d7 | |
Jan Nieuwenhuizen | 510f82a575 | |
Jan Nieuwenhuizen | 17a46c5c64 | |
Jan Nieuwenhuizen | 6a11d4c9b7 | |
Jan Nieuwenhuizen | 9eaccf70eb | |
Jan Nieuwenhuizen | 15c8c9857a | |
Jan Nieuwenhuizen | 2183f4bb2a | |
Jan Nieuwenhuizen | 6ffeec94a7 | |
Jan Nieuwenhuizen | d23b72589d | |
Jan Nieuwenhuizen | 9a0daee989 | |
Jan Nieuwenhuizen | 5f0e6200dc | |
Jan Nieuwenhuizen | 013cb1f33d | |
Jan Nieuwenhuizen | 4d6084b20b | |
Jan Nieuwenhuizen | e81e48c701 | |
Jan Nieuwenhuizen | 27045d21dc | |
Jan Nieuwenhuizen | a652026c08 | |
Jan Nieuwenhuizen | 6f08fee316 | |
Jan Nieuwenhuizen | 29272e3d96 | |
Jan Nieuwenhuizen | 9033e03bbf | |
Jan Nieuwenhuizen | 1d8667e993 | |
Jan Nieuwenhuizen | 8d7de98307 | |
Jan Nieuwenhuizen | b8e8de3d12 | |
Jan Nieuwenhuizen | 94299b2860 | |
Jan Nieuwenhuizen | c8a3d50705 | |
Jan Nieuwenhuizen | c093998151 | |
Jan Nieuwenhuizen | b2aea040ec | |
Jan Nieuwenhuizen | 761f48d8f0 | |
Jan Nieuwenhuizen | 2b41e3c1a0 | |
Jan Nieuwenhuizen | f39e1cc250 | |
Jan Nieuwenhuizen | ecf9220bbc | |
Jan Nieuwenhuizen | aa32fbd8ff | |
Jan Nieuwenhuizen | f5a6ba799d | |
Jan Nieuwenhuizen | 86c6188906 | |
Jan Nieuwenhuizen | feb8fc2bad | |
Jan Nieuwenhuizen | 5e5be32e6f | |
Jan Nieuwenhuizen | a43de2947d | |
Jan Nieuwenhuizen | 35e203e49c | |
Jan Nieuwenhuizen | f470ec826d | |
Jan Nieuwenhuizen | 2102d0d26e | |
Jan Nieuwenhuizen | 51c6e0626d | |
Jan Nieuwenhuizen | 0b7a0a2d23 | |
Jan Nieuwenhuizen | 56315d3da5 | |
Jan Nieuwenhuizen | e2cf54fae5 | |
Jan Nieuwenhuizen | 7ac74192c9 | |
Jan Nieuwenhuizen | 5ccf23f7e2 | |
Jan Nieuwenhuizen | 9a82d835cd | |
Jan Nieuwenhuizen | 99be4bf07e | |
Jan Nieuwenhuizen | 3ebee71653 | |
Jan Nieuwenhuizen | 41db6e22d1 | |
Jan Nieuwenhuizen | d6e3618c39 |
143
.dir-locals.el
143
.dir-locals.el
|
@ -1,5 +1,5 @@
|
|||
;;; GNU Mes --- Maxwell Equations of Software
|
||||
;;; Copyright © 2018 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
|
||||
;;; Copyright © 2018,2019 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
|
||||
;;;
|
||||
;;; This file is part of GNU Mes.
|
||||
;;;
|
||||
|
@ -16,73 +16,20 @@
|
|||
;;; You should have received a copy of the GNU General Public License
|
||||
;;; along with GNU Mes. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
((nil
|
||||
.
|
||||
((indent-tabs-mode . nil)
|
||||
(eval
|
||||
.
|
||||
(progn
|
||||
(let ((top (locate-dominating-file default-directory ".dir-locals.el"))))
|
||||
;; The GNU project defaults. These are also the GNU Emacs defaults.
|
||||
;; Re-asserting theme here, however, as a courtesy for setups that use
|
||||
;; a global override.
|
||||
(
|
||||
;; For writing GNU C code, see
|
||||
;; https://www.gnu.org/prep/standards/html_node/Writing-C.html
|
||||
(c-mode . ((c-file-style . "gnu")
|
||||
(indent-tabs-mode . nil)))
|
||||
|
||||
(defun guile--manual-look-up (id mod)
|
||||
(message "guile--manual-look-up id=%s => %s mod=%s" id (symbol-name id) mod)
|
||||
(let ((info-lookup-other-window-flag
|
||||
geiser-guile-manual-lookup-other-window-p))
|
||||
(info-lookup-symbol (symbol-name id) 'scheme-mode))
|
||||
(when geiser-guile-manual-lookup-other-window-p
|
||||
(switch-to-buffer-other-window "*info*"))
|
||||
(search-forward (format "%s" id) nil t))
|
||||
(makefile-mode . ((indent-tabs-mode . t)))
|
||||
|
||||
(add-hook 'before-save-hook 'delete-trailing-whitespace nil t)
|
||||
(nil . ((indent-tabs-mode . nil)
|
||||
(fill-column . 72)))
|
||||
|
||||
(defun guix-switch-profile (&optional profile)
|
||||
"reset Emacs' environment by snarfing PROFILE/etc/profile"
|
||||
|
||||
(defun matches-in-string (regexp string)
|
||||
"return a list of matches of REGEXP in STRING."
|
||||
(let ((matches))
|
||||
(save-match-data
|
||||
(string-match "^" "")
|
||||
(while (string-match regexp string (match-end 0))
|
||||
(push (or (match-string 1 string) (match-string 0 string)) matches)))
|
||||
matches))
|
||||
|
||||
(interactive "fprofile: ")
|
||||
(let* ((output (shell-command-to-string (concat "GUIX_PROFILE= /bin/sh -x " profile "/etc/profile")))
|
||||
(exports (matches-in-string "^[+] export \\(.*\\)" output)))
|
||||
(mapcar (lambda (line) (apply #'setenv (split-string line "="))) exports )))
|
||||
|
||||
(defun shell-args-to-string (&rest args)
|
||||
(shell-command-to-string (mapconcat 'identity args " ")))
|
||||
|
||||
(defun as (string &optional arch)
|
||||
(let* ((arch (or arch "--64"))
|
||||
(asm (subst-char-in-string ?_ ?\s string))
|
||||
(foo (message "asm:%S" asm))
|
||||
(result (shell-args-to-string "as" arch (concat "<(echo '" asm "')")))
|
||||
(disassembly (shell-args-to-string "objdump" "-d" "a.out"))
|
||||
(foo (message "disassembly: %S" disassembly))
|
||||
(match (string-match "^ 0:[\t]\\([^\t]*\\)" disassembly))
|
||||
(code (match-string 1 disassembly))
|
||||
(code (apply 'concat (split-string code " " t))))
|
||||
(insert " ")
|
||||
(insert code)))
|
||||
|
||||
(defun as-32 (point mark)
|
||||
(interactive "r")
|
||||
(let* ((string (buffer-substring point mark))
|
||||
(code (as string "--32")))
|
||||
(insert " ")
|
||||
(insert code)))
|
||||
|
||||
(defun as-64 (point mark)
|
||||
(interactive "r")
|
||||
(let* ((string (buffer-substring point mark))
|
||||
(code (as string "--64")))
|
||||
(insert " ")
|
||||
(insert code)))))))
|
||||
(makefile-mode
|
||||
(indent-tabs-mode . t))
|
||||
(scheme-mode
|
||||
.
|
||||
((geiser-active-implementations . (guile))
|
||||
|
@ -96,5 +43,69 @@
|
|||
(mapcar
|
||||
#'prefix-dir-locals-dir
|
||||
'("scripts" "module")))))))
|
||||
|
||||
(texinfo-mode . ((indent-tabs-mode . nil)
|
||||
(fill-column . 72))))
|
||||
(fill-column . 72)))
|
||||
(nil .
|
||||
((eval
|
||||
.
|
||||
(progn
|
||||
(let ((top (locate-dominating-file default-directory ".dir-locals.el"))))
|
||||
|
||||
(defun guile--manual-look-up (id mod)
|
||||
(message "guile--manual-look-up id=%s => %s mod=%s" id (symbol-name id) mod)
|
||||
(let ((info-lookup-other-window-flag
|
||||
geiser-guile-manual-lookup-other-window-p))
|
||||
(info-lookup-symbol (symbol-name id) 'scheme-mode))
|
||||
(when geiser-guile-manual-lookup-other-window-p
|
||||
(switch-to-buffer-other-window "*info*"))
|
||||
(search-forward (format "%s" id) nil t))
|
||||
|
||||
(add-hook 'before-save-hook 'delete-trailing-whitespace nil t)
|
||||
|
||||
(defun guix-switch-profile (&optional profile)
|
||||
"reset Emacs' environment by snarfing PROFILE/etc/profile"
|
||||
|
||||
(defun matches-in-string (regexp string)
|
||||
"return a list of matches of REGEXP in STRING."
|
||||
(let ((matches))
|
||||
(save-match-data
|
||||
(string-match "^" "")
|
||||
(while (string-match regexp string (match-end 0))
|
||||
(push (or (match-string 1 string) (match-string 0 string)) matches)))
|
||||
matches))
|
||||
|
||||
(interactive "fprofile: ")
|
||||
(let* ((output (shell-command-to-string (concat "GUIX_PROFILE= /bin/sh -x " profile "/etc/profile")))
|
||||
(exports (matches-in-string "^[+] export \\(.*\\)" output)))
|
||||
(mapcar (lambda (line) (apply #'setenv (split-string line "="))) exports )))
|
||||
|
||||
(defun shell-args-to-string (&rest args)
|
||||
(shell-command-to-string (mapconcat 'identity args " ")))
|
||||
|
||||
(defun as (string &optional arch)
|
||||
(let* ((arch (or arch "--64"))
|
||||
(asm (subst-char-in-string ?_ ?\s string))
|
||||
(foo (message "asm:%S" asm))
|
||||
(result (shell-args-to-string "as" arch (concat "<(echo '" asm "')")))
|
||||
(disassembly (shell-args-to-string "objdump" "-d" "a.out"))
|
||||
(foo (message "disassembly: %S" disassembly))
|
||||
(match (string-match "^ 0:[\t]\\([^\t]*\\)" disassembly))
|
||||
(code (match-string 1 disassembly))
|
||||
(code (apply 'concat (split-string code " " t))))
|
||||
(insert " ")
|
||||
(insert code)))
|
||||
|
||||
(defun as-32 (point mark)
|
||||
(interactive "r")
|
||||
(let* ((string (buffer-substring point mark))
|
||||
(code (as string "--32")))
|
||||
(insert " ")
|
||||
(insert code)))
|
||||
|
||||
(defun as-64 (point mark)
|
||||
(interactive "r")
|
||||
(let* ((string (buffer-substring point mark))
|
||||
(code (as string "--64")))
|
||||
(insert " ")
|
||||
(insert code))))))))
|
||||
|
|
|
@ -62,22 +62,52 @@
|
|||
/lib/x86-mes/0exit-42
|
||||
/lib/x86-mes/exit-42
|
||||
|
||||
/lib/tests/*/[0-9a][0-9a-z]-*
|
||||
/lib/tests/*/x86-mes-*
|
||||
!/lib/tests/*/*.c
|
||||
!/lib/tests/*/*.exit
|
||||
!/lib/tests/*/*.stdout
|
||||
|
||||
/scaffold/argv
|
||||
/scaffold/hello
|
||||
/scaffold/main
|
||||
/scaffold/malloc
|
||||
/scaffold/micro-mes
|
||||
/scaffold/tiny-mes
|
||||
/scaffold/mini-mes
|
||||
|
||||
/scaffold/x86-mes-*
|
||||
/scaffold/x86_64-mes-*
|
||||
|
||||
/scaffold/tests/x86-mes-*
|
||||
/scaffold/tests/[0-9a][0-9a-z]-[^.]*
|
||||
/scaffold/tests/[0-9a][0-9a-z]-*
|
||||
/scaffold/tests/t.*
|
||||
!/scaffold/tests/*.c
|
||||
!/scaffold/tests/*.exit
|
||||
!/scaffold/tests/*.stdout
|
||||
|
||||
/src/mes.mes.symbols.h
|
||||
/src/gc.mes.h
|
||||
/src/hash.mes.h
|
||||
/src/lib.mes.h
|
||||
/src/math.mes.h
|
||||
/src/mes.mes.h
|
||||
/src/module.mes.h
|
||||
/src/posix.mes.h
|
||||
/src/reader.mes.h
|
||||
/src/strings.mes.h
|
||||
/src/struct.mes.h
|
||||
/src/vector.mes.h
|
||||
/src/gc.mes.i
|
||||
/src/hash.mes.i
|
||||
/src/lib.mes.i
|
||||
/src/math.mes.i
|
||||
/src/mes.mes.i
|
||||
/src/module.mes.i
|
||||
/src/posix.mes.i
|
||||
/src/reader.mes.i
|
||||
/src/strings.mes.i
|
||||
/src/struct.mes.i
|
||||
/src/vector.mes.i
|
||||
|
||||
/src/*.h
|
||||
/src/*.i
|
||||
/src/mes
|
||||
/src/x86-mes-mes
|
||||
/src/x86_64-mes-mes
|
||||
|
@ -124,3 +154,5 @@
|
|||
/doc/images/gcc-mesboot-graph.eps
|
||||
/doc/images/gcc-mesboot-graph.pdf
|
||||
/doc/web/
|
||||
/lib/x86_64-mes/0exit-42
|
||||
/lib/x86_64-mes/exit-42
|
||||
|
|
7
HACKING
7
HACKING
|
@ -8,15 +8,15 @@ Copyright © 2016,2017,2018 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
|
|||
notice and this notice are preserved.
|
||||
|
||||
* SETUP
|
||||
guix environment -l .guix.scm #64 bit + 32bit
|
||||
GUIX_PACKAGE_PATH=guix guix environment -l .guix.scm #64 bit + 32bit
|
||||
|
||||
or
|
||||
|
||||
guix environment --system=i686-linux -l .guix.scm #32 bit only
|
||||
GUIX_PACKAGE_PATH=guix guix environment --system=i686-linux -l .guix.scm #32 bit only
|
||||
|
||||
or
|
||||
|
||||
guix package --profile=~/.config/guix/mes --manifest=build-aux/manifest.scm
|
||||
GUIX_PACKAGE_PATH=guix guix package --profile=~/.config/guix/mes --manifest=build-aux/manifest.scm
|
||||
. ~/.config/guix/mes/etc/profile
|
||||
|
||||
* BUILD
|
||||
|
@ -260,3 +260,4 @@ https://notabug.org/rain1/hex86/src/master/tests/hex0b3.hex86
|
|||
** <pdewacht> e.g. as described here
|
||||
https://jamey.thesharps.us/2016/07/15/testing-strategies-for-corrode/
|
||||
("Randomized testing with Csmith and C-Reduce") [10:58]
|
||||
** linux syscalls: https://fedora.juszkiewicz.com.pl/syscalls.html
|
||||
|
|
4
INSTALL
4
INSTALL
|
@ -19,8 +19,8 @@ similar way.
|
|||
* Regular build
|
||||
** Prerequisites
|
||||
*** Guix
|
||||
guix environment -l .guix.scm #64 bit + 32bit
|
||||
guix environment --system=i686-linux -l .guix.scm #32 bit only
|
||||
GUIX_PACKAGE_PATH=guix guix environment -l .guix.scm #64 bit + 32bit
|
||||
GUIX_PACKAGE_PATH=guix guix environment --system=i686-linux -l .guix.scm #32 bit only
|
||||
|
||||
*** Other GNU/Linux
|
||||
- [[https://github.com/oriansj/mescc-tools][mescc-tools]], 0.5 is known to work.
|
||||
|
|
|
@ -10,18 +10,6 @@ MES_ARENA=${MES_ARENA-100000000}
|
|||
MES_MAX_ARENA=${MES_MAX_ARENA-100000000}
|
||||
MES_STACK=${MES_STACK-500000}
|
||||
|
||||
@GUILE@ -e '(mes-snarf)' build-aux/mes-snarf.scm --mes src/gc.c
|
||||
@GUILE@ -e '(mes-snarf)' build-aux/mes-snarf.scm --mes src/hash.c
|
||||
@GUILE@ -e '(mes-snarf)' build-aux/mes-snarf.scm --mes src/lib.c
|
||||
@GUILE@ -e '(mes-snarf)' build-aux/mes-snarf.scm --mes src/math.c
|
||||
@GUILE@ -e '(mes-snarf)' build-aux/mes-snarf.scm --mes src/mes.c
|
||||
@GUILE@ -e '(mes-snarf)' build-aux/mes-snarf.scm --mes src/module.c
|
||||
@GUILE@ -e '(mes-snarf)' build-aux/mes-snarf.scm --mes src/posix.c
|
||||
@GUILE@ -e '(mes-snarf)' build-aux/mes-snarf.scm --mes src/reader.c
|
||||
@GUILE@ -e '(mes-snarf)' build-aux/mes-snarf.scm --mes src/strings.c
|
||||
@GUILE@ -e '(mes-snarf)' build-aux/mes-snarf.scm --mes src/struct.c
|
||||
@GUILE@ -e '(mes-snarf)' build-aux/mes-snarf.scm --mes src/vector.c
|
||||
|
||||
hex2 --LittleEndian --Architecture 1 --BaseAddress 0x1000000 -f lib/x86-mes/elf32-0header.hex2 -f lib/x86-mes/elf32-body-exit-42.hex2 -f lib/x86-mes/elf-0footer.hex2 --exec_enable -o lib/x86-mes/0exit-42
|
||||
hex2 --LittleEndian --Architecture 1 --BaseAddress 0x1000000 -f lib/x86-mes/elf32-header.hex2 -f lib/x86-mes/elf32-body-exit-42.hex2 -f lib/x86-mes/elf32-footer-single-main.hex2 --exec_enable -o lib/x86-mes/exit-42
|
||||
M1 --LittleEndian --Architecture 1 -f lib/x86-mes/x86.M1 -f @MES_SEED@/x86-mes/crt1.S -o lib/x86-mes/crt1.o
|
||||
|
@ -63,9 +51,9 @@ mv lib/libc+gnu.x86-mes-o lib/x86-mes/libc+gnu.o
|
|||
|
||||
@GUILE@ -e main -L module scripts/mescc.scm -v -g -L lib/linux/x86-mes -L lib/linux -L lib/x86-mes -L lib -L @MES_SEED@ -o scaffold/x86-mes-argv scaffold/argv.x86-mes-o -l c-mini
|
||||
|
||||
@GUILE@ -e main -L module scripts/mescc.scm -c -D 'VERSION="@VERSION@"' -D 'MODULEDIR="@moduledir@"' -D 'PREFIX="@prefix@"' -I . -I lib -I include -v -g -L lib/linux/x86-mes -L lib/linux -L lib/x86-mes -L lib -L @MES_SEED@ -o scaffold/malloc.x86-mes-o scaffold/malloc.c
|
||||
@GUILE@ -e main -L module scripts/mescc.scm -c -D 'VERSION="@VERSION@"' -D 'MODULEDIR="@moduledir@"' -D 'PREFIX="@prefix@"' -I . -I lib -I include -v -g -L lib/linux/x86-mes -L lib/linux -L lib/x86-mes -L lib -L @MES_SEED@ -o lib/tests/stdlib/50-malloc.x86-mes-o lib/tests/stdlib/50-malloc.c
|
||||
|
||||
@GUILE@ -e main -L module scripts/mescc.scm -v -g -L lib/linux/x86-mes -L lib/linux -L lib/x86-mes -L lib -L @MES_SEED@ -o scaffold/x86-mes-malloc scaffold/malloc.x86-mes-o -l c
|
||||
@GUILE@ -e main -L module scripts/mescc.scm -c -D 'VERSION="@VERSION@"' -D 'MODULEDIR="@moduledir@"' -D 'PREFIX="@prefix@"' -I . -I lib -I include -v -g -L lib/linux/x86-mes -L lib/linux -L lib/x86-mes -L lib -L @MES_SEED@ -o lib/tests/posix/50-getenv.x86-mes-o lib/tests/posix/50-getenv.c
|
||||
|
||||
@GUILE@ -e main -L module scripts/mescc.scm -c -D 'VERSION="@VERSION@"' -D 'MODULEDIR="@moduledir@"' -D 'PREFIX="@prefix@"' -I . -I lib -I include -v -g -L lib/linux/x86-mes -L lib/linux -L lib/x86-mes -L lib -L @MES_SEED@ -o scaffold/micro-mes.x86-mes-o scaffold/micro-mes.c
|
||||
|
||||
|
|
|
@ -32,7 +32,7 @@ fi
|
|||
[ "$mes_p" -a ! "$gcc_p" ] && cp -f lib/linux/$mes_arch/crt1.S lib/$mes_arch/crt1.S
|
||||
[ "$mes_p" -a ! "$gcc_p" ] && cp -f lib/linux/$mes_arch/crt1.o lib/$mes_arch/crt1.o
|
||||
|
||||
[ ! "$mesc_p" -a ! "$posix_p" ] && (program_prefix= compile lib/linux/$mes_arch/crt0)
|
||||
[ ! "$mesc_p" -a ! "$with_glibc_p" ] && (program_prefix= compile lib/linux/$mes_arch/crt0)
|
||||
[ "$mes_p" -a "$gcc_p" ] && (program_prefix= compile lib/linux/$mes_arch/crti)
|
||||
[ "$mes_p" -a "$gcc_p" ] && (program_prefix= compile lib/linux/$mes_arch/crtn)
|
||||
|
||||
|
@ -69,14 +69,18 @@ compile scaffold/hello
|
|||
compile scaffold/argv
|
||||
(libc="-l c-mini" link scaffold/argv)
|
||||
|
||||
[ "$mes_p" ] && compile scaffold/malloc
|
||||
[ "$mes_p" ] && link scaffold/malloc
|
||||
[ "$mes_p" ] && compile lib/tests/stdlib/50-malloc
|
||||
[ "$mes_p" ] && link lib/tests/stdlib/50-malloc
|
||||
|
||||
[ "$mes_p" ] && compile lib/tests/posix/50-getenv
|
||||
[ "$mes_p" ] && link lib/tests/posix/50-getenv
|
||||
|
||||
|
||||
[ "$mes_p" ] && compile scaffold/micro-mes
|
||||
[ "$mes_p" ] && link scaffold/micro-mes
|
||||
|
||||
[ "$mes_p" ] && compile scaffold/tiny-mes
|
||||
[ "$mes_p" ] && link scaffold/tiny-mes
|
||||
#[ "$mes_p" ] && compile scaffold/mini-mes
|
||||
#[ "$mes_p" ] && link scaffold/mini-mes
|
||||
|
||||
compile src/mes
|
||||
link src/mes
|
||||
|
|
|
@ -27,13 +27,6 @@ if [ -n "$GUILE" -a "$GUILE" != true ]; then
|
|||
sh ${srcdest}build-aux/build-guile.sh
|
||||
fi
|
||||
|
||||
if [ ! "$mes_p" ]; then
|
||||
sh ${srcdest}build-aux/snarf.sh
|
||||
#elif [ ! -d "$MES_SEED" ]; then
|
||||
#else
|
||||
fi
|
||||
sh ${srcdest}build-aux/snarf.sh --mes
|
||||
|
||||
if [ "$gcc_p$tcc_p" ]; then
|
||||
sh ${srcdest}build-aux/build-mes.sh
|
||||
elif [ -d "$MES_SEED" ]; then
|
||||
|
@ -41,7 +34,7 @@ elif [ -d "$MES_SEED" ]; then
|
|||
fi
|
||||
|
||||
## FIXME: remove this and have user configure/build/install for each compiler?
|
||||
unset CFLAGS CPPFLAGS LDFLAGS gcc_p tcc_p posix_p
|
||||
unset CFLAGS CPPFLAGS LDFLAGS gcc_p tcc_p with_glibc_p
|
||||
MES=guile
|
||||
mesc_p=1
|
||||
mes_p=1
|
||||
|
|
|
@ -41,7 +41,7 @@ archive () {
|
|||
|
||||
link () {
|
||||
lib=$libc
|
||||
[ "$posix_p" ] && lib='-l mes'
|
||||
[ "$with_glibc_p" ] && lib='-l mes'
|
||||
out=$(dirname "$1")/${program_prefix}$(basename "$1")
|
||||
trace "CCLD $1" $CC $CFLAGS $LDFLAGS -o" $out" $crt1 "$1".${program_prefix}o $2 $lib
|
||||
}
|
||||
|
|
|
@ -66,14 +66,14 @@ for t in $tests; do
|
|||
echo $t: [SKIP];
|
||||
continue
|
||||
fi
|
||||
${top_builddir}/pre-inst-env sh "$t" &> $t.${mes}log
|
||||
${top_builddir}/pre-inst-env sh "$t" > $t.${mes}log 2>&1
|
||||
r=$?
|
||||
total=$((total+1))
|
||||
total=$(expr $total + 1)
|
||||
if [ $r = 0 ]; then
|
||||
echo $t: [${mes}OK]
|
||||
else
|
||||
echo $t: [${mes}FAIL]
|
||||
fail=$((fail+1))
|
||||
fail=$(expr $fail + 1)
|
||||
fi
|
||||
done
|
||||
if [ $fail != 0 ]; then
|
||||
|
|
|
@ -26,206 +26,216 @@ set -e
|
|||
test_sh=${test_sh-${srcdest}build-aux/test.sh}
|
||||
|
||||
tests="
|
||||
t
|
||||
00-exit-0
|
||||
01-return-0
|
||||
02-return-1
|
||||
03-call
|
||||
04-call-0
|
||||
05-call-1
|
||||
06-call-!1
|
||||
06-!call-1
|
||||
06-call-2
|
||||
06-call-string
|
||||
06-call-variable
|
||||
06-return-void
|
||||
07-include
|
||||
08-assign
|
||||
08-assign-negative
|
||||
08-assign-global
|
||||
10-if-0
|
||||
11-if-1
|
||||
12-if-==
|
||||
13-if-!=
|
||||
14-if-goto
|
||||
15-if-!f
|
||||
16-if-t
|
||||
17-compare-char
|
||||
17-compare-ge
|
||||
17-compare-gt
|
||||
17-compare-le
|
||||
17-compare-lt
|
||||
17-compare-unsigned-ge
|
||||
17-compare-unsigned-gt
|
||||
17-compare-unsigned-le
|
||||
17-compare-unsigned-lt
|
||||
17-compare-unsigned-char-le
|
||||
17-compare-unsigned-short-le
|
||||
17-compare-unsigned-long-le
|
||||
17-compare-and
|
||||
17-compare-or
|
||||
17-compare-and-or
|
||||
17-compare-assign
|
||||
17-compare-call
|
||||
18-assign-shadow
|
||||
20-while
|
||||
21-char[]-simple
|
||||
21-char[]
|
||||
22-while-char[]
|
||||
23-global-pointer-init-null
|
||||
23-global-pointer-init
|
||||
23-global-pointer-ref
|
||||
23-global-pointer-pointer-ref
|
||||
23-pointer-sub
|
||||
23-pointer
|
||||
30-strlen
|
||||
31-oputs
|
||||
32-call-wrap
|
||||
32-compare
|
||||
33-and-or
|
||||
34-pre-post
|
||||
35-compare-char
|
||||
36-compare-arithmetic
|
||||
37-compare-assign
|
||||
38-compare-call-2
|
||||
38-compare-call-3
|
||||
38-compare-call
|
||||
40-if-else
|
||||
41-?
|
||||
42-goto-label
|
||||
43-for-do-while
|
||||
44-switch
|
||||
44-switch-fallthrough
|
||||
44-switch-body-fallthrough
|
||||
45-void-call
|
||||
46-function-static
|
||||
47-function-expression
|
||||
48-global-static
|
||||
50-assert
|
||||
51-pointer-sub
|
||||
51-itoa
|
||||
51-strcmp
|
||||
51-strncmp
|
||||
53-strcpy
|
||||
54-argc
|
||||
54-argv
|
||||
55-char-array
|
||||
60-math
|
||||
61-array
|
||||
62-array
|
||||
63-struct
|
||||
63-struct-pointer
|
||||
63-struct-local
|
||||
63-struct-function
|
||||
63-struct-assign
|
||||
63-struct-array
|
||||
63-struct-array-assign
|
||||
63-struct-array-compare
|
||||
63-struct-cell
|
||||
64-make-cell
|
||||
65-read
|
||||
66-local-char-array
|
||||
70-strchr
|
||||
70-stdarg
|
||||
70-printf-hello
|
||||
70-printf-simple
|
||||
70-printf
|
||||
71-struct-array
|
||||
72-typedef-struct-def
|
||||
73-union-hello
|
||||
73-union
|
||||
74-multi-line-string
|
||||
75-struct-union
|
||||
76-pointer-arithmetic-pp
|
||||
76-pointer-arithmetic
|
||||
77-pointer-assign
|
||||
78-union-struct
|
||||
79-int-array-simple
|
||||
79-int-array
|
||||
7a-struct-char-array
|
||||
7b-struct-int-array-hello
|
||||
7b-struct-int-array-pointer
|
||||
7b-struct-int-array
|
||||
7c-dynarray
|
||||
7d-cast-char
|
||||
7e-struct-array-access
|
||||
7f-struct-pointer-arithmetic
|
||||
7g-struct-byte-word-field
|
||||
7h-struct-assign
|
||||
7i-struct-struct-simple
|
||||
7i-struct-struct
|
||||
7j-strtoull
|
||||
7k-empty-for
|
||||
7k-for-each-elem-simple
|
||||
7k-for-each-elem
|
||||
7l-struct-any-size-array-simple
|
||||
7l-struct-any-size-array
|
||||
7m-struct-char-array-assign
|
||||
7n-struct-struct-array
|
||||
7o-struct-pre-post-simple
|
||||
7o-struct-pre-post
|
||||
7p-struct-cast
|
||||
7q-bit-field-simple
|
||||
7q-bit-field
|
||||
7r-sign-extend
|
||||
7s-struct-short
|
||||
7s-unsigned-compare
|
||||
7t-function-destruct
|
||||
7u-double
|
||||
7u-long-long
|
||||
7u-?-expression
|
||||
7u-call-?
|
||||
7u-inc-byte-word
|
||||
7u-struct-func
|
||||
7u-struct-size10
|
||||
7u-vstack
|
||||
80-setjmp
|
||||
81-qsort
|
||||
81-qsort-dupes
|
||||
82-define
|
||||
83-heterogenoous-init
|
||||
84-struct-field-list
|
||||
85-sizeof
|
||||
86-strncpy
|
||||
87-sscanf
|
||||
88-strrchr
|
||||
90-strspn
|
||||
90-strpbrk
|
||||
91-fseek
|
||||
92-stat
|
||||
93-fread-fwrite
|
||||
94-unsetenv
|
||||
95-signal
|
||||
96-strto
|
||||
97-fopen
|
||||
98-fopen
|
||||
99-readdir
|
||||
9a-snprintf
|
||||
a0-call-trunc-char
|
||||
a0-call-trunc-short
|
||||
a0-call-trunc-int
|
||||
a0-math-divide-signed-negative
|
||||
a1-global-no-align
|
||||
a1-global-no-clobber
|
||||
scaffold/tests/t
|
||||
scaffold/tests/00-exit-0
|
||||
scaffold/tests/01-return-0
|
||||
scaffold/tests/02-return-1
|
||||
scaffold/tests/03-call
|
||||
scaffold/tests/04-call-0
|
||||
scaffold/tests/05-call-1
|
||||
scaffold/tests/06-call-not-1
|
||||
scaffold/tests/06-not-call-1
|
||||
scaffold/tests/06-call-2
|
||||
scaffold/tests/06-call-string
|
||||
scaffold/tests/06-call-variable
|
||||
scaffold/tests/06-return-void
|
||||
scaffold/tests/07-include
|
||||
scaffold/tests/08-assign
|
||||
scaffold/tests/08-assign-negative
|
||||
scaffold/tests/08-assign-global
|
||||
scaffold/tests/10-if-0
|
||||
scaffold/tests/11-if-1
|
||||
scaffold/tests/12-if-eq
|
||||
scaffold/tests/13-if-neq
|
||||
scaffold/tests/14-if-goto
|
||||
scaffold/tests/15-if-not-f
|
||||
scaffold/tests/16-if-t
|
||||
scaffold/tests/17-compare-char
|
||||
scaffold/tests/17-compare-ge
|
||||
scaffold/tests/17-compare-gt
|
||||
scaffold/tests/17-compare-le
|
||||
scaffold/tests/17-compare-lt
|
||||
scaffold/tests/17-compare-unsigned-ge
|
||||
scaffold/tests/17-compare-unsigned-gt
|
||||
scaffold/tests/17-compare-unsigned-le
|
||||
scaffold/tests/17-compare-unsigned-lt
|
||||
scaffold/tests/17-compare-unsigned-char-le
|
||||
scaffold/tests/17-compare-unsigned-short-le
|
||||
scaffold/tests/17-compare-unsigned-long-le
|
||||
scaffold/tests/17-compare-and
|
||||
scaffold/tests/17-compare-or
|
||||
scaffold/tests/17-compare-and-or
|
||||
scaffold/tests/17-compare-assign
|
||||
scaffold/tests/17-compare-call
|
||||
scaffold/tests/18-assign-shadow
|
||||
scaffold/tests/20-while
|
||||
scaffold/tests/21-char-array-simple
|
||||
scaffold/tests/21-char-array
|
||||
scaffold/tests/22-while-char-array
|
||||
scaffold/tests/23-global-pointer-init-null
|
||||
scaffold/tests/23-global-pointer-init
|
||||
scaffold/tests/23-global-pointer-ref
|
||||
scaffold/tests/23-global-pointer-pointer-ref
|
||||
scaffold/tests/23-pointer-sub
|
||||
scaffold/tests/23-pointer
|
||||
lib/tests/mes/30-oputs
|
||||
lib/tests/string/30-strlen
|
||||
scaffold/tests/32-call-wrap
|
||||
scaffold/tests/32-compare
|
||||
scaffold/tests/33-and-or
|
||||
scaffold/tests/34-pre-post
|
||||
scaffold/tests/35-compare-char
|
||||
scaffold/tests/36-compare-arithmetic
|
||||
scaffold/tests/37-compare-assign
|
||||
scaffold/tests/38-compare-call-2
|
||||
scaffold/tests/38-compare-call-3
|
||||
scaffold/tests/38-compare-call
|
||||
scaffold/tests/40-if-else
|
||||
scaffold/tests/41-ternary
|
||||
scaffold/tests/42-goto-label
|
||||
scaffold/tests/43-for-do-while
|
||||
scaffold/tests/44-switch
|
||||
scaffold/tests/44-switch-fallthrough
|
||||
scaffold/tests/44-switch-body-fallthrough
|
||||
scaffold/tests/45-void-call
|
||||
scaffold/tests/46-function-static
|
||||
scaffold/tests/47-function-expression
|
||||
scaffold/tests/48-global-static
|
||||
lib/tests/assert/50-assert
|
||||
lib/tests/mes/50-itoa
|
||||
lib/tests/posix/50-getenv
|
||||
lib/tests/string/50-strcmp
|
||||
lib/tests/string/50-strcpy
|
||||
lib/tests/string/50-strncmp
|
||||
scaffold/tests/51-pointer-sub
|
||||
scaffold/tests/54-argc
|
||||
scaffold/tests/54-argv
|
||||
scaffold/tests/55-char-array
|
||||
scaffold/tests/60-math
|
||||
scaffold/tests/61-array
|
||||
scaffold/tests/62-array
|
||||
scaffold/tests/63-struct
|
||||
scaffold/tests/63-struct-pointer
|
||||
scaffold/tests/63-struct-local
|
||||
scaffold/tests/63-struct-function
|
||||
scaffold/tests/63-struct-assign
|
||||
scaffold/tests/63-struct-array
|
||||
scaffold/tests/63-struct-array-assign
|
||||
scaffold/tests/63-struct-array-compare
|
||||
scaffold/tests/63-struct-cell
|
||||
scaffold/tests/64-make-cell
|
||||
scaffold/tests/65-read
|
||||
scaffold/tests/66-local-char-array
|
||||
scaffold/tests/70-stdarg
|
||||
lib/tests/stdio/70-printf-hello
|
||||
lib/tests/stdio/70-printf-simple
|
||||
lib/tests/stdio/70-printf
|
||||
lib/tests/stdlib/70-strtoull
|
||||
lib/tests/string/70-strchr
|
||||
scaffold/tests/71-struct-array
|
||||
scaffold/tests/72-typedef-struct-def
|
||||
scaffold/tests/73-union-hello
|
||||
scaffold/tests/73-union
|
||||
scaffold/tests/74-multi-line-string
|
||||
scaffold/tests/75-struct-union
|
||||
scaffold/tests/76-pointer-arithmetic-pp
|
||||
scaffold/tests/76-pointer-arithmetic
|
||||
scaffold/tests/77-pointer-assign
|
||||
scaffold/tests/78-union-struct
|
||||
scaffold/tests/79-int-array-simple
|
||||
scaffold/tests/79-int-array
|
||||
scaffold/tests/7a-struct-char-array
|
||||
scaffold/tests/7b-struct-int-array-hello
|
||||
scaffold/tests/7b-struct-int-array-pointer
|
||||
scaffold/tests/7b-struct-int-array
|
||||
scaffold/tests/7c-dynarray
|
||||
scaffold/tests/7d-cast-char
|
||||
scaffold/tests/7e-struct-array-access
|
||||
scaffold/tests/7f-struct-pointer-arithmetic
|
||||
scaffold/tests/7g-struct-byte-word-field
|
||||
scaffold/tests/7h-struct-assign
|
||||
scaffold/tests/7i-struct-struct-simple
|
||||
scaffold/tests/7i-struct-struct
|
||||
scaffold/tests/7k-empty-for
|
||||
scaffold/tests/7k-for-each-elem-simple
|
||||
scaffold/tests/7k-for-each-elem
|
||||
scaffold/tests/7l-struct-any-size-array-simple
|
||||
scaffold/tests/7l-struct-any-size-array
|
||||
scaffold/tests/7m-struct-char-array-assign
|
||||
scaffold/tests/7n-struct-struct-array
|
||||
scaffold/tests/7o-struct-pre-post-simple
|
||||
scaffold/tests/7o-struct-pre-post
|
||||
scaffold/tests/7p-struct-cast
|
||||
scaffold/tests/7q-bit-field-simple
|
||||
scaffold/tests/7q-bit-field
|
||||
scaffold/tests/7r-sign-extend
|
||||
scaffold/tests/7s-struct-short
|
||||
scaffold/tests/7s-unsigned-compare
|
||||
scaffold/tests/7t-function-destruct
|
||||
scaffold/tests/7u-double
|
||||
scaffold/tests/7u-long-long
|
||||
scaffold/tests/7u-ternary-expression
|
||||
scaffold/tests/7u-call-ternary
|
||||
scaffold/tests/7u-inc-byte-word
|
||||
scaffold/tests/7u-struct-func
|
||||
scaffold/tests/7u-struct-size10
|
||||
scaffold/tests/7u-vstack
|
||||
lib/tests/setjmp/80-setjmp
|
||||
lib/tests/stdio/80-sscanf
|
||||
lib/tests/stdlib/80-qsort
|
||||
lib/tests/stdlib/80-qsort-dupes
|
||||
lib/tests/string/80-strncpy
|
||||
lib/tests/string/80-strrchr
|
||||
scaffold/tests/82-define
|
||||
scaffold/tests/83-heterogenoous-init
|
||||
scaffold/tests/84-struct-field-list
|
||||
scaffold/tests/85-sizeof
|
||||
lib/tests/dirent/90-readdir
|
||||
lib/tests/io/90-stat
|
||||
lib/tests/mes/90-abtod
|
||||
lib/tests/mes/90-dtoab
|
||||
lib/tests/posix/90-execlp
|
||||
lib/tests/posix/90-unsetenv
|
||||
lib/tests/signal/90-signal
|
||||
lib/tests/stdio/90-fopen
|
||||
lib/tests/stdio/90-fopen-append
|
||||
lib/tests/stdio/90-fread-fwrite
|
||||
lib/tests/stdio/90-fseek
|
||||
lib/tests/stdio/90-sprintf
|
||||
lib/tests/stdio/90-sscanf
|
||||
lib/tests/stdlib/90-strtol
|
||||
lib/tests/string/90-snprintf
|
||||
lib/tests/string/90-strpbrk
|
||||
lib/tests/string/90-strspn
|
||||
scaffold/tests/a0-call-trunc-char
|
||||
scaffold/tests/a0-call-trunc-short
|
||||
scaffold/tests/a0-call-trunc-int
|
||||
scaffold/tests/a0-math-divide-signed-negative
|
||||
scaffold/tests/a1-global-no-align
|
||||
scaffold/tests/a1-global-no-clobber
|
||||
"
|
||||
|
||||
broken="$broken
|
||||
17-compare-unsigned-char-le
|
||||
17-compare-unsigned-short-le
|
||||
66-local-char-array
|
||||
a0-call-trunc-int
|
||||
a0-math-divide-signed-negative
|
||||
scaffold/tests/17-compare-unsigned-char-le
|
||||
scaffold/tests/17-compare-unsigned-short-le
|
||||
scaffold/tests/66-local-char-array
|
||||
scaffold/tests/a0-call-trunc-int
|
||||
scaffold/tests/a0-math-divide-signed-negative
|
||||
lib/tests/mes/90-abtod
|
||||
lib/tests/mes/90-dtoab
|
||||
lib/tests/posix/50-getenv
|
||||
lib/tests/stdio/90-sprintf
|
||||
"
|
||||
|
||||
if [ "$mes_arch" = "x86_64-gcc" ]; then
|
||||
broken="$broken
|
||||
21-char[]
|
||||
41-?
|
||||
70-printf-stdarg
|
||||
70-printf-simple
|
||||
70-printf
|
||||
80-setjmp
|
||||
a1-global-no-align
|
||||
scaffold/tests/21-char-array
|
||||
scaffold/tests/41-ternary
|
||||
scaffold/tests/stdio/70-printf-stdarg
|
||||
scaffold/tests/stdio/70-printf-simple
|
||||
scaffold/tests/stdio/70-printf
|
||||
lib/tests/setjmp/80-setjmp
|
||||
scaffold/tests/a1-global-no-align
|
||||
"
|
||||
fi
|
||||
|
||||
|
@ -234,34 +244,34 @@ expect=$(echo $broken | wc -w)
|
|||
pass=0
|
||||
fail=0
|
||||
total=0
|
||||
mkdir -p scaffold/tests
|
||||
for t in $tests; do
|
||||
if [ -z "${t/[012][0-9]-*/}" ]; then
|
||||
b=$(basename "$t")
|
||||
if [ -z "${b/[012][0-9]-*/}" ]; then
|
||||
libc=
|
||||
elif [ -z "${t/[34][0-9]-*/}" ]; then
|
||||
elif [ -z "${b/[34][0-9]-*/}" ]; then
|
||||
libc='-l c-mini'
|
||||
elif [ -z "${t/[78][0-9a-z]-*/}" ]; then
|
||||
elif [ -z "${b/[78][0-9a-z]-*/}" ]; then
|
||||
libc='-l c+tcc'
|
||||
elif [ -z "${t/9[0-9a-z]-*/}" ]; then
|
||||
elif [ -z "${b/9[0-9a-z]-*/}" ]; then
|
||||
libc='-l c+gnu'
|
||||
else
|
||||
libc='-l c'
|
||||
fi
|
||||
sh $test_sh "scaffold/tests/$t" &> scaffold/tests/"$t".log
|
||||
sh $test_sh "$t" > "$t".log 2>&1
|
||||
r=$?
|
||||
total=$((total+1))
|
||||
total=$(expr $total + 1)
|
||||
if [ $r = 0 ]; then
|
||||
echo $t: [OK]
|
||||
pass=$((pass+1))
|
||||
pass=$(expr $pass + 1)
|
||||
else
|
||||
echo $t: [FAIL]
|
||||
fail=$((fail+1))
|
||||
fail=$(expr $fail + 1)
|
||||
fi
|
||||
done
|
||||
|
||||
[ $expect != 0 ] && echo "expect: $expect"
|
||||
[ $fail != 0 ] && echo "failed: $fail"
|
||||
[ $fail -lt $expect ] && echo "solved: $(($expect - $fail))"
|
||||
[ $fail -lt $expect ] && echo "solved: $(expr $expect - $fail)"
|
||||
echo "passed: $pass"
|
||||
echo "total: $total"
|
||||
if [ $fail != 0 -a $fail -gt $expect ]; then
|
||||
|
|
|
@ -135,20 +135,20 @@ for t in $tests; do
|
|||
continue;
|
||||
fi
|
||||
cp $TINYCC_PREFIX/tests/tests2/$i* scaffold/tinycc
|
||||
sh ${srcdest}build-aux/test.sh "scaffold/tinycc/$t" &> scaffold/tinycc/"$t".log
|
||||
sh ${srcdest}build-aux/test.sh "scaffold/tinycc/$t" > scaffold/tinycc/"$t".log 2>&1
|
||||
r=$?
|
||||
total=$((total+1))
|
||||
total=$(expr $total + 1)
|
||||
if [ $r = 0 ]; then
|
||||
echo $t: [OK]
|
||||
pass=$((pass+1))
|
||||
pass=$(expr $pass + 1)
|
||||
else
|
||||
echo $t: [FAIL]
|
||||
fail=$((fail+1))
|
||||
fail=$(expr $fail + 1)
|
||||
fi
|
||||
done
|
||||
[ $expect != 0 ] && echo "expect: $expect"
|
||||
[ $fail != 0 ] && echo "failed: $fail"
|
||||
[ $fail -lt $expect ] && echo "solved: $(($expect - $fail))"
|
||||
[ $fail -lt $expect ] && echo "solved: $(expr $expect - $fail)"
|
||||
echo "passed: $pass"
|
||||
echo "total: $total"
|
||||
if [ $fail != 0 -a $fail -gt $expect ]; then
|
||||
|
|
|
@ -25,8 +25,8 @@ set -e
|
|||
. ${srcdest}build-aux/trace.sh
|
||||
|
||||
./pre-inst-env bash ${srcdest}build-aux/check-boot.sh
|
||||
./pre-inst-env bash ${srcdest}build-aux/check-mes.sh
|
||||
./pre-inst-env bash ${srcdest}build-aux/check-mescc.sh
|
||||
./pre-inst-env sh ${srcdest}build-aux/check-mes.sh
|
||||
./pre-inst-env sh ${srcdest}build-aux/check-mescc.sh
|
||||
if [ -d $TINYCC_PREFIX/tests/tests2 ] ;then
|
||||
./pre-inst-env bash ${srcdest}build-aux/check-tcc.sh
|
||||
./pre-inst-env sh ${srcdest}build-aux/check-tcc.sh
|
||||
fi
|
||||
|
|
|
@ -64,7 +64,7 @@ infodir:=@infodir@
|
|||
libdir:=@libdir@
|
||||
mandir:=@mandir@
|
||||
moduledir:=@moduledir@
|
||||
posix_p:=@posix_p@
|
||||
with_glibc_p:=@with_glibc_p@
|
||||
program_prefix:=@program_prefix@
|
||||
srcdest:=@srcdest@
|
||||
srcdir:=@srcdir@
|
||||
|
|
|
@ -81,7 +81,7 @@ export mes_p
|
|||
export mesc_p
|
||||
export tcc_p
|
||||
export mes_arch
|
||||
export posix_p
|
||||
export with_glibc_p
|
||||
|
||||
CPPFLAGS=${CPPFLAGS-"
|
||||
-D 'VERSION=\"$VERSION\"'
|
||||
|
@ -92,7 +92,7 @@ CPPFLAGS=${CPPFLAGS-"
|
|||
-I ${srcdest}include
|
||||
"}
|
||||
|
||||
[ "$posix_p" ] && CPPFLAGS="$CPPFLAGS -D POSIX=1 -D WITH_GLIBC=1"
|
||||
[ "$with_glibc_p" ] && CPPFLAGS="$CPPFLAGS -D WITH_GLIBC=1"
|
||||
|
||||
LDFLAGS=${LDFLAGS-"
|
||||
-v
|
||||
|
|
|
@ -64,7 +64,7 @@ infodir="@infodir@"
|
|||
libdir="@libdir@"
|
||||
mandir="@mandir@"
|
||||
moduledir="@moduledir@"
|
||||
posix_p="@posix_p@"
|
||||
with_glibc_p="@with_glibc_p@"
|
||||
program_prefix="@program_prefix@"
|
||||
srcdest="@srcdest@"
|
||||
srcdir="@srcdir@"
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
#! /bin/sh
|
||||
|
||||
# GNU Mes --- Maxwell Equations of Software
|
||||
# Copyright © 2017,2018 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
|
||||
# Copyright © 2017,2018,2019 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
|
||||
#
|
||||
# This file is part of GNU Mes.
|
||||
#
|
||||
|
@ -25,7 +25,7 @@ set -e
|
|||
mes_prefix=@prefix@/share/mes
|
||||
|
||||
# use bash or lose if pipes fail
|
||||
if [ "$(basename $SHELL)" == bash ]; then
|
||||
if [ "$(basename $SHELL)" = bash ]; then
|
||||
set -o pipefail
|
||||
fi
|
||||
|
||||
|
@ -39,7 +39,7 @@ cp scripts/mescc $DESTDIR@bindir@/mescc
|
|||
sed \
|
||||
-e "s,^#! /bin/sh,#! @SHELL@," \
|
||||
scripts/diff.scm > $DESTDIR@bindir@/diff.scm
|
||||
chmod -w+x $DESTDIR@bindir@/diff.scm
|
||||
chmod +x $DESTDIR@bindir@/diff.scm
|
||||
|
||||
mkdir -p $DESTDIR@docdir@
|
||||
|
||||
|
@ -73,13 +73,28 @@ else
|
|||
fi
|
||||
|
||||
mkdir -p $DESTDIR$mes_prefix
|
||||
rm -f $(find lib -type f -a -executable)
|
||||
rm -f $(find lib/tests -type f -a -name '*.1')
|
||||
rm -f $(find lib/tests -type f -a -name '*.2')
|
||||
rm -f $(find lib/tests -type f -a -name '*.o')
|
||||
rm -f $(find lib/tests -type f -a -name '*.log')
|
||||
rm -f $(find lib/tests -type f -a -name '*.x86-mes*')
|
||||
rm -f $(find lib/tests -type f -a -name '*.x86_64-mes*')
|
||||
rm -f $(find scaffold -type f -a -executable)
|
||||
rm -f $(find scaffold -type f -a -name '*.1')
|
||||
rm -f $(find scaffold -type f -a -name '*.2')
|
||||
rm -f $(find scaffold -type f -a -name '*.o')
|
||||
rm -f $(find scaffold -type f -a -name '*.S')
|
||||
rm -f $(find scaffold -type f -a -name '*.log')
|
||||
rm -f $(find scaffold -type f -a -name '*.x86-mes*')
|
||||
rm -f $(find scaffold -type f -a -name '*.x86_64-mes*')
|
||||
if [ -z "$srcdest" ]; then
|
||||
tar -cf- --exclude='*.E' --exclude='*.*-out' include lib | tar -xf- -C $DESTDIR$mes_prefix
|
||||
tar -cf- include lib | tar -xf- -C $DESTDIR$mes_prefix
|
||||
tar -cf- --exclude='*.go' module | tar -xf- -C $DESTDIR$mes_prefix
|
||||
tar -cf- --exclude='*.gcc*' --exclude='*.mes*' scaffold | tar -xf- -C $DESTDIR$mes_prefix
|
||||
tar -cf- scaffold | tar -xf- -C $DESTDIR$mes_prefix
|
||||
else
|
||||
tar -cf- -C ${srcdest} include lib | tar -xf- -C $DESTDIR$mes_prefix
|
||||
tar -cf- -C lib --exclude='*.E' --exclude='*.*-out' | tar -xf- -C $DESTDIR$mes_prefix
|
||||
tar -cf- -C lib | tar -xf- -C $DESTDIR$mes_prefix
|
||||
tar -cf- -C ${srcdest} module | tar -xf- -C $DESTDIR$mes_prefix
|
||||
tar -cf- -C ${srcdest} scaffold | tar -xf- -C $DESTDIR$mes_prefix
|
||||
fi
|
||||
|
@ -92,23 +107,23 @@ if [ -f src/mes.x86_64-mes-S ]; then
|
|||
cp src/mes.x86_64-mes-S $DESTDIR$mes_prefix/lib/x86_64-mes/mes.S
|
||||
fi
|
||||
|
||||
mkdir -p $DESTDIR@guile_site_dir@
|
||||
mkdir -p $DESTDIR@guile_site_ccache_dir@
|
||||
tar -cf- -C ${srcdest}module --exclude='*.go' . | tar -xf- -C $DESTDIR@guile_site_dir@
|
||||
tar -cf- -C module --exclude='*.scm' . | tar -xf- -C $DESTDIR@guile_site_ccache_dir@
|
||||
mkdir -p ${DESTDIR}@guile_site_dir@
|
||||
mkdir -p ${DESTDIR}@guile_site_ccache_dir@
|
||||
tar -cf- -C ${srcdest}module --exclude='*.go' . | tar -xf- -C ${DESTDIR}@guile_site_dir@
|
||||
tar -cf- -C module --exclude='*.scm' . | tar -xf- -C ${DESTDIR}@guile_site_ccache_dir@
|
||||
|
||||
if [ -f doc/mes.info ]; then
|
||||
mkdir -p $DESTDIR@infodir@
|
||||
tar -cf- doc/mes.info* doc/images | tar -xf- --strip-components=1 -C $DESTDIR@infodir@
|
||||
install-info --info-dir=$DESTDIR@infodir@ doc/mes.info
|
||||
mkdir -p ${DESTDIR}@infodir@
|
||||
tar -cf- doc/mes.info* doc/images | tar -xf- --strip-components=1 -C ${DESTDIR}@infodir@
|
||||
install-info --info-dir=${DESTDIR}@infodir@ doc/mes.info
|
||||
fi
|
||||
|
||||
if [ -f doc/mes.1 ]; then
|
||||
mkdir -p $DESTDIR@mandir@/man1
|
||||
cp doc/mes.1 $DESTDIR@mandir@/man1/
|
||||
mkdir -p ${DESTDIR}@mandir@/man1
|
||||
cp doc/mes.1 ${DESTDIR}@mandir@/man1/
|
||||
fi
|
||||
|
||||
if [ -f doc/mescc.1 ]; then
|
||||
mkdir -p $DESTDIR@mandir@/man1
|
||||
cp doc/mescc.1 $DESTDIR@mandir@/man1/
|
||||
mkdir -p ${DESTDIR}@mandir@/man1
|
||||
cp doc/mescc.1 ${DESTDIR}@mandir@/man1/
|
||||
fi
|
||||
|
|
|
@ -101,50 +101,23 @@ exec ${GUILE-guile} --no-auto-compile -L $(dirname $0) -C $(dirname $0) -e '(mes
|
|||
|
||||
(define %start 1)
|
||||
(define (symbol->header s i)
|
||||
(format #f "#define cell_~a ~a\n" s i))
|
||||
|
||||
(define (symbol->source s i)
|
||||
(string-append
|
||||
(format #f "g_free++;\n")
|
||||
(format #f "g_cells[cell_~a] = scm_~a;\n\n" s s)))
|
||||
|
||||
(define (symbol->names s i)
|
||||
(if %gcc?
|
||||
(format #f "NAME_SYMBOL (cell_~a, scm_~a.name);\n" s s)
|
||||
(format #f "NAME_SYMBOL (cell_~a, scm_~a.cdr);\n" s s)))
|
||||
(format #f "// CONSTANT ~a ~a\n" s i)
|
||||
(format #f "#define ~a ~a\n" s i)))
|
||||
|
||||
(define (function->header f i)
|
||||
(let* ((arity (or (assoc-ref (function.annotation f) 'arity)
|
||||
(if (string-null? (function.formals f)) 0
|
||||
(length (string-split (function.formals f) #\,)))))
|
||||
(n (if (eq? arity 'n) -1 arity)))
|
||||
(string-append
|
||||
(format #f "SCM ~a (~a);\n" (function.name f) (function.formals f))
|
||||
(if %gcc?
|
||||
(format #f "struct function fun_~a = {.function~a=&~a, .arity=~a, .name=~s};\n" (function.name f) arity (function.name f) n (function-scm-name f))
|
||||
(format #f "struct function fun_~a = {&~a, ~a, ~s};\n" (function.name f) (function.name f) n (function-scm-name f)))
|
||||
(if %gcc?
|
||||
(format #f "struct scm ~a = {TFUNCTION, .name=0, .function=0};\n" (function-builtin-name f))
|
||||
(format #f "struct scm ~a = {TFUNCTION, 0, 0};\n" (function-builtin-name f)))
|
||||
(format #f "SCM cell_~a;\n\n" (function.name f)))))
|
||||
(format #f "SCM ~a (~a);\n" (function.name f) (function.formals f))))
|
||||
|
||||
(define (function->source f i)
|
||||
(string-append
|
||||
(if %gcc?
|
||||
(format #f "~a.function = g_function;\n" (function-builtin-name f))
|
||||
(format #f "~a.car = g_function;\n" (function-builtin-name f)))
|
||||
(format #f "g_functions[g_function++] = fun_~a;\n" (function.name f))
|
||||
(format #f "cell_~a = g_free++;\n" (function.name f))
|
||||
(format #f "g_cells[cell_~a] = ~a;\n\n" (function.name f) (function-builtin-name f))))
|
||||
|
||||
(define (function->environment f i)
|
||||
(string-append
|
||||
(if %gcc?
|
||||
(format #f "scm_~a.string = MAKE_BYTES0 (fun_~a.name);\n" (function.name f) (function.name f))
|
||||
(format #f "scm_~a.cdr = MAKE_BYTES0 (fun_~a.name);\n" (function.name f) (function.name f)))
|
||||
(if %gcc?
|
||||
(format #f "a = acons (cstring_to_symbol (CSTRING_STRUCT (scm_~a)), ~a, a);\n\n" (function.name f) (function-cell-name f))
|
||||
(format #f "a = acons (cstring_to_symbol (CSTRING_STRUCT (scm_~a)), ~a, a);\n\n" (function.name f) (function-cell-name f)))))
|
||||
(let* ((arity (or (assoc-ref (function.annotation f) 'arity)
|
||||
(if (string-null? (function.formals f)) 0
|
||||
(length (string-split (function.formals f) #\,)))))
|
||||
(n (if (eq? arity 'n) -1 arity)))
|
||||
(format #f " a = init_builtin (builtin_type, ~s, ~a, &~a, a);\n" (function.name f) n (function.name f))))
|
||||
|
||||
(define (disjoin . predicates)
|
||||
(lambda (. arguments)
|
||||
|
@ -152,12 +125,11 @@ exec ${GUILE-guile} --no-auto-compile -L $(dirname $0) -C $(dirname $0) -e '(mes
|
|||
|
||||
(define (snarf-symbols string)
|
||||
(let* ((lines (string-split string #\newline))
|
||||
(scm (filter (cut string-prefix? "struct scm scm_" <>) lines))
|
||||
(symbols (filter (disjoin (cut string-contains <> "TSPECIAL") (cut string-contains <> "TSYMBOL")) scm)))
|
||||
(symbols (filter (cut string-prefix? " init_symbol (" <>) lines)))
|
||||
(define (line->symbol line)
|
||||
((compose
|
||||
(lambda (s) (string-take s (string-index s #\space)))
|
||||
(cut string-drop <> (string-length "struct scm scm_")))
|
||||
(lambda (s) (string-take s (string-index s #\,)))
|
||||
(cut string-drop <> (string-length " init_symbol (")))
|
||||
line))
|
||||
(map line->symbol symbols)))
|
||||
|
||||
|
@ -218,27 +190,16 @@ exec ${GUILE-guile} --no-auto-compile -L $(dirname $0) -C $(dirname $0) -e '(mes
|
|||
(source (make-file
|
||||
(string-append base-name ".i")
|
||||
(string-join (map function->source (filter (negate no-environment?) functions) (iota (length functions) (+ (length symbols) %start))) "")))
|
||||
(environment (make-file
|
||||
(string-append base-name ".environment.i")
|
||||
(string-join (map function->environment (filter (negate no-environment?) functions) (iota (length functions) (+ (length symbols) %start))) "")))
|
||||
(symbols.h (make-file
|
||||
(string-append base-name ".symbols.h")
|
||||
(string-join (map symbol->header symbols (iota (length symbols) %start)) "")))
|
||||
(symbols.i (make-file
|
||||
(string-append base-name ".symbols.i")
|
||||
(string-join (map symbol->source symbols (iota (length symbols))) "")))
|
||||
(symbol-names.i (make-file
|
||||
(string-append base-name ".symbol-names.i")
|
||||
(string-join (map symbol->names symbols (iota (length symbols))) ""))))
|
||||
(list header source environment symbols.h symbols.i symbol-names.i)))
|
||||
(string-join (map symbol->header symbols (iota (length symbols) %start)) ""))))
|
||||
(list header source symbols.h)))
|
||||
|
||||
(define (file-write file)
|
||||
(system* "mkdir" "-p" (dirname (file.name file)))
|
||||
(with-output-to-file (file.name file) (lambda () (display (file.content file)))))
|
||||
|
||||
(define (main args)
|
||||
(let* ((files (if (not (and (pair? (cdr args)) (equal? (cadr args) "--mes"))) (cdr args)
|
||||
(begin (set! %gcc? #f)
|
||||
(cddr args))))
|
||||
(let* ((files (cdr args))
|
||||
(files (append-map generate-includes files)))
|
||||
(map file-write (filter content? files))))
|
||||
(for-each file-write (filter content? files))))
|
||||
|
|
|
@ -24,7 +24,7 @@ abs_top_builddir="@abs_top_builddir@"
|
|||
prefix=${prefix-@prefix@}
|
||||
program_prefix=${program_prefix-@program_prefix@}
|
||||
|
||||
MES_PREFIX=${MES_PREFIX-${srcdest}mes}
|
||||
MES_PREFIX=${MES_PREFIX-${abs_top_srcdir}/mes}
|
||||
export MES_PREFIX
|
||||
|
||||
GUILE_LOAD_COMPILED_PATH="$abs_top_builddir/scripts:$abs_top_builddir/module${GUILE_LOAD_COMPILED_PATH:+:}$GUILE_LOAD_COMPILED_PATH"
|
||||
|
|
|
@ -23,18 +23,14 @@ set -e
|
|||
. ${srcdest}build-aux/config.sh
|
||||
. ${srcdest}build-aux/trace.sh
|
||||
|
||||
snarf=" "
|
||||
if [ -n "$1" ]; then
|
||||
snarf=.mes
|
||||
fi
|
||||
trace "SNARF$snarf gc.c" ${srcdest}build-aux/mes-snarf.scm $1 src/gc.c
|
||||
trace "SNARF$snarf hash.c" ${srcdest}build-aux/mes-snarf.scm $1 src/hash.c
|
||||
trace "SNARF$snarf lib.c" ${srcdest}build-aux/mes-snarf.scm $1 src/lib.c
|
||||
trace "SNARF$snarf math.c" ${srcdest}build-aux/mes-snarf.scm $1 src/math.c
|
||||
trace "SNARF$snarf mes.c" ${srcdest}build-aux/mes-snarf.scm $1 src/mes.c
|
||||
trace "SNARF$snarf module.c" ${srcdest}build-aux/mes-snarf.scm $1 src/module.c
|
||||
trace "SNARF$snarf posix.c" ${srcdest}build-aux/mes-snarf.scm $1 src/posix.c
|
||||
trace "SNARF$snarf reader.c" ${srcdest}build-aux/mes-snarf.scm $1 src/reader.c
|
||||
trace "SNARF$snarf strings.c" ${srcdest}build-aux/mes-snarf.scm $1 src/strings.c
|
||||
trace "SNARF$snarf struct.c" ${srcdest}build-aux/mes-snarf.scm $1 src/struct.c
|
||||
trace "SNARF$snarf vector.c" ${srcdest}build-aux/mes-snarf.scm $1 src/vector.c
|
||||
trace "SNARF$snarf gc.c" ${srcdest}build-aux/mes-snarf.scm src/gc.c
|
||||
trace "SNARF$snarf hash.c" ${srcdest}build-aux/mes-snarf.scm src/hash.c
|
||||
trace "SNARF$snarf lib.c" ${srcdest}build-aux/mes-snarf.scm src/lib.c
|
||||
trace "SNARF$snarf math.c" ${srcdest}build-aux/mes-snarf.scm src/math.c
|
||||
trace "SNARF$snarf mes.c" ${srcdest}build-aux/mes-snarf.scm src/mes.c
|
||||
trace "SNARF$snarf module.c" ${srcdest}build-aux/mes-snarf.scm src/module.c
|
||||
trace "SNARF$snarf posix.c" ${srcdest}build-aux/mes-snarf.scm src/posix.c
|
||||
trace "SNARF$snarf reader.c" ${srcdest}build-aux/mes-snarf.scm src/reader.c
|
||||
trace "SNARF$snarf strings.c" ${srcdest}build-aux/mes-snarf.scm src/strings.c
|
||||
trace "SNARF$snarf struct.c" ${srcdest}build-aux/mes-snarf.scm src/struct.c
|
||||
trace "SNARF$snarf vector.c" ${srcdest}build-aux/mes-snarf.scm src/vector.c
|
||||
|
|
|
@ -38,12 +38,12 @@ link "$t"
|
|||
r=0
|
||||
[ -f "$t".exit ] && r=$(cat "$t".exit)
|
||||
set +e
|
||||
$(dirname "$o")/${program_prefix}$(basename "$o") $ARGS > "$o".${program_prefix}stdout
|
||||
$(dirname "$o")/${program_prefix}$(basename "$o") $ARGS > "$o".${program_prefix}1 2> "$o".${program_prefix}2
|
||||
m=$?
|
||||
cat "$o".${program_prefix}stdout
|
||||
cat "$o".${program_prefix}1
|
||||
set -e
|
||||
|
||||
[ $m = $r ]
|
||||
if [ -f "$t".expect ]; then
|
||||
$DIFF -ub "$t".expect "$o".${program_prefix}stdout
|
||||
if [ -f "$t".stdout ]; then
|
||||
$DIFF -ub "$t".stdout "$o".${program_prefix}1
|
||||
fi
|
||||
|
|
|
@ -26,7 +26,7 @@ sh ${srcdest}build-aux/test-cc.sh $1
|
|||
|
||||
if [ ! "$mesc_p" ]; then
|
||||
#FIXME: c&p
|
||||
unset CFLAGS CPPFLAGS LDFLAGS gcc_p tcc_p posix_p
|
||||
unset CFLAGS CPPFLAGS LDFLAGS gcc_p tcc_p with_glibc_p
|
||||
MES=${MES-guile}
|
||||
mesc_p=1
|
||||
mes_p=1
|
||||
|
|
|
@ -91,6 +91,8 @@ MES_ARENA=100000000 exec ${SCHEME-guile} -L . --no-auto-compile -e '(configure)'
|
|||
(output (read-string port))
|
||||
(status (close-pipe port))
|
||||
(error (with-input-from-file ".error" read-string)))
|
||||
(when (file-exists? ".error")
|
||||
(delete-file ".error"))
|
||||
(set-current-error-port err)
|
||||
(verbose "command[~a]: ~s => ~a [~a]\n" status command output error)
|
||||
(if (not (zero? status)) ""
|
||||
|
@ -223,6 +225,8 @@ MES_ARENA=100000000 exec ${SCHEME-guile} -L . --no-auto-compile -e '(configure)'
|
|||
(let ((name (dependency-name dependency)))
|
||||
(stderr "checking for ~a..." name)
|
||||
(let ((result (check cc name)))
|
||||
(when (file-exists? ".config.c")
|
||||
(delete-file ".config.c"))
|
||||
(stderr " ~a\n" (if result "yes" "no"))
|
||||
(if result (set-field dependency (dependency-file-name) name)
|
||||
dependency))))
|
||||
|
@ -231,6 +235,8 @@ MES_ARENA=100000000 exec ${SCHEME-guile} -L . --no-auto-compile -e '(configure)'
|
|||
(let ((name (dependency-name dependency)))
|
||||
(stderr "checking for ~a..." name)
|
||||
(let ((result (check cc (dependency-data dependency))))
|
||||
(when (file-exists? ".config.c")
|
||||
(delete-file ".config.c"))
|
||||
(stderr " ~a\n" (if result "yes" "no"))
|
||||
(if result (set-field dependency (dependency-file-name) name)
|
||||
dependency))))
|
||||
|
@ -239,6 +245,8 @@ MES_ARENA=100000000 exec ${SCHEME-guile} -L . --no-auto-compile -e '(configure)'
|
|||
(let ((name (dependency-name dependency)))
|
||||
(stderr "checking for ~a..." name)
|
||||
(let ((result (check cc (dependency-data dependency))))
|
||||
(when (file-exists? ".config.c")
|
||||
(delete-file ".config.c"))
|
||||
(stderr " ~a\n" (if result "yes" "no"))
|
||||
(if result (set-field dependency (dependency-file-name) name)
|
||||
dependency))))
|
||||
|
@ -525,7 +533,7 @@ Some influential environment variables:
|
|||
("@mes_arch@" . ,mes-arch)
|
||||
("@mes_p@" . ,(if mes? "1" ""))
|
||||
("@mesc_p@" . ,(if mesc? "1" ""))
|
||||
("@posix_p@" . ,(if posix? "1" ""))
|
||||
("@with_glibc_p@" . ,(if posix? "1" ""))
|
||||
("@tcc_p@" . ,(if tcc? "1" ""))
|
||||
|
||||
("@abs_top_srcdir@" . ,abs-top-srcdir)
|
||||
|
|
|
@ -111,7 +111,7 @@ subst () {
|
|||
-e s,"@mesc_p@,$mesc_p,"\
|
||||
-e s,"@tcc_p@,$tcc_p,"\
|
||||
-e s,"@mes_arch@,$mes_arch,"\
|
||||
-e s,"@posix_p@,$posix_p,"\
|
||||
-e s,"@with_glibc_p@,$with_glibc_p,"\
|
||||
-e s,"@abs_top_srcdir@,$abs_top_srcdir,"\
|
||||
-e s,"@abs_top_builddir@,$abs_top_builddir,"\
|
||||
-e s,"@top_builddir@,$top_builddir,"\
|
||||
|
@ -195,7 +195,7 @@ if [ ! "$mesc_p" ]; then
|
|||
mes_arch=$mes_arch-$compiler
|
||||
fi
|
||||
if [ ! "$mesc_p" -a ! "$mes_p" ]; then
|
||||
posix_p=1
|
||||
with_glibc_p=1
|
||||
fi
|
||||
|
||||
subst ${srcdest}mes/module/mes/boot-0.scm.in mes/module/mes/boot-0.scm
|
||||
|
|
|
@ -5,7 +5,8 @@ Subject: GNU Mes 0.19 released
|
|||
We are pleased to announce the release of GNU Mes 0.19, representing
|
||||
100 commits over 10 weeks.
|
||||
|
||||
Mes has now brought the Reduced Binary Seed bootstrap to Guix and work
|
||||
Mes has now brought the Reduced Binary Seed bootstrap to Guix (bootstrap
|
||||
a GNU/Linux system without binary GNU toolchain or equivalent) and work
|
||||
is ongoing to audit and verify this bootstrap path in NixOS.
|
||||
|
||||
This release introduces strings as byte-array, hash-tables and native
|
||||
|
@ -68,8 +69,8 @@ Packages are available from Guix's core-updates branch.
|
|||
|
||||
Here are the MD5 and SHA1 checksums:
|
||||
|
||||
f9f901f175fbc8a5a3d90c9c551ccc8c mes-0.19.tar.gz
|
||||
4f7612731a745ebb806548186453d55e0d0bf217 mes-0.19.tar.gz
|
||||
99e134df87adc5fc5fd2c04941929c23 mes-0.19.tar.gz
|
||||
c9781b3b6a814acc985c2ac68caa111a56583bca mes-0.19.tar.gz
|
||||
|
||||
[*] Use a .sig file to verify that the corresponding file (without the
|
||||
.sig suffix) is intact. First, be sure to download both the .sig file
|
||||
|
@ -131,7 +132,7 @@ installed in Guix from a git checkout by running
|
|||
** Noteworthy bug fixes
|
||||
*** Mes now supports characters #\xNN.
|
||||
*** Mes now supports assq-ref and assoc-ref with alist == #f.
|
||||
*** Mes now support \xNN in strings. Fixes using Nyacc-0.86.0.
|
||||
*** Mes now supports \xNN in strings. This allows using Nyacc-0.86.0.
|
||||
*** MesCC now supports the unary plus operator.
|
||||
*** MesCC now supports the `U' integer suffix.
|
||||
*** MesCC now comes with INTnn_MIN/MAX, UINTnn defines in stdint.h.
|
||||
|
|
|
@ -1,124 +1,123 @@
|
|||
digraph "Guix bag" {
|
||||
"/gnu/store/k9iiipnm44yl1j7lq1b4llh9fmjb482i-gcc-mesboot-4.9.4.drv" [label = "gcc-mesboot@4.9.4", shape = box, fontname = Helvetica];
|
||||
"/gnu/store/k9iiipnm44yl1j7lq1b4llh9fmjb482i-gcc-mesboot-4.9.4.drv" -> "/gnu/store/rpz0s3f2cfhsvj6734ss2j4jqisly67x-binutils-mesboot-2.20.1a.drv" [color = darkgoldenrod];
|
||||
"/gnu/store/k9iiipnm44yl1j7lq1b4llh9fmjb482i-gcc-mesboot-4.9.4.drv" -> "/gnu/store/7nv5rwsxx4v2g5fgbilj0c96gx34897q-gcc-mesboot1-wrapper-4.7.4.drv" [color = darkgoldenrod];
|
||||
"/gnu/store/k9iiipnm44yl1j7lq1b4llh9fmjb482i-gcc-mesboot-4.9.4.drv" -> "/gnu/store/9bi0anc7vq3m6zm845wyaq9mfdasyqkg-gcc-mesboot1-4.7.4.drv" [color = darkgoldenrod];
|
||||
"/gnu/store/k9iiipnm44yl1j7lq1b4llh9fmjb482i-gcc-mesboot-4.9.4.drv" -> "/gnu/store/1aqmzzsa18kmckm6jw9slr4i0xkrw9g0-glibc-mesboot-2.16.0.drv" [color = darkgoldenrod];
|
||||
"/gnu/store/k9iiipnm44yl1j7lq1b4llh9fmjb482i-gcc-mesboot-4.9.4.drv" -> "/gnu/store/ksmskl74pjjanjvak62pnyxpkphylrnf-bootstrap-binaries-0.drv" [color = darkgoldenrod];
|
||||
"/gnu/store/k9iiipnm44yl1j7lq1b4llh9fmjb482i-gcc-mesboot-4.9.4.drv" -> "/gnu/store/ksmskl74pjjanjvak62pnyxpkphylrnf-bootstrap-binaries-0.drv" [color = darkgoldenrod];
|
||||
"/gnu/store/k9iiipnm44yl1j7lq1b4llh9fmjb482i-gcc-mesboot-4.9.4.drv" -> "/gnu/store/jrqric1r8zyiw50rzb6q2mrfhf3yi0nc-diffutils-mesboot-2.7.drv" [color = darkgoldenrod];
|
||||
"/gnu/store/k9iiipnm44yl1j7lq1b4llh9fmjb482i-gcc-mesboot-4.9.4.drv" -> "/gnu/store/72kjcwwjxbkhblx6wrfd7kn2y0lmfyy0-linux-libre-headers-bootstrap-0.drv" [color = darkgoldenrod];
|
||||
"/gnu/store/k9iiipnm44yl1j7lq1b4llh9fmjb482i-gcc-mesboot-4.9.4.drv" -> "/gnu/store/b84wdn9yjagp0z7dklqaac3nhabllcxp-make-mesboot-3.82.drv" [color = darkgoldenrod];
|
||||
"/gnu/store/rpz0s3f2cfhsvj6734ss2j4jqisly67x-binutils-mesboot-2.20.1a.drv" [label = "binutils-mesboot@2.20.1a", shape = box, fontname = Helvetica];
|
||||
"/gnu/store/rpz0s3f2cfhsvj6734ss2j4jqisly67x-binutils-mesboot-2.20.1a.drv" -> "/gnu/store/6112c8hrb47fd1svdjyaiy79x3r1ryv3-binutils-mesboot0-2.20.1a.drv" [color = darkviolet];
|
||||
"/gnu/store/rpz0s3f2cfhsvj6734ss2j4jqisly67x-binutils-mesboot-2.20.1a.drv" -> "/gnu/store/yc8llxzasyyq94h71knnd3p0fqkbhd37-glibc-mesboot0-2.2.5.drv" [color = darkviolet];
|
||||
"/gnu/store/rpz0s3f2cfhsvj6734ss2j4jqisly67x-binutils-mesboot-2.20.1a.drv" -> "/gnu/store/20r0xxzq1nah1rx23sv5d22sjlinj820-gcc-mesboot0-2.95.3.drv" [color = darkviolet];
|
||||
"/gnu/store/rpz0s3f2cfhsvj6734ss2j4jqisly67x-binutils-mesboot-2.20.1a.drv" -> "/gnu/store/ksmskl74pjjanjvak62pnyxpkphylrnf-bootstrap-binaries-0.drv" [color = darkviolet];
|
||||
"/gnu/store/rpz0s3f2cfhsvj6734ss2j4jqisly67x-binutils-mesboot-2.20.1a.drv" -> "/gnu/store/ksmskl74pjjanjvak62pnyxpkphylrnf-bootstrap-binaries-0.drv" [color = darkviolet];
|
||||
"/gnu/store/rpz0s3f2cfhsvj6734ss2j4jqisly67x-binutils-mesboot-2.20.1a.drv" -> "/gnu/store/jrqric1r8zyiw50rzb6q2mrfhf3yi0nc-diffutils-mesboot-2.7.drv" [color = darkviolet];
|
||||
"/gnu/store/rpz0s3f2cfhsvj6734ss2j4jqisly67x-binutils-mesboot-2.20.1a.drv" -> "/gnu/store/72kjcwwjxbkhblx6wrfd7kn2y0lmfyy0-linux-libre-headers-bootstrap-0.drv" [color = darkviolet];
|
||||
"/gnu/store/rpz0s3f2cfhsvj6734ss2j4jqisly67x-binutils-mesboot-2.20.1a.drv" -> "/gnu/store/qkrrqygyc11bq450xq4jxkaj4aqf8xlv-make-mesboot0-3.80.drv" [color = darkviolet];
|
||||
"/gnu/store/6112c8hrb47fd1svdjyaiy79x3r1ryv3-binutils-mesboot0-2.20.1a.drv" [label = "binutils-mesboot0@2.20.1a", shape = box, fontname = Helvetica];
|
||||
"/gnu/store/6112c8hrb47fd1svdjyaiy79x3r1ryv3-binutils-mesboot0-2.20.1a.drv" -> "/gnu/store/15srbzj4y43vwfv79fxf1v1ajjw5kjwa-tcc-boot-0.9.27.drv" [color = red];
|
||||
"/gnu/store/6112c8hrb47fd1svdjyaiy79x3r1ryv3-binutils-mesboot0-2.20.1a.drv" -> "/gnu/store/ksmskl74pjjanjvak62pnyxpkphylrnf-bootstrap-binaries-0.drv" [color = red];
|
||||
"/gnu/store/6112c8hrb47fd1svdjyaiy79x3r1ryv3-binutils-mesboot0-2.20.1a.drv" -> "/gnu/store/ksmskl74pjjanjvak62pnyxpkphylrnf-bootstrap-binaries-0.drv" [color = red];
|
||||
"/gnu/store/6112c8hrb47fd1svdjyaiy79x3r1ryv3-binutils-mesboot0-2.20.1a.drv" -> "/gnu/store/jrqric1r8zyiw50rzb6q2mrfhf3yi0nc-diffutils-mesboot-2.7.drv" [color = red];
|
||||
"/gnu/store/6112c8hrb47fd1svdjyaiy79x3r1ryv3-binutils-mesboot0-2.20.1a.drv" -> "/gnu/store/qkrrqygyc11bq450xq4jxkaj4aqf8xlv-make-mesboot0-3.80.drv" [color = red];
|
||||
"/gnu/store/15srbzj4y43vwfv79fxf1v1ajjw5kjwa-tcc-boot-0.9.27.drv" [label = "tcc-boot@0.9.27", shape = box, fontname = Helvetica];
|
||||
"/gnu/store/15srbzj4y43vwfv79fxf1v1ajjw5kjwa-tcc-boot-0.9.27.drv" -> "/gnu/store/gvh2cb2arylz028y5ak3c9s4gxngfj50-mes-boot-0.18.drv" [color = darkgoldenrod];
|
||||
"/gnu/store/15srbzj4y43vwfv79fxf1v1ajjw5kjwa-tcc-boot-0.9.27.drv" -> "/gnu/store/4lbzsyzndxc3pp0rqd7qkd2fr278xnrb-tcc-boot0-0.9.26-4.46ee3f1.drv" [color = darkgoldenrod];
|
||||
"/gnu/store/15srbzj4y43vwfv79fxf1v1ajjw5kjwa-tcc-boot-0.9.27.drv" -> "/gnu/store/ksmskl74pjjanjvak62pnyxpkphylrnf-bootstrap-binaries-0.drv" [color = darkgoldenrod];
|
||||
"/gnu/store/gvh2cb2arylz028y5ak3c9s4gxngfj50-mes-boot-0.18.drv" [label = "mes-boot@0.18", shape = box, fontname = Helvetica];
|
||||
"/gnu/store/gvh2cb2arylz028y5ak3c9s4gxngfj50-mes-boot-0.18.drv" -> "/gnu/store/q6bf80szhn5cfyhyl7m2aakj4f7hlyrh-mescc-tools-boot-0.5.2.drv" [color = cyan3];
|
||||
"/gnu/store/gvh2cb2arylz028y5ak3c9s4gxngfj50-mes-boot-0.18.drv" -> "/gnu/store/ksmskl74pjjanjvak62pnyxpkphylrnf-bootstrap-binaries-0.drv" [color = cyan3];
|
||||
"/gnu/store/gvh2cb2arylz028y5ak3c9s4gxngfj50-mes-boot-0.18.drv" -> "/gnu/store/gz3agxnnlgkafw2c8jnvk2hqmlh85pkc-guile-bootstrap-2.0.drv" [color = cyan3];
|
||||
"/gnu/store/q6bf80szhn5cfyhyl7m2aakj4f7hlyrh-mescc-tools-boot-0.5.2.drv" [label = "mescc-tools-boot@0.5.2", shape = box, fontname = Helvetica];
|
||||
"/gnu/store/q6bf80szhn5cfyhyl7m2aakj4f7hlyrh-mescc-tools-boot-0.5.2.drv" -> "/gnu/store/ksmskl74pjjanjvak62pnyxpkphylrnf-bootstrap-binaries-0.drv" [color = darkviolet];
|
||||
"/gnu/store/ksmskl74pjjanjvak62pnyxpkphylrnf-bootstrap-binaries-0.drv" [label = "bootstrap-binaries@0", shape = box, fontname = Helvetica];
|
||||
"/gnu/store/gz3agxnnlgkafw2c8jnvk2hqmlh85pkc-guile-bootstrap-2.0.drv" [label = "guile-bootstrap@2.0", shape = box, fontname = Helvetica];
|
||||
"/gnu/store/4lbzsyzndxc3pp0rqd7qkd2fr278xnrb-tcc-boot0-0.9.26-4.46ee3f1.drv" [label = "tcc-boot0@0.9.26-4.46ee3f1", shape = box, fontname = Helvetica];
|
||||
"/gnu/store/4lbzsyzndxc3pp0rqd7qkd2fr278xnrb-tcc-boot0-0.9.26-4.46ee3f1.drv" -> "/gnu/store/gvh2cb2arylz028y5ak3c9s4gxngfj50-mes-boot-0.18.drv" [color = darkseagreen];
|
||||
"/gnu/store/4lbzsyzndxc3pp0rqd7qkd2fr278xnrb-tcc-boot0-0.9.26-4.46ee3f1.drv" -> "/gnu/store/q6bf80szhn5cfyhyl7m2aakj4f7hlyrh-mescc-tools-boot-0.5.2.drv" [color = darkseagreen];
|
||||
"/gnu/store/4lbzsyzndxc3pp0rqd7qkd2fr278xnrb-tcc-boot0-0.9.26-4.46ee3f1.drv" -> "/gnu/store/ksmskl74pjjanjvak62pnyxpkphylrnf-bootstrap-binaries-0.drv" [color = darkseagreen];
|
||||
"/gnu/store/4lbzsyzndxc3pp0rqd7qkd2fr278xnrb-tcc-boot0-0.9.26-4.46ee3f1.drv" -> "/gnu/store/gz3agxnnlgkafw2c8jnvk2hqmlh85pkc-guile-bootstrap-2.0.drv" [color = darkseagreen];
|
||||
"/gnu/store/jrqric1r8zyiw50rzb6q2mrfhf3yi0nc-diffutils-mesboot-2.7.drv" [label = "diffutils-mesboot@2.7", shape = box, fontname = Helvetica];
|
||||
"/gnu/store/jrqric1r8zyiw50rzb6q2mrfhf3yi0nc-diffutils-mesboot-2.7.drv" -> "/gnu/store/gvh2cb2arylz028y5ak3c9s4gxngfj50-mes-boot-0.18.drv" [color = red];
|
||||
"/gnu/store/jrqric1r8zyiw50rzb6q2mrfhf3yi0nc-diffutils-mesboot-2.7.drv" -> "/gnu/store/15srbzj4y43vwfv79fxf1v1ajjw5kjwa-tcc-boot-0.9.27.drv" [color = red];
|
||||
"/gnu/store/jrqric1r8zyiw50rzb6q2mrfhf3yi0nc-diffutils-mesboot-2.7.drv" -> "/gnu/store/ksmskl74pjjanjvak62pnyxpkphylrnf-bootstrap-binaries-0.drv" [color = red];
|
||||
"/gnu/store/jrqric1r8zyiw50rzb6q2mrfhf3yi0nc-diffutils-mesboot-2.7.drv" -> "/gnu/store/ksmskl74pjjanjvak62pnyxpkphylrnf-bootstrap-binaries-0.drv" [color = red];
|
||||
"/gnu/store/jrqric1r8zyiw50rzb6q2mrfhf3yi0nc-diffutils-mesboot-2.7.drv" -> "/gnu/store/qkrrqygyc11bq450xq4jxkaj4aqf8xlv-make-mesboot0-3.80.drv" [color = red];
|
||||
"/gnu/store/qkrrqygyc11bq450xq4jxkaj4aqf8xlv-make-mesboot0-3.80.drv" [label = "make-mesboot0@3.80", shape = box, fontname = Helvetica];
|
||||
"/gnu/store/qkrrqygyc11bq450xq4jxkaj4aqf8xlv-make-mesboot0-3.80.drv" -> "/gnu/store/15srbzj4y43vwfv79fxf1v1ajjw5kjwa-tcc-boot-0.9.27.drv" [color = blue];
|
||||
"/gnu/store/qkrrqygyc11bq450xq4jxkaj4aqf8xlv-make-mesboot0-3.80.drv" -> "/gnu/store/ksmskl74pjjanjvak62pnyxpkphylrnf-bootstrap-binaries-0.drv" [color = blue];
|
||||
"/gnu/store/qkrrqygyc11bq450xq4jxkaj4aqf8xlv-make-mesboot0-3.80.drv" -> "/gnu/store/ksmskl74pjjanjvak62pnyxpkphylrnf-bootstrap-binaries-0.drv" [color = blue];
|
||||
"/gnu/store/yc8llxzasyyq94h71knnd3p0fqkbhd37-glibc-mesboot0-2.2.5.drv" [label = "glibc-mesboot0@2.2.5", shape = box, fontname = Helvetica];
|
||||
"/gnu/store/yc8llxzasyyq94h71knnd3p0fqkbhd37-glibc-mesboot0-2.2.5.drv" -> "/gnu/store/6112c8hrb47fd1svdjyaiy79x3r1ryv3-binutils-mesboot0-2.20.1a.drv" [color = dimgrey];
|
||||
"/gnu/store/yc8llxzasyyq94h71knnd3p0fqkbhd37-glibc-mesboot0-2.2.5.drv" -> "/gnu/store/3hqzkw9ag2f3p1skzynr0wq3499ghmsf-gcc-core-mesboot-2.95.3.drv" [color = dimgrey];
|
||||
"/gnu/store/yc8llxzasyyq94h71knnd3p0fqkbhd37-glibc-mesboot0-2.2.5.drv" -> "/gnu/store/ksmskl74pjjanjvak62pnyxpkphylrnf-bootstrap-binaries-0.drv" [color = dimgrey];
|
||||
"/gnu/store/yc8llxzasyyq94h71knnd3p0fqkbhd37-glibc-mesboot0-2.2.5.drv" -> "/gnu/store/ksmskl74pjjanjvak62pnyxpkphylrnf-bootstrap-binaries-0.drv" [color = dimgrey];
|
||||
"/gnu/store/yc8llxzasyyq94h71knnd3p0fqkbhd37-glibc-mesboot0-2.2.5.drv" -> "/gnu/store/jrqric1r8zyiw50rzb6q2mrfhf3yi0nc-diffutils-mesboot-2.7.drv" [color = dimgrey];
|
||||
"/gnu/store/yc8llxzasyyq94h71knnd3p0fqkbhd37-glibc-mesboot0-2.2.5.drv" -> "/gnu/store/sivwa9pmj19nfad8zavgqjll11hahcyb-mesboot-headers-0.18.drv" [color = dimgrey];
|
||||
"/gnu/store/yc8llxzasyyq94h71knnd3p0fqkbhd37-glibc-mesboot0-2.2.5.drv" -> "/gnu/store/qkrrqygyc11bq450xq4jxkaj4aqf8xlv-make-mesboot0-3.80.drv" [color = dimgrey];
|
||||
"/gnu/store/3hqzkw9ag2f3p1skzynr0wq3499ghmsf-gcc-core-mesboot-2.95.3.drv" [label = "gcc-core-mesboot@2.95.3", shape = box, fontname = Helvetica];
|
||||
"/gnu/store/3hqzkw9ag2f3p1skzynr0wq3499ghmsf-gcc-core-mesboot-2.95.3.drv" -> "/gnu/store/6112c8hrb47fd1svdjyaiy79x3r1ryv3-binutils-mesboot0-2.20.1a.drv" [color = darkgoldenrod];
|
||||
"/gnu/store/3hqzkw9ag2f3p1skzynr0wq3499ghmsf-gcc-core-mesboot-2.95.3.drv" -> "/gnu/store/15srbzj4y43vwfv79fxf1v1ajjw5kjwa-tcc-boot-0.9.27.drv" [color = darkgoldenrod];
|
||||
"/gnu/store/3hqzkw9ag2f3p1skzynr0wq3499ghmsf-gcc-core-mesboot-2.95.3.drv" -> "/gnu/store/ksmskl74pjjanjvak62pnyxpkphylrnf-bootstrap-binaries-0.drv" [color = darkgoldenrod];
|
||||
"/gnu/store/3hqzkw9ag2f3p1skzynr0wq3499ghmsf-gcc-core-mesboot-2.95.3.drv" -> "/gnu/store/ksmskl74pjjanjvak62pnyxpkphylrnf-bootstrap-binaries-0.drv" [color = darkgoldenrod];
|
||||
"/gnu/store/3hqzkw9ag2f3p1skzynr0wq3499ghmsf-gcc-core-mesboot-2.95.3.drv" -> "/gnu/store/jrqric1r8zyiw50rzb6q2mrfhf3yi0nc-diffutils-mesboot-2.7.drv" [color = darkgoldenrod];
|
||||
"/gnu/store/3hqzkw9ag2f3p1skzynr0wq3499ghmsf-gcc-core-mesboot-2.95.3.drv" -> "/gnu/store/qkrrqygyc11bq450xq4jxkaj4aqf8xlv-make-mesboot0-3.80.drv" [color = darkgoldenrod];
|
||||
"/gnu/store/sivwa9pmj19nfad8zavgqjll11hahcyb-mesboot-headers-0.18.drv" [label = "mesboot-headers@0.18", shape = box, fontname = Helvetica];
|
||||
"/gnu/store/sivwa9pmj19nfad8zavgqjll11hahcyb-mesboot-headers-0.18.drv" -> "/gnu/store/ksmskl74pjjanjvak62pnyxpkphylrnf-bootstrap-binaries-0.drv" [color = darkviolet];
|
||||
"/gnu/store/sivwa9pmj19nfad8zavgqjll11hahcyb-mesboot-headers-0.18.drv" -> "/gnu/store/72kjcwwjxbkhblx6wrfd7kn2y0lmfyy0-linux-libre-headers-bootstrap-0.drv" [color = darkviolet];
|
||||
"/gnu/store/72kjcwwjxbkhblx6wrfd7kn2y0lmfyy0-linux-libre-headers-bootstrap-0.drv" [label = "linux-libre-headers-bootstrap@0", shape = box, fontname = Helvetica];
|
||||
"/gnu/store/20r0xxzq1nah1rx23sv5d22sjlinj820-gcc-mesboot0-2.95.3.drv" [label = "gcc-mesboot0@2.95.3", shape = box, fontname = Helvetica];
|
||||
"/gnu/store/20r0xxzq1nah1rx23sv5d22sjlinj820-gcc-mesboot0-2.95.3.drv" -> "/gnu/store/6112c8hrb47fd1svdjyaiy79x3r1ryv3-binutils-mesboot0-2.20.1a.drv" [color = darkviolet];
|
||||
"/gnu/store/20r0xxzq1nah1rx23sv5d22sjlinj820-gcc-mesboot0-2.95.3.drv" -> "/gnu/store/3hqzkw9ag2f3p1skzynr0wq3499ghmsf-gcc-core-mesboot-2.95.3.drv" [color = darkviolet];
|
||||
"/gnu/store/20r0xxzq1nah1rx23sv5d22sjlinj820-gcc-mesboot0-2.95.3.drv" -> "/gnu/store/yc8llxzasyyq94h71knnd3p0fqkbhd37-glibc-mesboot0-2.2.5.drv" [color = darkviolet];
|
||||
"/gnu/store/20r0xxzq1nah1rx23sv5d22sjlinj820-gcc-mesboot0-2.95.3.drv" -> "/gnu/store/ksmskl74pjjanjvak62pnyxpkphylrnf-bootstrap-binaries-0.drv" [color = darkviolet];
|
||||
"/gnu/store/20r0xxzq1nah1rx23sv5d22sjlinj820-gcc-mesboot0-2.95.3.drv" -> "/gnu/store/ksmskl74pjjanjvak62pnyxpkphylrnf-bootstrap-binaries-0.drv" [color = darkviolet];
|
||||
"/gnu/store/20r0xxzq1nah1rx23sv5d22sjlinj820-gcc-mesboot0-2.95.3.drv" -> "/gnu/store/jrqric1r8zyiw50rzb6q2mrfhf3yi0nc-diffutils-mesboot-2.7.drv" [color = darkviolet];
|
||||
"/gnu/store/20r0xxzq1nah1rx23sv5d22sjlinj820-gcc-mesboot0-2.95.3.drv" -> "/gnu/store/72kjcwwjxbkhblx6wrfd7kn2y0lmfyy0-linux-libre-headers-bootstrap-0.drv" [color = darkviolet];
|
||||
"/gnu/store/20r0xxzq1nah1rx23sv5d22sjlinj820-gcc-mesboot0-2.95.3.drv" -> "/gnu/store/qkrrqygyc11bq450xq4jxkaj4aqf8xlv-make-mesboot0-3.80.drv" [color = darkviolet];
|
||||
"/gnu/store/7nv5rwsxx4v2g5fgbilj0c96gx34897q-gcc-mesboot1-wrapper-4.7.4.drv" [label = "gcc-mesboot1-wrapper@4.7.4", shape = box, fontname = Helvetica];
|
||||
"/gnu/store/7nv5rwsxx4v2g5fgbilj0c96gx34897q-gcc-mesboot1-wrapper-4.7.4.drv" -> "/gnu/store/ksmskl74pjjanjvak62pnyxpkphylrnf-bootstrap-binaries-0.drv" [color = blue];
|
||||
"/gnu/store/7nv5rwsxx4v2g5fgbilj0c96gx34897q-gcc-mesboot1-wrapper-4.7.4.drv" -> "/gnu/store/1aqmzzsa18kmckm6jw9slr4i0xkrw9g0-glibc-mesboot-2.16.0.drv" [color = blue];
|
||||
"/gnu/store/7nv5rwsxx4v2g5fgbilj0c96gx34897q-gcc-mesboot1-wrapper-4.7.4.drv" -> "/gnu/store/9bi0anc7vq3m6zm845wyaq9mfdasyqkg-gcc-mesboot1-4.7.4.drv" [color = blue];
|
||||
"/gnu/store/1aqmzzsa18kmckm6jw9slr4i0xkrw9g0-glibc-mesboot-2.16.0.drv" [label = "glibc-mesboot@2.16.0", shape = box, fontname = Helvetica];
|
||||
"/gnu/store/1aqmzzsa18kmckm6jw9slr4i0xkrw9g0-glibc-mesboot-2.16.0.drv" -> "/gnu/store/rpz0s3f2cfhsvj6734ss2j4jqisly67x-binutils-mesboot-2.20.1a.drv" [color = darkseagreen];
|
||||
"/gnu/store/1aqmzzsa18kmckm6jw9slr4i0xkrw9g0-glibc-mesboot-2.16.0.drv" -> "/gnu/store/yc8llxzasyyq94h71knnd3p0fqkbhd37-glibc-mesboot0-2.2.5.drv" [color = darkseagreen];
|
||||
"/gnu/store/1aqmzzsa18kmckm6jw9slr4i0xkrw9g0-glibc-mesboot-2.16.0.drv" -> "/gnu/store/hcyw9rs7n3w9kj3xf230509fhjqfxcvj-glibc-headers-mesboot-2.16.0.drv" [color = darkseagreen];
|
||||
"/gnu/store/1aqmzzsa18kmckm6jw9slr4i0xkrw9g0-glibc-mesboot-2.16.0.drv" -> "/gnu/store/9bi0anc7vq3m6zm845wyaq9mfdasyqkg-gcc-mesboot1-4.7.4.drv" [color = darkseagreen];
|
||||
"/gnu/store/1aqmzzsa18kmckm6jw9slr4i0xkrw9g0-glibc-mesboot-2.16.0.drv" -> "/gnu/store/ksmskl74pjjanjvak62pnyxpkphylrnf-bootstrap-binaries-0.drv" [color = darkseagreen];
|
||||
"/gnu/store/1aqmzzsa18kmckm6jw9slr4i0xkrw9g0-glibc-mesboot-2.16.0.drv" -> "/gnu/store/ksmskl74pjjanjvak62pnyxpkphylrnf-bootstrap-binaries-0.drv" [color = darkseagreen];
|
||||
"/gnu/store/1aqmzzsa18kmckm6jw9slr4i0xkrw9g0-glibc-mesboot-2.16.0.drv" -> "/gnu/store/jrqric1r8zyiw50rzb6q2mrfhf3yi0nc-diffutils-mesboot-2.7.drv" [color = darkseagreen];
|
||||
"/gnu/store/1aqmzzsa18kmckm6jw9slr4i0xkrw9g0-glibc-mesboot-2.16.0.drv" -> "/gnu/store/72kjcwwjxbkhblx6wrfd7kn2y0lmfyy0-linux-libre-headers-bootstrap-0.drv" [color = darkseagreen];
|
||||
"/gnu/store/1aqmzzsa18kmckm6jw9slr4i0xkrw9g0-glibc-mesboot-2.16.0.drv" -> "/gnu/store/b84wdn9yjagp0z7dklqaac3nhabllcxp-make-mesboot-3.82.drv" [color = darkseagreen];
|
||||
"/gnu/store/hcyw9rs7n3w9kj3xf230509fhjqfxcvj-glibc-headers-mesboot-2.16.0.drv" [label = "glibc-headers-mesboot@2.16.0", shape = box, fontname = Helvetica];
|
||||
"/gnu/store/hcyw9rs7n3w9kj3xf230509fhjqfxcvj-glibc-headers-mesboot-2.16.0.drv" -> "/gnu/store/rpz0s3f2cfhsvj6734ss2j4jqisly67x-binutils-mesboot-2.20.1a.drv" [color = darkseagreen];
|
||||
"/gnu/store/hcyw9rs7n3w9kj3xf230509fhjqfxcvj-glibc-headers-mesboot-2.16.0.drv" -> "/gnu/store/yc8llxzasyyq94h71knnd3p0fqkbhd37-glibc-mesboot0-2.2.5.drv" [color = darkseagreen];
|
||||
"/gnu/store/hcyw9rs7n3w9kj3xf230509fhjqfxcvj-glibc-headers-mesboot-2.16.0.drv" -> "/gnu/store/9bi0anc7vq3m6zm845wyaq9mfdasyqkg-gcc-mesboot1-4.7.4.drv" [color = darkseagreen];
|
||||
"/gnu/store/hcyw9rs7n3w9kj3xf230509fhjqfxcvj-glibc-headers-mesboot-2.16.0.drv" -> "/gnu/store/sivwa9pmj19nfad8zavgqjll11hahcyb-mesboot-headers-0.18.drv" [color = darkseagreen];
|
||||
"/gnu/store/hcyw9rs7n3w9kj3xf230509fhjqfxcvj-glibc-headers-mesboot-2.16.0.drv" -> "/gnu/store/ksmskl74pjjanjvak62pnyxpkphylrnf-bootstrap-binaries-0.drv" [color = darkseagreen];
|
||||
"/gnu/store/hcyw9rs7n3w9kj3xf230509fhjqfxcvj-glibc-headers-mesboot-2.16.0.drv" -> "/gnu/store/ksmskl74pjjanjvak62pnyxpkphylrnf-bootstrap-binaries-0.drv" [color = darkseagreen];
|
||||
"/gnu/store/hcyw9rs7n3w9kj3xf230509fhjqfxcvj-glibc-headers-mesboot-2.16.0.drv" -> "/gnu/store/jrqric1r8zyiw50rzb6q2mrfhf3yi0nc-diffutils-mesboot-2.7.drv" [color = darkseagreen];
|
||||
"/gnu/store/hcyw9rs7n3w9kj3xf230509fhjqfxcvj-glibc-headers-mesboot-2.16.0.drv" -> "/gnu/store/72kjcwwjxbkhblx6wrfd7kn2y0lmfyy0-linux-libre-headers-bootstrap-0.drv" [color = darkseagreen];
|
||||
"/gnu/store/hcyw9rs7n3w9kj3xf230509fhjqfxcvj-glibc-headers-mesboot-2.16.0.drv" -> "/gnu/store/b84wdn9yjagp0z7dklqaac3nhabllcxp-make-mesboot-3.82.drv" [color = darkseagreen];
|
||||
"/gnu/store/9bi0anc7vq3m6zm845wyaq9mfdasyqkg-gcc-mesboot1-4.7.4.drv" [label = "gcc-mesboot1@4.7.4", shape = box, fontname = Helvetica];
|
||||
"/gnu/store/9bi0anc7vq3m6zm845wyaq9mfdasyqkg-gcc-mesboot1-4.7.4.drv" -> "/gnu/store/rpz0s3f2cfhsvj6734ss2j4jqisly67x-binutils-mesboot-2.20.1a.drv" [color = darkseagreen];
|
||||
"/gnu/store/9bi0anc7vq3m6zm845wyaq9mfdasyqkg-gcc-mesboot1-4.7.4.drv" -> "/gnu/store/20r0xxzq1nah1rx23sv5d22sjlinj820-gcc-mesboot0-2.95.3.drv" [color = darkseagreen];
|
||||
"/gnu/store/9bi0anc7vq3m6zm845wyaq9mfdasyqkg-gcc-mesboot1-4.7.4.drv" -> "/gnu/store/yc8llxzasyyq94h71knnd3p0fqkbhd37-glibc-mesboot0-2.2.5.drv" [color = darkseagreen];
|
||||
"/gnu/store/9bi0anc7vq3m6zm845wyaq9mfdasyqkg-gcc-mesboot1-4.7.4.drv" -> "/gnu/store/ksmskl74pjjanjvak62pnyxpkphylrnf-bootstrap-binaries-0.drv" [color = darkseagreen];
|
||||
"/gnu/store/9bi0anc7vq3m6zm845wyaq9mfdasyqkg-gcc-mesboot1-4.7.4.drv" -> "/gnu/store/ksmskl74pjjanjvak62pnyxpkphylrnf-bootstrap-binaries-0.drv" [color = darkseagreen];
|
||||
"/gnu/store/9bi0anc7vq3m6zm845wyaq9mfdasyqkg-gcc-mesboot1-4.7.4.drv" -> "/gnu/store/jrqric1r8zyiw50rzb6q2mrfhf3yi0nc-diffutils-mesboot-2.7.drv" [color = darkseagreen];
|
||||
"/gnu/store/9bi0anc7vq3m6zm845wyaq9mfdasyqkg-gcc-mesboot1-4.7.4.drv" -> "/gnu/store/72kjcwwjxbkhblx6wrfd7kn2y0lmfyy0-linux-libre-headers-bootstrap-0.drv" [color = darkseagreen];
|
||||
"/gnu/store/9bi0anc7vq3m6zm845wyaq9mfdasyqkg-gcc-mesboot1-4.7.4.drv" -> "/gnu/store/b84wdn9yjagp0z7dklqaac3nhabllcxp-make-mesboot-3.82.drv" [color = darkseagreen];
|
||||
"/gnu/store/b84wdn9yjagp0z7dklqaac3nhabllcxp-make-mesboot-3.82.drv" [label = "make-mesboot@3.82", shape = box, fontname = Helvetica];
|
||||
"/gnu/store/b84wdn9yjagp0z7dklqaac3nhabllcxp-make-mesboot-3.82.drv" -> "/gnu/store/6112c8hrb47fd1svdjyaiy79x3r1ryv3-binutils-mesboot0-2.20.1a.drv" [color = darkgoldenrod];
|
||||
"/gnu/store/b84wdn9yjagp0z7dklqaac3nhabllcxp-make-mesboot-3.82.drv" -> "/gnu/store/yc8llxzasyyq94h71knnd3p0fqkbhd37-glibc-mesboot0-2.2.5.drv" [color = darkgoldenrod];
|
||||
"/gnu/store/b84wdn9yjagp0z7dklqaac3nhabllcxp-make-mesboot-3.82.drv" -> "/gnu/store/20r0xxzq1nah1rx23sv5d22sjlinj820-gcc-mesboot0-2.95.3.drv" [color = darkgoldenrod];
|
||||
"/gnu/store/b84wdn9yjagp0z7dklqaac3nhabllcxp-make-mesboot-3.82.drv" -> "/gnu/store/qkrrqygyc11bq450xq4jxkaj4aqf8xlv-make-mesboot0-3.80.drv" [color = darkgoldenrod];
|
||||
"/gnu/store/b84wdn9yjagp0z7dklqaac3nhabllcxp-make-mesboot-3.82.drv" -> "/gnu/store/ksmskl74pjjanjvak62pnyxpkphylrnf-bootstrap-binaries-0.drv" [color = darkgoldenrod];
|
||||
"/gnu/store/b84wdn9yjagp0z7dklqaac3nhabllcxp-make-mesboot-3.82.drv" -> "/gnu/store/ksmskl74pjjanjvak62pnyxpkphylrnf-bootstrap-binaries-0.drv" [color = darkgoldenrod];
|
||||
"/gnu/store/b84wdn9yjagp0z7dklqaac3nhabllcxp-make-mesboot-3.82.drv" -> "/gnu/store/72kjcwwjxbkhblx6wrfd7kn2y0lmfyy0-linux-libre-headers-bootstrap-0.drv" [color = darkgoldenrod];
|
||||
"/gnu/store/yyhvgy169sksvcs4mycmnxyl0za465sj-gcc-mesboot-4.9.4.drv" [label = "gcc-mesboot@4.9.4", shape = box, fontname = Helvetica];
|
||||
"/gnu/store/yyhvgy169sksvcs4mycmnxyl0za465sj-gcc-mesboot-4.9.4.drv" -> "/gnu/store/rs1ggdq6bmzgjfkfqmkd6a6cxr9437v4-binutils-mesboot-2.20.1a.drv" [color = magenta];
|
||||
"/gnu/store/yyhvgy169sksvcs4mycmnxyl0za465sj-gcc-mesboot-4.9.4.drv" -> "/gnu/store/j1kj1qmiv3rg88679bzxxbapgk8gn2qc-gcc-mesboot1-wrapper-4.7.4.drv" [color = magenta];
|
||||
"/gnu/store/yyhvgy169sksvcs4mycmnxyl0za465sj-gcc-mesboot-4.9.4.drv" -> "/gnu/store/snivnh2vwkdq9iyim060k5bca3arkmd7-gcc-mesboot1-4.7.4.drv" [color = magenta];
|
||||
"/gnu/store/yyhvgy169sksvcs4mycmnxyl0za465sj-gcc-mesboot-4.9.4.drv" -> "/gnu/store/k0c7r9bfmc6a0ji6kl4gfhlppwlzb013-glibc-mesboot-2.16.0.drv" [color = magenta];
|
||||
"/gnu/store/yyhvgy169sksvcs4mycmnxyl0za465sj-gcc-mesboot-4.9.4.drv" -> "/gnu/store/sflg089rcki77ay6p1d9p0k1d4g7yni4-bootstrap-binaries-0.drv" [color = magenta];
|
||||
"/gnu/store/yyhvgy169sksvcs4mycmnxyl0za465sj-gcc-mesboot-4.9.4.drv" -> "/gnu/store/sflg089rcki77ay6p1d9p0k1d4g7yni4-bootstrap-binaries-0.drv" [color = magenta];
|
||||
"/gnu/store/yyhvgy169sksvcs4mycmnxyl0za465sj-gcc-mesboot-4.9.4.drv" -> "/gnu/store/jjhwiiqy26bbz8ljil49j13mw2d60ja1-diffutils-mesboot-2.7.drv" [color = magenta];
|
||||
"/gnu/store/yyhvgy169sksvcs4mycmnxyl0za465sj-gcc-mesboot-4.9.4.drv" -> "/gnu/store/ffmmqdgq7wicc3z0xlj9b3w1i9g1z4r1-linux-libre-headers-bootstrap-0.drv" [color = magenta];
|
||||
"/gnu/store/yyhvgy169sksvcs4mycmnxyl0za465sj-gcc-mesboot-4.9.4.drv" -> "/gnu/store/m5wqnh0ap50npqy2bivn4b907jqiwfyn-make-mesboot-3.82.drv" [color = magenta];
|
||||
"/gnu/store/rs1ggdq6bmzgjfkfqmkd6a6cxr9437v4-binutils-mesboot-2.20.1a.drv" [label = "binutils-mesboot@2.20.1a", shape = box, fontname = Helvetica];
|
||||
"/gnu/store/rs1ggdq6bmzgjfkfqmkd6a6cxr9437v4-binutils-mesboot-2.20.1a.drv" -> "/gnu/store/hb7v0ngmiq8097cr5h019qlhixwyfbgn-binutils-mesboot0-2.20.1a.drv" [color = red];
|
||||
"/gnu/store/rs1ggdq6bmzgjfkfqmkd6a6cxr9437v4-binutils-mesboot-2.20.1a.drv" -> "/gnu/store/b3znapqr1bjvy35ck6w9g8q18i7azw1a-glibc-mesboot0-2.2.5.drv" [color = red];
|
||||
"/gnu/store/rs1ggdq6bmzgjfkfqmkd6a6cxr9437v4-binutils-mesboot-2.20.1a.drv" -> "/gnu/store/0nl531x2qxvhq4rsmjb5w6689f1i9s3b-gcc-mesboot0-2.95.3.drv" [color = red];
|
||||
"/gnu/store/rs1ggdq6bmzgjfkfqmkd6a6cxr9437v4-binutils-mesboot-2.20.1a.drv" -> "/gnu/store/sflg089rcki77ay6p1d9p0k1d4g7yni4-bootstrap-binaries-0.drv" [color = red];
|
||||
"/gnu/store/rs1ggdq6bmzgjfkfqmkd6a6cxr9437v4-binutils-mesboot-2.20.1a.drv" -> "/gnu/store/sflg089rcki77ay6p1d9p0k1d4g7yni4-bootstrap-binaries-0.drv" [color = red];
|
||||
"/gnu/store/rs1ggdq6bmzgjfkfqmkd6a6cxr9437v4-binutils-mesboot-2.20.1a.drv" -> "/gnu/store/jjhwiiqy26bbz8ljil49j13mw2d60ja1-diffutils-mesboot-2.7.drv" [color = red];
|
||||
"/gnu/store/rs1ggdq6bmzgjfkfqmkd6a6cxr9437v4-binutils-mesboot-2.20.1a.drv" -> "/gnu/store/ffmmqdgq7wicc3z0xlj9b3w1i9g1z4r1-linux-libre-headers-bootstrap-0.drv" [color = red];
|
||||
"/gnu/store/rs1ggdq6bmzgjfkfqmkd6a6cxr9437v4-binutils-mesboot-2.20.1a.drv" -> "/gnu/store/y12rm6j4zb71d7rfm05lp5zsgk3rwx4g-make-mesboot0-3.80.drv" [color = red];
|
||||
"/gnu/store/hb7v0ngmiq8097cr5h019qlhixwyfbgn-binutils-mesboot0-2.20.1a.drv" [label = "binutils-mesboot0@2.20.1a", shape = box, fontname = Helvetica];
|
||||
"/gnu/store/hb7v0ngmiq8097cr5h019qlhixwyfbgn-binutils-mesboot0-2.20.1a.drv" -> "/gnu/store/a1ff309vviqfm73py9hnssz66ihyl16c-tcc-boot-0.9.27.drv" [color = cyan3];
|
||||
"/gnu/store/hb7v0ngmiq8097cr5h019qlhixwyfbgn-binutils-mesboot0-2.20.1a.drv" -> "/gnu/store/sflg089rcki77ay6p1d9p0k1d4g7yni4-bootstrap-binaries-0.drv" [color = cyan3];
|
||||
"/gnu/store/hb7v0ngmiq8097cr5h019qlhixwyfbgn-binutils-mesboot0-2.20.1a.drv" -> "/gnu/store/sflg089rcki77ay6p1d9p0k1d4g7yni4-bootstrap-binaries-0.drv" [color = cyan3];
|
||||
"/gnu/store/hb7v0ngmiq8097cr5h019qlhixwyfbgn-binutils-mesboot0-2.20.1a.drv" -> "/gnu/store/jjhwiiqy26bbz8ljil49j13mw2d60ja1-diffutils-mesboot-2.7.drv" [color = cyan3];
|
||||
"/gnu/store/hb7v0ngmiq8097cr5h019qlhixwyfbgn-binutils-mesboot0-2.20.1a.drv" -> "/gnu/store/y12rm6j4zb71d7rfm05lp5zsgk3rwx4g-make-mesboot0-3.80.drv" [color = cyan3];
|
||||
"/gnu/store/a1ff309vviqfm73py9hnssz66ihyl16c-tcc-boot-0.9.27.drv" [label = "tcc-boot@0.9.27", shape = box, fontname = Helvetica];
|
||||
"/gnu/store/a1ff309vviqfm73py9hnssz66ihyl16c-tcc-boot-0.9.27.drv" -> "/gnu/store/ba3vgwp3ins7v31g38f7wn0y2wknxbbi-mes-boot-0.19.drv" [color = blue];
|
||||
"/gnu/store/a1ff309vviqfm73py9hnssz66ihyl16c-tcc-boot-0.9.27.drv" -> "/gnu/store/3l18gnbldwrkyzgxf9rl0vc3gqgs6vkc-tcc-boot0-0.9.26-6.c004e9a.drv" [color = blue];
|
||||
"/gnu/store/a1ff309vviqfm73py9hnssz66ihyl16c-tcc-boot-0.9.27.drv" -> "/gnu/store/sflg089rcki77ay6p1d9p0k1d4g7yni4-bootstrap-binaries-0.drv" [color = blue];
|
||||
"/gnu/store/ba3vgwp3ins7v31g38f7wn0y2wknxbbi-mes-boot-0.19.drv" [label = "mes-boot@0.19", shape = box, fontname = Helvetica];
|
||||
"/gnu/store/ba3vgwp3ins7v31g38f7wn0y2wknxbbi-mes-boot-0.19.drv" -> "/gnu/store/hyvpkk62xhr6blxmrd0s4cam40n48450-bootstrap-mescc-tools-0.5.2.drv" [color = dimgrey];
|
||||
"/gnu/store/ba3vgwp3ins7v31g38f7wn0y2wknxbbi-mes-boot-0.19.drv" -> "/gnu/store/sflg089rcki77ay6p1d9p0k1d4g7yni4-bootstrap-binaries-0.drv" [color = dimgrey];
|
||||
"/gnu/store/ba3vgwp3ins7v31g38f7wn0y2wknxbbi-mes-boot-0.19.drv" -> "/gnu/store/z4vssfndi1la67dvadsb4fv85rx5zig0-bootstrap-mes-0.drv" [color = dimgrey];
|
||||
"/gnu/store/hyvpkk62xhr6blxmrd0s4cam40n48450-bootstrap-mescc-tools-0.5.2.drv" [label = "bootstrap-mescc-tools@0.5.2", shape = box, fontname = Helvetica];
|
||||
"/gnu/store/sflg089rcki77ay6p1d9p0k1d4g7yni4-bootstrap-binaries-0.drv" [label = "bootstrap-binaries@0", shape = box, fontname = Helvetica];
|
||||
"/gnu/store/z4vssfndi1la67dvadsb4fv85rx5zig0-bootstrap-mes-0.drv" [label = "bootstrap-mes@0", shape = box, fontname = Helvetica];
|
||||
"/gnu/store/3l18gnbldwrkyzgxf9rl0vc3gqgs6vkc-tcc-boot0-0.9.26-6.c004e9a.drv" [label = "tcc-boot0@0.9.26-6.c004e9a", shape = box, fontname = Helvetica];
|
||||
"/gnu/store/3l18gnbldwrkyzgxf9rl0vc3gqgs6vkc-tcc-boot0-0.9.26-6.c004e9a.drv" -> "/gnu/store/ba3vgwp3ins7v31g38f7wn0y2wknxbbi-mes-boot-0.19.drv" [color = darkseagreen];
|
||||
"/gnu/store/3l18gnbldwrkyzgxf9rl0vc3gqgs6vkc-tcc-boot0-0.9.26-6.c004e9a.drv" -> "/gnu/store/hyvpkk62xhr6blxmrd0s4cam40n48450-bootstrap-mescc-tools-0.5.2.drv" [color = darkseagreen];
|
||||
"/gnu/store/3l18gnbldwrkyzgxf9rl0vc3gqgs6vkc-tcc-boot0-0.9.26-6.c004e9a.drv" -> "/gnu/store/sflg089rcki77ay6p1d9p0k1d4g7yni4-bootstrap-binaries-0.drv" [color = darkseagreen];
|
||||
"/gnu/store/3l18gnbldwrkyzgxf9rl0vc3gqgs6vkc-tcc-boot0-0.9.26-6.c004e9a.drv" -> "/gnu/store/z4vssfndi1la67dvadsb4fv85rx5zig0-bootstrap-mes-0.drv" [color = darkseagreen];
|
||||
"/gnu/store/jjhwiiqy26bbz8ljil49j13mw2d60ja1-diffutils-mesboot-2.7.drv" [label = "diffutils-mesboot@2.7", shape = box, fontname = Helvetica];
|
||||
"/gnu/store/jjhwiiqy26bbz8ljil49j13mw2d60ja1-diffutils-mesboot-2.7.drv" -> "/gnu/store/ba3vgwp3ins7v31g38f7wn0y2wknxbbi-mes-boot-0.19.drv" [color = magenta];
|
||||
"/gnu/store/jjhwiiqy26bbz8ljil49j13mw2d60ja1-diffutils-mesboot-2.7.drv" -> "/gnu/store/a1ff309vviqfm73py9hnssz66ihyl16c-tcc-boot-0.9.27.drv" [color = magenta];
|
||||
"/gnu/store/jjhwiiqy26bbz8ljil49j13mw2d60ja1-diffutils-mesboot-2.7.drv" -> "/gnu/store/sflg089rcki77ay6p1d9p0k1d4g7yni4-bootstrap-binaries-0.drv" [color = magenta];
|
||||
"/gnu/store/jjhwiiqy26bbz8ljil49j13mw2d60ja1-diffutils-mesboot-2.7.drv" -> "/gnu/store/sflg089rcki77ay6p1d9p0k1d4g7yni4-bootstrap-binaries-0.drv" [color = magenta];
|
||||
"/gnu/store/jjhwiiqy26bbz8ljil49j13mw2d60ja1-diffutils-mesboot-2.7.drv" -> "/gnu/store/y12rm6j4zb71d7rfm05lp5zsgk3rwx4g-make-mesboot0-3.80.drv" [color = magenta];
|
||||
"/gnu/store/y12rm6j4zb71d7rfm05lp5zsgk3rwx4g-make-mesboot0-3.80.drv" [label = "make-mesboot0@3.80", shape = box, fontname = Helvetica];
|
||||
"/gnu/store/y12rm6j4zb71d7rfm05lp5zsgk3rwx4g-make-mesboot0-3.80.drv" -> "/gnu/store/a1ff309vviqfm73py9hnssz66ihyl16c-tcc-boot-0.9.27.drv" [color = magenta];
|
||||
"/gnu/store/y12rm6j4zb71d7rfm05lp5zsgk3rwx4g-make-mesboot0-3.80.drv" -> "/gnu/store/sflg089rcki77ay6p1d9p0k1d4g7yni4-bootstrap-binaries-0.drv" [color = magenta];
|
||||
"/gnu/store/y12rm6j4zb71d7rfm05lp5zsgk3rwx4g-make-mesboot0-3.80.drv" -> "/gnu/store/sflg089rcki77ay6p1d9p0k1d4g7yni4-bootstrap-binaries-0.drv" [color = magenta];
|
||||
"/gnu/store/b3znapqr1bjvy35ck6w9g8q18i7azw1a-glibc-mesboot0-2.2.5.drv" [label = "glibc-mesboot0@2.2.5", shape = box, fontname = Helvetica];
|
||||
"/gnu/store/b3znapqr1bjvy35ck6w9g8q18i7azw1a-glibc-mesboot0-2.2.5.drv" -> "/gnu/store/hb7v0ngmiq8097cr5h019qlhixwyfbgn-binutils-mesboot0-2.20.1a.drv" [color = cyan3];
|
||||
"/gnu/store/b3znapqr1bjvy35ck6w9g8q18i7azw1a-glibc-mesboot0-2.2.5.drv" -> "/gnu/store/dc08x4icyp3vhi3b6gkrpcvclhhb4bs1-gcc-core-mesboot-2.95.3.drv" [color = cyan3];
|
||||
"/gnu/store/b3znapqr1bjvy35ck6w9g8q18i7azw1a-glibc-mesboot0-2.2.5.drv" -> "/gnu/store/sflg089rcki77ay6p1d9p0k1d4g7yni4-bootstrap-binaries-0.drv" [color = cyan3];
|
||||
"/gnu/store/b3znapqr1bjvy35ck6w9g8q18i7azw1a-glibc-mesboot0-2.2.5.drv" -> "/gnu/store/sflg089rcki77ay6p1d9p0k1d4g7yni4-bootstrap-binaries-0.drv" [color = cyan3];
|
||||
"/gnu/store/b3znapqr1bjvy35ck6w9g8q18i7azw1a-glibc-mesboot0-2.2.5.drv" -> "/gnu/store/jjhwiiqy26bbz8ljil49j13mw2d60ja1-diffutils-mesboot-2.7.drv" [color = cyan3];
|
||||
"/gnu/store/b3znapqr1bjvy35ck6w9g8q18i7azw1a-glibc-mesboot0-2.2.5.drv" -> "/gnu/store/s31k70hy4hgyvissrwimx2s837494hvg-mesboot-headers-0.19.drv" [color = cyan3];
|
||||
"/gnu/store/b3znapqr1bjvy35ck6w9g8q18i7azw1a-glibc-mesboot0-2.2.5.drv" -> "/gnu/store/y12rm6j4zb71d7rfm05lp5zsgk3rwx4g-make-mesboot0-3.80.drv" [color = cyan3];
|
||||
"/gnu/store/dc08x4icyp3vhi3b6gkrpcvclhhb4bs1-gcc-core-mesboot-2.95.3.drv" [label = "gcc-core-mesboot@2.95.3", shape = box, fontname = Helvetica];
|
||||
"/gnu/store/dc08x4icyp3vhi3b6gkrpcvclhhb4bs1-gcc-core-mesboot-2.95.3.drv" -> "/gnu/store/hb7v0ngmiq8097cr5h019qlhixwyfbgn-binutils-mesboot0-2.20.1a.drv" [color = darkgoldenrod];
|
||||
"/gnu/store/dc08x4icyp3vhi3b6gkrpcvclhhb4bs1-gcc-core-mesboot-2.95.3.drv" -> "/gnu/store/a1ff309vviqfm73py9hnssz66ihyl16c-tcc-boot-0.9.27.drv" [color = darkgoldenrod];
|
||||
"/gnu/store/dc08x4icyp3vhi3b6gkrpcvclhhb4bs1-gcc-core-mesboot-2.95.3.drv" -> "/gnu/store/sflg089rcki77ay6p1d9p0k1d4g7yni4-bootstrap-binaries-0.drv" [color = darkgoldenrod];
|
||||
"/gnu/store/dc08x4icyp3vhi3b6gkrpcvclhhb4bs1-gcc-core-mesboot-2.95.3.drv" -> "/gnu/store/sflg089rcki77ay6p1d9p0k1d4g7yni4-bootstrap-binaries-0.drv" [color = darkgoldenrod];
|
||||
"/gnu/store/dc08x4icyp3vhi3b6gkrpcvclhhb4bs1-gcc-core-mesboot-2.95.3.drv" -> "/gnu/store/jjhwiiqy26bbz8ljil49j13mw2d60ja1-diffutils-mesboot-2.7.drv" [color = darkgoldenrod];
|
||||
"/gnu/store/dc08x4icyp3vhi3b6gkrpcvclhhb4bs1-gcc-core-mesboot-2.95.3.drv" -> "/gnu/store/y12rm6j4zb71d7rfm05lp5zsgk3rwx4g-make-mesboot0-3.80.drv" [color = darkgoldenrod];
|
||||
"/gnu/store/s31k70hy4hgyvissrwimx2s837494hvg-mesboot-headers-0.19.drv" [label = "mesboot-headers@0.19", shape = box, fontname = Helvetica];
|
||||
"/gnu/store/s31k70hy4hgyvissrwimx2s837494hvg-mesboot-headers-0.19.drv" -> "/gnu/store/sflg089rcki77ay6p1d9p0k1d4g7yni4-bootstrap-binaries-0.drv" [color = dimgrey];
|
||||
"/gnu/store/s31k70hy4hgyvissrwimx2s837494hvg-mesboot-headers-0.19.drv" -> "/gnu/store/ffmmqdgq7wicc3z0xlj9b3w1i9g1z4r1-linux-libre-headers-bootstrap-0.drv" [color = dimgrey];
|
||||
"/gnu/store/ffmmqdgq7wicc3z0xlj9b3w1i9g1z4r1-linux-libre-headers-bootstrap-0.drv" [label = "linux-libre-headers-bootstrap@0", shape = box, fontname = Helvetica];
|
||||
"/gnu/store/0nl531x2qxvhq4rsmjb5w6689f1i9s3b-gcc-mesboot0-2.95.3.drv" [label = "gcc-mesboot0@2.95.3", shape = box, fontname = Helvetica];
|
||||
"/gnu/store/0nl531x2qxvhq4rsmjb5w6689f1i9s3b-gcc-mesboot0-2.95.3.drv" -> "/gnu/store/hb7v0ngmiq8097cr5h019qlhixwyfbgn-binutils-mesboot0-2.20.1a.drv" [color = dimgrey];
|
||||
"/gnu/store/0nl531x2qxvhq4rsmjb5w6689f1i9s3b-gcc-mesboot0-2.95.3.drv" -> "/gnu/store/dc08x4icyp3vhi3b6gkrpcvclhhb4bs1-gcc-core-mesboot-2.95.3.drv" [color = dimgrey];
|
||||
"/gnu/store/0nl531x2qxvhq4rsmjb5w6689f1i9s3b-gcc-mesboot0-2.95.3.drv" -> "/gnu/store/b3znapqr1bjvy35ck6w9g8q18i7azw1a-glibc-mesboot0-2.2.5.drv" [color = dimgrey];
|
||||
"/gnu/store/0nl531x2qxvhq4rsmjb5w6689f1i9s3b-gcc-mesboot0-2.95.3.drv" -> "/gnu/store/sflg089rcki77ay6p1d9p0k1d4g7yni4-bootstrap-binaries-0.drv" [color = dimgrey];
|
||||
"/gnu/store/0nl531x2qxvhq4rsmjb5w6689f1i9s3b-gcc-mesboot0-2.95.3.drv" -> "/gnu/store/sflg089rcki77ay6p1d9p0k1d4g7yni4-bootstrap-binaries-0.drv" [color = dimgrey];
|
||||
"/gnu/store/0nl531x2qxvhq4rsmjb5w6689f1i9s3b-gcc-mesboot0-2.95.3.drv" -> "/gnu/store/jjhwiiqy26bbz8ljil49j13mw2d60ja1-diffutils-mesboot-2.7.drv" [color = dimgrey];
|
||||
"/gnu/store/0nl531x2qxvhq4rsmjb5w6689f1i9s3b-gcc-mesboot0-2.95.3.drv" -> "/gnu/store/ffmmqdgq7wicc3z0xlj9b3w1i9g1z4r1-linux-libre-headers-bootstrap-0.drv" [color = dimgrey];
|
||||
"/gnu/store/0nl531x2qxvhq4rsmjb5w6689f1i9s3b-gcc-mesboot0-2.95.3.drv" -> "/gnu/store/y12rm6j4zb71d7rfm05lp5zsgk3rwx4g-make-mesboot0-3.80.drv" [color = dimgrey];
|
||||
"/gnu/store/j1kj1qmiv3rg88679bzxxbapgk8gn2qc-gcc-mesboot1-wrapper-4.7.4.drv" [label = "gcc-mesboot1-wrapper@4.7.4", shape = box, fontname = Helvetica];
|
||||
"/gnu/store/j1kj1qmiv3rg88679bzxxbapgk8gn2qc-gcc-mesboot1-wrapper-4.7.4.drv" -> "/gnu/store/sflg089rcki77ay6p1d9p0k1d4g7yni4-bootstrap-binaries-0.drv" [color = darkseagreen];
|
||||
"/gnu/store/j1kj1qmiv3rg88679bzxxbapgk8gn2qc-gcc-mesboot1-wrapper-4.7.4.drv" -> "/gnu/store/k0c7r9bfmc6a0ji6kl4gfhlppwlzb013-glibc-mesboot-2.16.0.drv" [color = darkseagreen];
|
||||
"/gnu/store/j1kj1qmiv3rg88679bzxxbapgk8gn2qc-gcc-mesboot1-wrapper-4.7.4.drv" -> "/gnu/store/snivnh2vwkdq9iyim060k5bca3arkmd7-gcc-mesboot1-4.7.4.drv" [color = darkseagreen];
|
||||
"/gnu/store/k0c7r9bfmc6a0ji6kl4gfhlppwlzb013-glibc-mesboot-2.16.0.drv" [label = "glibc-mesboot@2.16.0", shape = box, fontname = Helvetica];
|
||||
"/gnu/store/k0c7r9bfmc6a0ji6kl4gfhlppwlzb013-glibc-mesboot-2.16.0.drv" -> "/gnu/store/rs1ggdq6bmzgjfkfqmkd6a6cxr9437v4-binutils-mesboot-2.20.1a.drv" [color = cyan3];
|
||||
"/gnu/store/k0c7r9bfmc6a0ji6kl4gfhlppwlzb013-glibc-mesboot-2.16.0.drv" -> "/gnu/store/b3znapqr1bjvy35ck6w9g8q18i7azw1a-glibc-mesboot0-2.2.5.drv" [color = cyan3];
|
||||
"/gnu/store/k0c7r9bfmc6a0ji6kl4gfhlppwlzb013-glibc-mesboot-2.16.0.drv" -> "/gnu/store/i8mwdv9j384qnwb7ipz92a7jb25yw5cw-glibc-headers-mesboot-2.16.0.drv" [color = cyan3];
|
||||
"/gnu/store/k0c7r9bfmc6a0ji6kl4gfhlppwlzb013-glibc-mesboot-2.16.0.drv" -> "/gnu/store/snivnh2vwkdq9iyim060k5bca3arkmd7-gcc-mesboot1-4.7.4.drv" [color = cyan3];
|
||||
"/gnu/store/k0c7r9bfmc6a0ji6kl4gfhlppwlzb013-glibc-mesboot-2.16.0.drv" -> "/gnu/store/sflg089rcki77ay6p1d9p0k1d4g7yni4-bootstrap-binaries-0.drv" [color = cyan3];
|
||||
"/gnu/store/k0c7r9bfmc6a0ji6kl4gfhlppwlzb013-glibc-mesboot-2.16.0.drv" -> "/gnu/store/sflg089rcki77ay6p1d9p0k1d4g7yni4-bootstrap-binaries-0.drv" [color = cyan3];
|
||||
"/gnu/store/k0c7r9bfmc6a0ji6kl4gfhlppwlzb013-glibc-mesboot-2.16.0.drv" -> "/gnu/store/jjhwiiqy26bbz8ljil49j13mw2d60ja1-diffutils-mesboot-2.7.drv" [color = cyan3];
|
||||
"/gnu/store/k0c7r9bfmc6a0ji6kl4gfhlppwlzb013-glibc-mesboot-2.16.0.drv" -> "/gnu/store/ffmmqdgq7wicc3z0xlj9b3w1i9g1z4r1-linux-libre-headers-bootstrap-0.drv" [color = cyan3];
|
||||
"/gnu/store/k0c7r9bfmc6a0ji6kl4gfhlppwlzb013-glibc-mesboot-2.16.0.drv" -> "/gnu/store/m5wqnh0ap50npqy2bivn4b907jqiwfyn-make-mesboot-3.82.drv" [color = cyan3];
|
||||
"/gnu/store/i8mwdv9j384qnwb7ipz92a7jb25yw5cw-glibc-headers-mesboot-2.16.0.drv" [label = "glibc-headers-mesboot@2.16.0", shape = box, fontname = Helvetica];
|
||||
"/gnu/store/i8mwdv9j384qnwb7ipz92a7jb25yw5cw-glibc-headers-mesboot-2.16.0.drv" -> "/gnu/store/rs1ggdq6bmzgjfkfqmkd6a6cxr9437v4-binutils-mesboot-2.20.1a.drv" [color = magenta];
|
||||
"/gnu/store/i8mwdv9j384qnwb7ipz92a7jb25yw5cw-glibc-headers-mesboot-2.16.0.drv" -> "/gnu/store/b3znapqr1bjvy35ck6w9g8q18i7azw1a-glibc-mesboot0-2.2.5.drv" [color = magenta];
|
||||
"/gnu/store/i8mwdv9j384qnwb7ipz92a7jb25yw5cw-glibc-headers-mesboot-2.16.0.drv" -> "/gnu/store/snivnh2vwkdq9iyim060k5bca3arkmd7-gcc-mesboot1-4.7.4.drv" [color = magenta];
|
||||
"/gnu/store/i8mwdv9j384qnwb7ipz92a7jb25yw5cw-glibc-headers-mesboot-2.16.0.drv" -> "/gnu/store/s31k70hy4hgyvissrwimx2s837494hvg-mesboot-headers-0.19.drv" [color = magenta];
|
||||
"/gnu/store/i8mwdv9j384qnwb7ipz92a7jb25yw5cw-glibc-headers-mesboot-2.16.0.drv" -> "/gnu/store/sflg089rcki77ay6p1d9p0k1d4g7yni4-bootstrap-binaries-0.drv" [color = magenta];
|
||||
"/gnu/store/i8mwdv9j384qnwb7ipz92a7jb25yw5cw-glibc-headers-mesboot-2.16.0.drv" -> "/gnu/store/sflg089rcki77ay6p1d9p0k1d4g7yni4-bootstrap-binaries-0.drv" [color = magenta];
|
||||
"/gnu/store/i8mwdv9j384qnwb7ipz92a7jb25yw5cw-glibc-headers-mesboot-2.16.0.drv" -> "/gnu/store/jjhwiiqy26bbz8ljil49j13mw2d60ja1-diffutils-mesboot-2.7.drv" [color = magenta];
|
||||
"/gnu/store/i8mwdv9j384qnwb7ipz92a7jb25yw5cw-glibc-headers-mesboot-2.16.0.drv" -> "/gnu/store/ffmmqdgq7wicc3z0xlj9b3w1i9g1z4r1-linux-libre-headers-bootstrap-0.drv" [color = magenta];
|
||||
"/gnu/store/i8mwdv9j384qnwb7ipz92a7jb25yw5cw-glibc-headers-mesboot-2.16.0.drv" -> "/gnu/store/m5wqnh0ap50npqy2bivn4b907jqiwfyn-make-mesboot-3.82.drv" [color = magenta];
|
||||
"/gnu/store/snivnh2vwkdq9iyim060k5bca3arkmd7-gcc-mesboot1-4.7.4.drv" [label = "gcc-mesboot1@4.7.4", shape = box, fontname = Helvetica];
|
||||
"/gnu/store/snivnh2vwkdq9iyim060k5bca3arkmd7-gcc-mesboot1-4.7.4.drv" -> "/gnu/store/rs1ggdq6bmzgjfkfqmkd6a6cxr9437v4-binutils-mesboot-2.20.1a.drv" [color = cyan3];
|
||||
"/gnu/store/snivnh2vwkdq9iyim060k5bca3arkmd7-gcc-mesboot1-4.7.4.drv" -> "/gnu/store/0nl531x2qxvhq4rsmjb5w6689f1i9s3b-gcc-mesboot0-2.95.3.drv" [color = cyan3];
|
||||
"/gnu/store/snivnh2vwkdq9iyim060k5bca3arkmd7-gcc-mesboot1-4.7.4.drv" -> "/gnu/store/b3znapqr1bjvy35ck6w9g8q18i7azw1a-glibc-mesboot0-2.2.5.drv" [color = cyan3];
|
||||
"/gnu/store/snivnh2vwkdq9iyim060k5bca3arkmd7-gcc-mesboot1-4.7.4.drv" -> "/gnu/store/sflg089rcki77ay6p1d9p0k1d4g7yni4-bootstrap-binaries-0.drv" [color = cyan3];
|
||||
"/gnu/store/snivnh2vwkdq9iyim060k5bca3arkmd7-gcc-mesboot1-4.7.4.drv" -> "/gnu/store/sflg089rcki77ay6p1d9p0k1d4g7yni4-bootstrap-binaries-0.drv" [color = cyan3];
|
||||
"/gnu/store/snivnh2vwkdq9iyim060k5bca3arkmd7-gcc-mesboot1-4.7.4.drv" -> "/gnu/store/jjhwiiqy26bbz8ljil49j13mw2d60ja1-diffutils-mesboot-2.7.drv" [color = cyan3];
|
||||
"/gnu/store/snivnh2vwkdq9iyim060k5bca3arkmd7-gcc-mesboot1-4.7.4.drv" -> "/gnu/store/ffmmqdgq7wicc3z0xlj9b3w1i9g1z4r1-linux-libre-headers-bootstrap-0.drv" [color = cyan3];
|
||||
"/gnu/store/snivnh2vwkdq9iyim060k5bca3arkmd7-gcc-mesboot1-4.7.4.drv" -> "/gnu/store/m5wqnh0ap50npqy2bivn4b907jqiwfyn-make-mesboot-3.82.drv" [color = cyan3];
|
||||
"/gnu/store/m5wqnh0ap50npqy2bivn4b907jqiwfyn-make-mesboot-3.82.drv" [label = "make-mesboot@3.82", shape = box, fontname = Helvetica];
|
||||
"/gnu/store/m5wqnh0ap50npqy2bivn4b907jqiwfyn-make-mesboot-3.82.drv" -> "/gnu/store/hb7v0ngmiq8097cr5h019qlhixwyfbgn-binutils-mesboot0-2.20.1a.drv" [color = magenta];
|
||||
"/gnu/store/m5wqnh0ap50npqy2bivn4b907jqiwfyn-make-mesboot-3.82.drv" -> "/gnu/store/b3znapqr1bjvy35ck6w9g8q18i7azw1a-glibc-mesboot0-2.2.5.drv" [color = magenta];
|
||||
"/gnu/store/m5wqnh0ap50npqy2bivn4b907jqiwfyn-make-mesboot-3.82.drv" -> "/gnu/store/0nl531x2qxvhq4rsmjb5w6689f1i9s3b-gcc-mesboot0-2.95.3.drv" [color = magenta];
|
||||
"/gnu/store/m5wqnh0ap50npqy2bivn4b907jqiwfyn-make-mesboot-3.82.drv" -> "/gnu/store/y12rm6j4zb71d7rfm05lp5zsgk3rwx4g-make-mesboot0-3.80.drv" [color = magenta];
|
||||
"/gnu/store/m5wqnh0ap50npqy2bivn4b907jqiwfyn-make-mesboot-3.82.drv" -> "/gnu/store/sflg089rcki77ay6p1d9p0k1d4g7yni4-bootstrap-binaries-0.drv" [color = magenta];
|
||||
"/gnu/store/m5wqnh0ap50npqy2bivn4b907jqiwfyn-make-mesboot-3.82.drv" -> "/gnu/store/sflg089rcki77ay6p1d9p0k1d4g7yni4-bootstrap-binaries-0.drv" [color = magenta];
|
||||
"/gnu/store/m5wqnh0ap50npqy2bivn4b907jqiwfyn-make-mesboot-3.82.drv" -> "/gnu/store/ffmmqdgq7wicc3z0xlj9b3w1i9g1z4r1-linux-libre-headers-bootstrap-0.drv" [color = magenta];
|
||||
|
||||
}
|
||||
|
|
45
doc/mes.texi
45
doc/mes.texi
|
@ -34,7 +34,7 @@ Documentation License''.
|
|||
|
||||
@titlepage
|
||||
@title GNU Mes Reference Manual
|
||||
@subtitle Full Source Bootstrapping of the GNU GuixSD Operating System
|
||||
@subtitle Full Source Bootstrapping of the GNU Guix Operating System
|
||||
@author Jan (janneke) Nieuwenhuizen
|
||||
|
||||
@page
|
||||
|
@ -169,7 +169,7 @@ For all softwares on such a system we have the full source code and
|
|||
build recipes available.
|
||||
|
||||
@c The Free System Distribution Guidelines (GNU FSDG)@footnote{Examples of
|
||||
@c free operating systems are GNU GuixSD, GNU Parabola and Trisquel, see
|
||||
@c free operating systems are GNU Guix, GNU Parabola and Trisquel, see
|
||||
@c https://www.gnu.org/distros/free-system-distribution-guidelines.html}
|
||||
@c can serve as help to create such a system
|
||||
|
||||
|
@ -253,7 +253,7 @@ binary seed that all software distributions inject are the so called
|
|||
@emph{bootstrap binaries}. Bootstrap binaries are the initial binary
|
||||
seeds that are used to start building the distribution.
|
||||
|
||||
The GNU GuixSD operating system has a relatively small closure of
|
||||
The GNU Guix operating system has a relatively small closure of
|
||||
bootstrap binaries: GNU binutils, GNU gcc, GNU Libc, GNU Guile, and
|
||||
``Static binaries'' (think: bash, bzip2, coreutils, gawk, grep, gzip,
|
||||
patch, sed, tar, xz).
|
||||
|
@ -553,7 +553,7 @@ Recipe for yogurt: Add yogurt to milk.
|
|||
@end quotation
|
||||
|
||||
The bootstrap problem we have set out to solve is that none of our
|
||||
modern software distributions, and GuixSD in particular, can be created
|
||||
modern software distributions, and Guix in particular, can be created
|
||||
all from source code. In addition to the carefully signed source code
|
||||
of all the programs (the `milk') an opaque binary seed (the `yogurt') is
|
||||
injected as an essential dependency.
|
||||
|
@ -592,7 +592,7 @@ responsibility.
|
|||
|
||||
The Mes full source bootstrap process@footnote{TBH, the current state of
|
||||
affairs demands to label this a `Reduced Binary Seed bootstrap'} is
|
||||
currently being developed in GuixSD@footnote{See
|
||||
currently being developed in Guix@footnote{See
|
||||
@file{gnu/packages/commencement.scm} in the @var{core-updates-next} branch in Guix
|
||||
git
|
||||
@url{http://git.savannah.gnu.org/cgit/guix.git/tree/gnu/packages/mes.scm?h=wip-bootstrap}}.
|
||||
|
@ -622,11 +622,11 @@ glibc-source + binutils + gcc + glibc0 => glibc
|
|||
|
||||
@c This graph is generated from wip-bootstrap, doing:
|
||||
|
||||
@c ~/src/guix-boot/pre-inst-env guix graph --type=bag -e '(@@ (gnu packages commencement) gcc-mesboot)' doc/images/gcc-mesboot-graph.dot
|
||||
@c ~/src/guix/core-updates/pre-inst-env guix graph --type=bag -e '(@@ (gnu packages commencement) gcc-mesboot)' > doc/images/gcc-mesboot-graph.dot
|
||||
@c dot -T png doc/images/gcc-mesboot-graph.dot > doc/images/gcc-mesboot-graph.png
|
||||
|
||||
Here's a generated dependency diagram to for the final bootstrap gcc
|
||||
that builds the rest of GuixSD
|
||||
that builds the rest of Guix.
|
||||
|
||||
@image{images/gcc-mesboot-graph,2in,,Reference graph of the gcc-mesboot}
|
||||
|
||||
|
@ -757,6 +757,11 @@ The initial size of the arena @pxref{5.3,,, sicp, SICP} in cells. Default: 20,0
|
|||
|
||||
The maximum size of the arena in cells. Default: 100,000,000.
|
||||
|
||||
@item MES_MAX_STRING
|
||||
@vindex MES_MAX_STRING
|
||||
|
||||
The maximum size of a string. Default: 524,288.
|
||||
|
||||
@item MES_DEBUG
|
||||
@vindex MES_DEBUG
|
||||
|
||||
|
@ -814,6 +819,12 @@ The @var{option}s can be among the following:
|
|||
|
||||
@table @code
|
||||
|
||||
@item --align
|
||||
align globals
|
||||
|
||||
@item --base-address=ADRRESS
|
||||
use BaseAddress ADDRESS [0x1000000]
|
||||
|
||||
@item -c
|
||||
@cindex compile
|
||||
preprocess, compile and assemble only; do not link
|
||||
|
@ -821,6 +832,12 @@ preprocess, compile and assemble only; do not link
|
|||
@item -D @var{DEFINE}[=@var{VALUE}]
|
||||
@cindex define DEFINE [VALUE=1]
|
||||
|
||||
@item -dumpmachine
|
||||
@cindex arch
|
||||
@cindex architecture
|
||||
@cindex machine
|
||||
display the compiler's target processor
|
||||
|
||||
@item -E
|
||||
preprocess only; do not compile, assemble or link
|
||||
|
||||
|
@ -842,18 +859,30 @@ append DIR to library path
|
|||
@item -l LIBNAME
|
||||
link with LIBNAME
|
||||
|
||||
@item -m BITS
|
||||
compile for BITS bits [32]
|
||||
|
||||
@item -O LEVEL
|
||||
use optimizing LEVEL
|
||||
|
||||
@item -o FILE
|
||||
write output to FILE
|
||||
|
||||
@item -S
|
||||
preprocess and compile only; do not assemble or link
|
||||
|
||||
@item --std=STANDARD
|
||||
assume that the input sources are for STANDARD
|
||||
|
||||
@item -v, --version
|
||||
display version and exit
|
||||
|
||||
@item -w,--write=TYPE
|
||||
dump Nyacc AST using TYPE @{pretty-print,write@}
|
||||
|
||||
@item -x LANGUAGE
|
||||
specify LANGUAGE of the following input files
|
||||
|
||||
@end table
|
||||
|
||||
@menu
|
||||
|
@ -1041,7 +1070,7 @@ Please send bug reports with full details to @email{bug-mes@@gnu.org}.
|
|||
We would like to thank the following people for their help: Jeremiah
|
||||
Orians, Peter de Wachter, rain1, Ricardo Wurmus, Rutger van Beusekom.
|
||||
|
||||
We also thank Ludovic Courtès for creating GuixSD and making the
|
||||
We also thank Ludovic Courtès for creating GNU Guix and making the
|
||||
bootstrap problem so painfully visible, John McCarthy for creating
|
||||
LISP-1.5 and Alan Kay for their inspiring comment on
|
||||
@url{https://queue.acm.org/detail.cfm?id=1039523, Page 13}.
|
||||
|
|
|
@ -29,18 +29,14 @@
|
|||
|
||||
#else // ! WITH_GLIBC
|
||||
|
||||
#ifndef __MES_SIZE_T
|
||||
#define __MES_SIZE_T
|
||||
#undef size_t
|
||||
typedef unsigned long size_t;
|
||||
#endif
|
||||
#include <sys/types.h>
|
||||
|
||||
#if _ALLOCA_UNSIGNED
|
||||
void * alloca (unsigned size);
|
||||
void *alloca (unsigned size);
|
||||
#elif _ALLOCA_CHAR
|
||||
char * alloca (int);
|
||||
char *alloca (int);
|
||||
#else
|
||||
void * alloca (size_t size);
|
||||
void *alloca (size_t size);
|
||||
#endif
|
||||
|
||||
#endif // ! WITH_GLIBC
|
||||
|
|
22
include/ar.h
22
include/ar.h
|
@ -36,20 +36,20 @@
|
|||
`struct ar_hdr', and as many bytes of member file data as its `ar_size'
|
||||
member indicates, for each member file. */
|
||||
|
||||
#define ARMAG "!<arch>\n" /* String that begins an archive file. */
|
||||
#define SARMAG 8 /* Size of that string. */
|
||||
#define ARMAG "!<arch>\n" /* String that begins an archive file. */
|
||||
#define SARMAG 8 /* Size of that string. */
|
||||
|
||||
#define ARFMAG "`\n" /* String in ar_fmag at end of each header. */
|
||||
#define ARFMAG "`\n" /* String in ar_fmag at end of each header. */
|
||||
|
||||
struct ar_hdr
|
||||
{
|
||||
char ar_name[16]; /* Member file name, sometimes / terminated. */
|
||||
char ar_date[12]; /* File date, decimal seconds since Epoch. */
|
||||
char ar_uid[6], ar_gid[6]; /* User and group IDs, in ASCII decimal. */
|
||||
char ar_mode[8]; /* File mode, in ASCII octal. */
|
||||
char ar_size[10]; /* File size, in ASCII decimal. */
|
||||
char ar_fmag[2]; /* Always contains ARFMAG. */
|
||||
};
|
||||
{
|
||||
char ar_name[16]; /* Member file name, sometimes / terminated. */
|
||||
char ar_date[12]; /* File date, decimal seconds since Epoch. */
|
||||
char ar_uid[6], ar_gid[6]; /* User and group IDs, in ASCII decimal. */
|
||||
char ar_mode[8]; /* File mode, in ASCII octal. */
|
||||
char ar_size[10]; /* File size, in ASCII decimal. */
|
||||
char ar_fmag[2]; /* Always contains ARFMAG. */
|
||||
};
|
||||
|
||||
#endif // ! WITH_GLIBC
|
||||
|
||||
|
|
|
@ -28,7 +28,7 @@
|
|||
#include_next <assert.h>
|
||||
#else // ! WITH_GLIBC
|
||||
#define assert(x) ((x) ? (void)0 : assert_fail (#x))
|
||||
void assert_fail (char* s);
|
||||
void assert_fail (char *s);
|
||||
#endif // ! WITH_GLIBC
|
||||
|
||||
#endif // __MES_ASSERT_H
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
/* -*-comment-start: "//";comment-end:""-*-
|
||||
* GNU Mes --- Maxwell Equations of Software
|
||||
* Copyright © 2017,2018 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
|
||||
* Copyright © 2017,2018,2019 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
|
||||
*
|
||||
* This file is part of GNU Mes.
|
||||
*
|
||||
|
@ -29,11 +29,23 @@
|
|||
|
||||
#else // ! WITH_GLIBC
|
||||
#include <endian.h>
|
||||
|
||||
int isalnum (int c);
|
||||
int isalpha (int c);
|
||||
int isascii (int c);
|
||||
int iscntrl (int c);
|
||||
int isdigit (int c);
|
||||
int isxdigit (int c);
|
||||
int isgraph (int c);
|
||||
int islower (int c);
|
||||
int isnumber (int c, int base);
|
||||
int isprint (int c);
|
||||
int ispunct (int c);
|
||||
int isspace (int c);
|
||||
int isupper (int c);
|
||||
int isxdigit (int c);
|
||||
int tolower (int c);
|
||||
int toupper (int c);
|
||||
|
||||
#endif // ! WITH_GLIBC
|
||||
|
||||
#endif // __MES_CTYPE_H
|
||||
|
|
|
@ -41,18 +41,18 @@
|
|||
|
||||
#include <stddef.h>
|
||||
|
||||
int __getdirentries (int filedes, char *buffer, size_t nbytes, off_t *basep);
|
||||
int __getdirentries (int filedes, char *buffer, size_t nbytes, off_t * basep);
|
||||
|
||||
struct dirent
|
||||
{
|
||||
ino_t d_ino;
|
||||
off_t d_off;
|
||||
unsigned short int d_reclen;
|
||||
{
|
||||
ino_t d_ino;
|
||||
off_t d_off;
|
||||
unsigned short int d_reclen;
|
||||
#if 0
|
||||
unsigned char d_type;
|
||||
unsigned char d_type;
|
||||
#endif
|
||||
char d_name[256]; /* We must not include limits.h! */
|
||||
};
|
||||
char d_name[256]; /* We must not include limits.h! */
|
||||
};
|
||||
|
||||
/* Open a directory stream on NAME.
|
||||
Return a DIR stream on the directory, or NULL if it could not be opened. */
|
||||
|
@ -60,16 +60,16 @@ DIR *opendir (char const *name);
|
|||
|
||||
/* Close the directory stream DIRP.
|
||||
Return 0 if successful, -1 if not. */
|
||||
int closedir (DIR *dirp);
|
||||
int closedir (DIR * dirp);
|
||||
|
||||
/* Read a directory entry from DIRP.
|
||||
Return a pointer to a `struct dirent' describing the entry,
|
||||
or NULL for EOF or error. The storage returned may be overwritten
|
||||
by a later readdir call on the same DIR stream. */
|
||||
struct dirent *readdir (DIR *dirp);
|
||||
struct dirent *readdir (DIR * dirp);
|
||||
|
||||
/* Rewind DIRP to the beginning of the directory. */
|
||||
extern void rewinddir (DIR *dirp);
|
||||
extern void rewinddir (DIR * dirp);
|
||||
|
||||
#endif // ! WITH_GLIBC
|
||||
|
||||
|
|
|
@ -37,16 +37,16 @@
|
|||
|
||||
/* Directory stream type. */
|
||||
struct __dirstream
|
||||
{
|
||||
int fd; /* File descriptor. */
|
||||
{
|
||||
int fd; /* File descriptor. */
|
||||
|
||||
char *data; /* Directory block. */
|
||||
size_t allocation; /* Space allocated for the block. */
|
||||
size_t size; /* Total valid data in the block. */
|
||||
size_t offset; /* Current offset into the block. */
|
||||
char *data; /* Directory block. */
|
||||
size_t allocation; /* Space allocated for the block. */
|
||||
size_t size; /* Total valid data in the block. */
|
||||
size_t offset; /* Current offset into the block. */
|
||||
|
||||
off_t filepos; /* Position of next entry to read. */
|
||||
};
|
||||
off_t filepos; /* Position of next entry to read. */
|
||||
};
|
||||
|
||||
typedef struct __dirstream DIR;
|
||||
|
||||
|
|
|
@ -38,14 +38,16 @@ int errno;
|
|||
#define ENOENT 2
|
||||
#define EINTR 4
|
||||
#define EIO 5
|
||||
#define ENXIO 6
|
||||
#define E2BIG 7
|
||||
#define ENOEXEC 8
|
||||
#define ENOEXEC 8
|
||||
#define EBADF 9
|
||||
#define ECHILD 10
|
||||
#define EAGAIN 11
|
||||
#define ENOMEM 12
|
||||
#define EACCES 13
|
||||
#define EEXIST 17
|
||||
#define EXDEV 18
|
||||
#define ENOTDIR 20
|
||||
#define EISDIR 21
|
||||
#define EINVAL 22
|
||||
|
|
|
@ -29,6 +29,7 @@
|
|||
|
||||
#else // ! WITH_GLIBC
|
||||
|
||||
// *INDENT-OFF*
|
||||
#define O_RDONLY 0
|
||||
#define O_WRONLY 1
|
||||
#define O_RDWR 2
|
||||
|
@ -37,6 +38,7 @@
|
|||
#define O_TRUNC 0x200
|
||||
#define O_APPEND 0x400
|
||||
#define O_DIRECTORY 0x10000
|
||||
// *INDENT-ON*
|
||||
|
||||
#define FD_CLOEXEC 1
|
||||
|
||||
|
@ -46,6 +48,7 @@
|
|||
#define F_GETFL 3
|
||||
#define F_SETFL 4
|
||||
|
||||
#define creat(file_name, mode) open (file_name, O_WRONLY | O_CREAT | O_TRUNC, mode)
|
||||
int dup (int old);
|
||||
int dup2 (int old, int new);
|
||||
int fcntl (int filedes, int command, ...);
|
||||
|
|
|
@ -26,4 +26,3 @@
|
|||
#endif // (WITH_GLIBC)
|
||||
|
||||
#endif // __MES_FEATURES_H
|
||||
|
||||
|
|
|
@ -29,6 +29,19 @@
|
|||
#define DBL_MIN_EXP -1021
|
||||
#define LDBL_MIN_EXP -1021
|
||||
|
||||
// gcc-4.6
|
||||
#define DBL_EPSILON 1
|
||||
#define DBL_MANT_DIG 1
|
||||
#define DBL_MAX INT_MAX
|
||||
#define DBL_MIN INT_MIN
|
||||
|
||||
#define FLT_RADIX 10
|
||||
|
||||
#define LDBL_EPSILON 1
|
||||
#define LDBL_MANT_DIG 1
|
||||
#define LDBL_MAX INT_MAX
|
||||
#define LDBL_MIN INT_MIN
|
||||
|
||||
#endif // ! WITH_GLIBC
|
||||
|
||||
#endif // __MES_FLOAT_H
|
||||
|
|
|
@ -0,0 +1,43 @@
|
|||
/* -*-comment-start: "//";comment-end:""-*-
|
||||
* GNU Mes --- Maxwell Equations of Software
|
||||
* Copyright © 2019 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
|
||||
*
|
||||
* This file is part of GNU Mes.
|
||||
*
|
||||
* GNU Mes is free software; you can redistribute it and/or modify it
|
||||
* under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; either version 3 of the License, or (at
|
||||
* your option) any later version.
|
||||
*
|
||||
* GNU Mes is distributed in the hope that it will be useful, but
|
||||
* WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with GNU Mes. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
#ifndef __MES_GRP_H
|
||||
#define __MES_GRP_H 1
|
||||
|
||||
#if WITH_GLIBC
|
||||
#undef __MES_GRP_H
|
||||
#include_next <pwd.h>
|
||||
#else // ! WITH_GLIBC
|
||||
|
||||
struct group
|
||||
{
|
||||
char *gr_name;
|
||||
gid_t gr_gid;
|
||||
char **gr_mem;
|
||||
};
|
||||
|
||||
struct group *getgrent (void);
|
||||
void endgrent (void);
|
||||
void setgrent (void);
|
||||
struct group *getgrgid (gid_t gid);
|
||||
struct group *getgrnam (char const *name);
|
||||
|
||||
#endif // ! WITH_GLIBC
|
||||
|
||||
#endif // __MES_GRP_H
|
|
@ -28,7 +28,7 @@
|
|||
#include_next <libgen.h>
|
||||
|
||||
#else // ! WITH_GLIBC
|
||||
char* dirname (char*);
|
||||
char *dirname (char *);
|
||||
#endif // ! WITH_GLIBC
|
||||
|
||||
#endif // __MES_LIBGEN_H
|
||||
|
|
|
@ -83,4 +83,13 @@
|
|||
// make+POSIX
|
||||
#define SYS_sigprocmask 0x7e
|
||||
|
||||
// tar
|
||||
#define SYS_symlink 0x53
|
||||
#define SYS_readlink 0x55
|
||||
#define SYS_mknod 0x0e
|
||||
|
||||
// gcc-4.6.4
|
||||
#define SYS_mmap 0x5a
|
||||
#define SYS_munmap 0x5b
|
||||
|
||||
#endif // __MES_LINUX_X86_SYSCALL_H
|
||||
|
|
|
@ -77,7 +77,16 @@
|
|||
#define SYS_getegid 0x6c
|
||||
#define SYS_getppid 0x6e
|
||||
|
||||
// make+POSIX
|
||||
// make+WITH_GLIBC
|
||||
#define SYS_rt_sigprocmask 0x0e
|
||||
|
||||
// tar
|
||||
#define SYS_symlink 0x58
|
||||
#define SYS_readlink 0x59
|
||||
#define SYS_mknod 0x85
|
||||
|
||||
// gcc-4.6.4
|
||||
#define SYS_mmap 0x09
|
||||
#define SYS_munmap 0x0b
|
||||
|
||||
#endif // __MES_LINUX_X86_64_SYSCALL_H
|
||||
|
|
|
@ -29,13 +29,16 @@
|
|||
|
||||
#else // ! WITH_GLIBC
|
||||
|
||||
// *INDENT-OFF*
|
||||
#ifndef LC_ALL
|
||||
#define LC_CTYPE 0
|
||||
#define LC_NUMERIC 1
|
||||
#define LC_COLLATE 3
|
||||
#define LC_ALL 6
|
||||
#endif
|
||||
char * setlocale (int category, char const *locale);
|
||||
// *INDENT-ON*
|
||||
|
||||
char *setlocale (int category, char const *locale);
|
||||
|
||||
#endif // ! WITH_GLIBC
|
||||
|
||||
|
|
|
@ -23,10 +23,22 @@
|
|||
#if WITH_GLIBC
|
||||
#undef __MES_MATH_H
|
||||
#include_next <math.h>
|
||||
#else // ! WITH_GLIBC
|
||||
double ldexp (double x, int exp);
|
||||
#endif // ! WITH_GLIBC
|
||||
#else // ! WITH_GLIBC
|
||||
|
||||
double atan2 (double y, double x);
|
||||
double ceil (double x);
|
||||
double cos (double x);
|
||||
double exp (double x);
|
||||
double fabs (double number);
|
||||
double floor (double x);
|
||||
long int labs (long int number);
|
||||
double ldexp (double value, int exponent);
|
||||
double log (double x);
|
||||
double modf (double value, double *integer_part);
|
||||
double pow (double base, double power);
|
||||
double sin (double x);
|
||||
double sqrt (double x);
|
||||
|
||||
#endif // ! WITH_GLIBC
|
||||
|
||||
#endif // __MES_MATH_H
|
||||
|
|
|
@ -18,13 +18,8 @@
|
|||
* along with GNU Mes. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#ifndef __MES_LIBMES_MINI_H
|
||||
#define __MES_LIBMES_MINI_H
|
||||
|
||||
char **environ;
|
||||
int g_stdin;
|
||||
int g_stdout;
|
||||
int g_stderr;
|
||||
#ifndef __MES_LIB_MINI_H
|
||||
#define __MES_LIB_MINI_H
|
||||
|
||||
#if !WITH_GLIBC
|
||||
|
||||
|
@ -64,26 +59,34 @@ int errno;
|
|||
|
||||
#endif //!WITH_LIBC
|
||||
|
||||
// CONSTANT STDIN 0
|
||||
#ifndef STDIN
|
||||
#define STDIN 0
|
||||
#endif
|
||||
|
||||
// CONSTANT STDOUT 1
|
||||
#ifndef STDOUT
|
||||
#define STDOUT 1
|
||||
#endif
|
||||
|
||||
// CONSTANT STDERR 2
|
||||
#ifndef STDERR
|
||||
#define STDERR 2
|
||||
#endif
|
||||
|
||||
char **environ;
|
||||
int __stdin;
|
||||
int __stdout;
|
||||
int __stderr;
|
||||
|
||||
int eputs (char const* s);
|
||||
int puts (char const* s);
|
||||
int oputs (char const* s);
|
||||
int eputs (char const *s);
|
||||
int puts (char const *s);
|
||||
int oputs (char const *s);
|
||||
|
||||
#if !WITH_GLIBC
|
||||
size_t strlen (char const* s);
|
||||
size_t strlen (char const *s);
|
||||
ssize_t _write ();
|
||||
ssize_t write (int filedes, void const *buffer, size_t size);
|
||||
#endif // !WITH_GLIBC
|
||||
|
||||
#endif //__MES_LIBMES_MINI_H
|
||||
#endif //__MES_LIB_MINI_H
|
|
@ -1,6 +1,6 @@
|
|||
/* -*-comment-start: "//";comment-end:""-*-
|
||||
* GNU Mes --- Maxwell Equations of Software
|
||||
* Copyright © 2016,2017,2018 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
|
||||
* Copyright © 2016,2017,2018,2019 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
|
||||
*
|
||||
* This file is part of GNU Mes.
|
||||
*
|
||||
|
@ -18,33 +18,36 @@
|
|||
* along with GNU Mes. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#ifndef __MES_LIBMES_H
|
||||
#define __MES_LIBMES_H
|
||||
#ifndef __MES_LIB_H
|
||||
#define __MES_LIB_H
|
||||
|
||||
#include <libmes-mini.h>
|
||||
#include <mes/lib-mini.h>
|
||||
|
||||
int __mes_debug ();
|
||||
long abtol (char const** p, int base);
|
||||
char const* ntoab (long number, int base, int signed_p);
|
||||
char const* itoa (int number);
|
||||
char const* ltoa (long number);
|
||||
char const* ultoa (unsigned long number);
|
||||
char const* utoa (unsigned number);
|
||||
char const* ltoab (long x, int base);
|
||||
double abtod (char const **p, int base);
|
||||
long abtol (char const **p, int base);
|
||||
char *dtoab (double number, int base, int signed_p);
|
||||
char *itoa (int number);
|
||||
char *ltoa (long number);
|
||||
char *ltoab (long x, int base);
|
||||
char *ntoab (long number, int base, int signed_p);
|
||||
char *ultoa (unsigned long number);
|
||||
char *utoa (unsigned number);
|
||||
int atoi (char const *s);
|
||||
int eputc (int c);
|
||||
int fdgetc (int fd);
|
||||
int fdputc (int c, int fd);
|
||||
int fdputs (char const* s, int fd);
|
||||
int fdputs (char const *s, int fd);
|
||||
int fdungetc (int c, int fd);
|
||||
int _fdungetc_p (int fd);
|
||||
int isdigit (int c);
|
||||
int isspace (int c);
|
||||
int isxdigit (int c);
|
||||
int _open3 (char const *file_name, int flags, int mask);
|
||||
int mes_open (char const *file_name, int flags, int mask);
|
||||
int _open2 (char const *file_name, int flags);
|
||||
int _open3 (char const *file_name, int flags, int mask);
|
||||
int oputc (int c);
|
||||
int oputs (char const* s);
|
||||
int oputs (char const *s);
|
||||
char *search_path (char const *file_name);
|
||||
|
||||
#endif //__MES_LIBMES_H
|
||||
#endif //__MES_LIB_H
|
|
@ -23,7 +23,7 @@
|
|||
#if WITH_GLIBC
|
||||
#undef __MES_PWD_H
|
||||
#include_next <pwd.h>
|
||||
#else // ! WITH_GLIBC
|
||||
#else // ! WITH_GLIBC
|
||||
|
||||
struct passwd
|
||||
{
|
||||
|
@ -36,9 +36,9 @@ struct passwd
|
|||
char *pw_shell;
|
||||
};
|
||||
|
||||
struct passwd * getpwuid ();
|
||||
struct passwd *getpwuid ();
|
||||
|
||||
|
||||
#endif // ! WITH_GLIBC
|
||||
#endif // ! WITH_GLIBC
|
||||
|
||||
#endif // __MES_PWD_H
|
||||
|
|
|
@ -31,6 +31,7 @@ typedef long stack_t;
|
|||
|
||||
#include <sys/types.h>
|
||||
|
||||
// *INDENT-OFF*
|
||||
#define NSIG 30
|
||||
#define SIGHUP 1
|
||||
#define SIGINT 2
|
||||
|
@ -85,40 +86,39 @@ typedef long stack_t;
|
|||
#define SA_NOMASK SA_NODEFER
|
||||
#define SA_ONESHOT SA_RESETHAND
|
||||
|
||||
|
||||
typedef struct siginfo_t
|
||||
{
|
||||
int si_signo;
|
||||
int si_errno;
|
||||
int si_code;
|
||||
int si_trapno;
|
||||
pid_t si_pid;
|
||||
uid_t si_uid;
|
||||
int si_status;
|
||||
clock_t si_utime;
|
||||
clock_t si_stime;
|
||||
sigval_t si_value;
|
||||
int si_int;
|
||||
void *si_ptr;
|
||||
int si_overrun;
|
||||
int si_timerid;
|
||||
void *si_addr;
|
||||
long si_band;
|
||||
int si_fd;
|
||||
short si_addr_lsb;
|
||||
void *si_lower;
|
||||
void *si_upper;
|
||||
int si_pkey;
|
||||
void *si_call_addr;
|
||||
int si_syscall;
|
||||
int si_signo;
|
||||
int si_errno;
|
||||
int si_code;
|
||||
int si_trapno;
|
||||
pid_t si_pid;
|
||||
uid_t si_uid;
|
||||
int si_status;
|
||||
clock_t si_utime;
|
||||
clock_t si_stime;
|
||||
sigval_t si_value;
|
||||
int si_int;
|
||||
void *si_ptr;
|
||||
int si_overrun;
|
||||
int si_timerid;
|
||||
void *si_addr;
|
||||
long si_band;
|
||||
int si_fd;
|
||||
short si_addr_lsb;
|
||||
void *si_lower;
|
||||
void *si_upper;
|
||||
int si_pkey;
|
||||
void *si_call_addr;
|
||||
int si_syscall;
|
||||
unsigned int si_arch;
|
||||
} siginfo_t;
|
||||
|
||||
// *INDENT-ON*
|
||||
|
||||
#if __MESC__
|
||||
typedef long sighandler_t;
|
||||
#else
|
||||
typedef void (*sighandler_t)(int);
|
||||
typedef void (*sighandler_t) (int);
|
||||
#endif
|
||||
|
||||
struct sigaction
|
||||
|
@ -199,14 +199,14 @@ struct _libc_fpstate
|
|||
typedef struct _libc_fpstate *fpregset_t;
|
||||
|
||||
typedef struct
|
||||
{
|
||||
gregset_t gregs;
|
||||
/* Due to Linux's history we have to use a pointer here. The SysV/i386
|
||||
ABI requires a struct with the values. */
|
||||
fpregset_t fpregs;
|
||||
unsigned long int oldmask;
|
||||
unsigned long int cr2;
|
||||
} mcontext_t;
|
||||
{
|
||||
gregset_t gregs;
|
||||
/* Due to Linux's history we have to use a pointer here. The SysV/i386
|
||||
ABI requires a struct with the values. */
|
||||
fpregset_t fpregs;
|
||||
unsigned long int oldmask;
|
||||
unsigned long int cr2;
|
||||
} mcontext_t;
|
||||
|
||||
/* Userlevel context. */
|
||||
typedef struct ucontext
|
||||
|
@ -221,20 +221,21 @@ typedef struct ucontext
|
|||
#endif // !__i386__
|
||||
|
||||
int kill (pid_t pid, int signum);
|
||||
int sigaction (int signum, struct sigaction const *act, struct sigaction *oldact);
|
||||
int sigaddset (sigset_t *set, int signum);
|
||||
int sigaction (int signum, struct sigaction const *act,
|
||||
struct sigaction *oldact);
|
||||
int sigaddset (sigset_t * set, int signum);
|
||||
#if __MESC__
|
||||
void* signal (int signum, void * action);
|
||||
void *signal (int signum, void *action);
|
||||
#else
|
||||
sighandler_t signal (int signum, sighandler_t action);
|
||||
#endif
|
||||
int sigemptyset (sigset_t *set);
|
||||
int sigemptyset (sigset_t * set);
|
||||
#ifndef SIG_BLOCK
|
||||
#define SIG_BLOCK 0
|
||||
#define SIG_UNBLOCK 1
|
||||
#define SIG_SETMASK 2
|
||||
#endif
|
||||
int sigprocmask (int how, sigset_t const *set, sigset_t *oldset);
|
||||
int sigprocmask (int how, sigset_t const *set, sigset_t * oldset);
|
||||
|
||||
#endif //! WITH_GLIBC
|
||||
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
/* -*-comment-start: "//";comment-end:""-*-
|
||||
* GNU Mes --- Maxwell Equations of Software
|
||||
* Copyright © 2017 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
|
||||
* Copyright © 2017,2018,2019 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
|
||||
*
|
||||
* This file is part of GNU Mes.
|
||||
*
|
||||
|
@ -31,14 +31,15 @@
|
|||
#define __FOO_VARARGS 1
|
||||
#endif
|
||||
|
||||
typedef long va_list;
|
||||
typedef char *va_list;
|
||||
#define va_start(ap, last) (void)((ap) = (char*)(&(last) + 1))
|
||||
#define va_arg(ap, type) (type)(((long*)((ap) = ((ap) + sizeof (void*))))[-1])
|
||||
#define va_end(ap) (void)((ap) = 0)
|
||||
#define va_copy(dest, src) dest = src
|
||||
|
||||
int vfprintf (FILE *stream, char const *template, va_list ap);
|
||||
int vprintf (char const* format, va_list ap);
|
||||
int vfprintf (FILE * stream, char const *template, va_list ap);
|
||||
int vfscanf (FILE * stream, char const *template, va_list ap);
|
||||
int vprintf (char const *format, va_list ap);
|
||||
int vsprintf (char *str, char const *format, va_list ap);
|
||||
int vsnprintf (char *str, size_t size, char const *format, va_list ap);
|
||||
int vsscanf (char const *s, char const *template, va_list ap);
|
||||
|
|
|
@ -58,28 +58,10 @@ typedef int int32_t;
|
|||
typedef unsigned long long uint64_t;
|
||||
typedef long long int64_t;
|
||||
|
||||
#ifndef __MES_SIZE_T
|
||||
#define __MES_SIZE_T
|
||||
#undef size_t
|
||||
typedef unsigned long size_t;
|
||||
#endif
|
||||
|
||||
#ifndef __MES_INTPTR_T
|
||||
#define __MES_INTPTR_T
|
||||
#undef intptr_t
|
||||
typedef long intptr_t;
|
||||
#endif
|
||||
|
||||
// FIXME
|
||||
typedef int intmax_t;
|
||||
typedef unsigned uintmax_t;
|
||||
typedef unsigned* uintptr_t;
|
||||
|
||||
#ifndef __MES_PTRDIFF_T
|
||||
#define __MES_PTRDIFF_T
|
||||
#undef ptrdiff_t
|
||||
typedef long ptrdiff_t;
|
||||
#endif
|
||||
#include <sys/types.h>
|
||||
|
||||
#define CHAR_BIT 8
|
||||
#define CHAR_MAX 255
|
||||
|
@ -103,6 +85,12 @@ typedef long ptrdiff_t;
|
|||
|
||||
#define INT_MIN -2147483648
|
||||
#define INT_MAX 2147483647
|
||||
|
||||
#define SHRT_MAX INT16_MAX
|
||||
#define SHRT_MIN INT16_MIN
|
||||
#define USHRT_MAX UINT16_MAX
|
||||
#define USHRT_MIN UINT16_MIN
|
||||
|
||||
#if __i386__
|
||||
#define LONG_MIN INT_MIN
|
||||
#define LONG_MAX INT_MAX
|
||||
|
@ -121,6 +109,8 @@ typedef long ptrdiff_t;
|
|||
#define SIZE_MAX UINT64_MAX
|
||||
#endif
|
||||
|
||||
#define SSIZE_MAX LONG_MAX
|
||||
|
||||
#endif // ! WITH_GLIBC
|
||||
|
||||
#endif // __MES_STDINT_H
|
||||
|
|
|
@ -20,7 +20,7 @@
|
|||
#ifndef __MES_STDIO_H
|
||||
#define __MES_STDIO_H 1
|
||||
|
||||
#include <libmes.h>
|
||||
#include <mes/lib.h>
|
||||
|
||||
#if WITH_GLIBC
|
||||
#ifndef _GNU_SOURCE
|
||||
|
@ -32,9 +32,9 @@
|
|||
#else // ! WITH_GLIBC
|
||||
|
||||
#ifndef _IOFBF
|
||||
#define _IOFBF 0 /* Fully buffered. */
|
||||
#define _IOLBF 1 /* Line buffered. */
|
||||
#define _IONBF 2 /* No buffering. */
|
||||
#define _IOFBF 0 /* Fully buffered. */
|
||||
#define _IOLBF 1 /* Line buffered. */
|
||||
#define _IONBF 2 /* No buffering. */
|
||||
#endif
|
||||
|
||||
#ifndef BUFSIZ
|
||||
|
@ -58,35 +58,37 @@
|
|||
FILE *fdopen (int fd, char const *mode);
|
||||
FILE *fopen (char const *file_name, char const *mode);
|
||||
int eputc (int c);
|
||||
int eputs (char const* s);
|
||||
int fclose (FILE *stream);
|
||||
int feof (FILE *stream);
|
||||
int ferror (FILE *stream);
|
||||
int fflush (FILE *stream);
|
||||
int fgetc (FILE* stream);
|
||||
char *fgets (char *s, int size, FILE *stream);
|
||||
int fprintf (FILE *stream, char const *format, ...);
|
||||
int fpurge (FILE *stream);
|
||||
int fputc (int c, FILE *stream);
|
||||
int fputs (char const* s, FILE *stream);
|
||||
int fseek (FILE *stream, long offset, int whence);
|
||||
int getc (FILE *stream);
|
||||
int eputs (char const *s);
|
||||
int fclose (FILE * stream);
|
||||
int feof (FILE * stream);
|
||||
int ferror (FILE * stream);
|
||||
int fflush (FILE * stream);
|
||||
int fgetc (FILE * stream);
|
||||
char *fgets (char *s, int size, FILE * stream);
|
||||
int fprintf (FILE * stream, char const *format, ...);
|
||||
int fpurge (FILE * stream);
|
||||
int fputc (int c, FILE * stream);
|
||||
int fputs (char const *s, FILE * stream);
|
||||
int fscanf (FILE * stream, char const *template, ...);
|
||||
int fseek (FILE * stream, long offset, int whence);
|
||||
int getc (FILE * stream);
|
||||
int getchar (void);
|
||||
char *getlogin (void);
|
||||
int printf (char const* format, ...);
|
||||
int putc (int c, FILE* stream);
|
||||
int printf (char const *format, ...);
|
||||
int putc (int c, FILE * stream);
|
||||
int putchar (int c);
|
||||
int puts (char const* s);
|
||||
int puts (char const *s);
|
||||
int remove (char const *file_name);
|
||||
int setvbuf (FILE *stream, char *buf, int mode, size_t size);
|
||||
int snprintf(char *str, size_t size, char const *format, ...);
|
||||
int sprintf (char *str, char const* format, ...);
|
||||
int sscanf (char const *str, const char *format, ...);
|
||||
int ungetc (int c, FILE* stream);
|
||||
long ftell (FILE *stream);
|
||||
size_t fread (void *ptr, size_t size, size_t count, FILE *stream);
|
||||
size_t freadahead (FILE *fp);
|
||||
size_t fwrite (void const *ptr, size_t size, size_t count, FILE *stream);
|
||||
void rewind (FILE * stream);
|
||||
int setvbuf (FILE * stream, char *buf, int mode, size_t size);
|
||||
int snprintf (char *str, size_t size, char const *format, ...);
|
||||
int sprintf (char *str, char const *format, ...);
|
||||
int sscanf (char const *str, char const *format, ...);
|
||||
int ungetc (int c, FILE * stream);
|
||||
long ftell (FILE * stream);
|
||||
size_t fread (void *ptr, size_t size, size_t count, FILE * stream);
|
||||
size_t freadahead (FILE * fp);
|
||||
size_t fwrite (void const *ptr, size_t size, size_t count, FILE * stream);
|
||||
|
||||
#endif // ! WITH_GLIBC
|
||||
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
/* -*-comment-start: "//";comment-end:""-*-
|
||||
* GNU Mes --- Maxwell Equations of Software
|
||||
* Copyright © 2017 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
|
||||
* Copyright © 2017,2018,2019 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
|
||||
*
|
||||
* This file is part of GNU Mes.
|
||||
*
|
||||
|
@ -26,22 +26,25 @@
|
|||
#endif
|
||||
#undef __MES_STDLIB_H
|
||||
#include_next <stdlib.h>
|
||||
#else // ! WITH_GLIBC
|
||||
#else // ! WITH_GLIBC
|
||||
|
||||
#include <sys/types.h>
|
||||
#include <alloca.h>
|
||||
|
||||
void abort (void);
|
||||
double atof (char const *s);
|
||||
int atoi (char const *s);
|
||||
int atexit (void (*function) (void));
|
||||
void * calloc (size_t nmemb, size_t size);
|
||||
void *calloc (size_t nmemb, size_t size);
|
||||
void _exit (int status);
|
||||
void exit (int status);
|
||||
void free (void *ptr);
|
||||
char* getenv (char const* s);
|
||||
int setenv (char const* s, char const* v, int overwrite_p);
|
||||
char *getenv (char const *s);
|
||||
int setenv (char const *s, char const *v, int overwrite_p);
|
||||
void unsetenv (char const *name);
|
||||
void *malloc (size_t);
|
||||
void qsort (void *base, size_t nmemb, size_t size, int (*compar)(void const *, void const *));
|
||||
void qsort (void *base, size_t nmemb, size_t size,
|
||||
int (*compar) (void const *, void const *));
|
||||
int rand (void);
|
||||
void *realloc (void *p, size_t size);
|
||||
double strtod (char const *string, char **tailptr);
|
||||
|
@ -60,7 +63,8 @@ unsigned long long strtoull (char const *string, char **tailptr, int base);
|
|||
typedef int (*comparison_fn_t) (void const *, void const *);
|
||||
#endif
|
||||
|
||||
void * bsearch (void const *key, void const *array, size_t count, size_t size, comparison_fn_t compare);
|
||||
void *bsearch (void const *key, void const *array, size_t count, size_t size,
|
||||
comparison_fn_t compare);
|
||||
|
||||
#endif // ! WITH_GLIBC
|
||||
|
||||
|
|
|
@ -29,41 +29,28 @@
|
|||
|
||||
#else // ! WITH_GLIBC
|
||||
|
||||
#ifndef NULL
|
||||
#define NULL 0
|
||||
#endif
|
||||
#include <sys/types.h>
|
||||
|
||||
#ifndef __MES_SIZE_T
|
||||
#define __MES_SIZE_T
|
||||
#undef size_t
|
||||
typedef unsigned long size_t;
|
||||
#endif
|
||||
|
||||
#ifndef __MES_SSIZE_T
|
||||
#define __MES_SSIZE_T
|
||||
#undef ssize_t
|
||||
typedef long ssize_t;
|
||||
#endif
|
||||
|
||||
void * memchr (void const *block, int c, size_t size);
|
||||
void *memchr (void const *block, int c, size_t size);
|
||||
void *memcpy (void *dest, void const *src, size_t n);
|
||||
void *memmove (void *dest, void const *src, size_t n);
|
||||
void *memset (void *s, int c, size_t n);
|
||||
void * memchr (void const *block, int c, size_t size);
|
||||
void *memchr (void const *block, int c, size_t size);
|
||||
int memcmp (void const *s1, void const *s2, size_t n);
|
||||
|
||||
char *strcat (char *dest, char const *src);
|
||||
char *strchr (char const *s, int c);
|
||||
int strcasecmp (char const *s1, char const *s2);
|
||||
int strcmp (char const*, char const*);
|
||||
int strcmp (char const *, char const *);
|
||||
char *strcpy (char *dest, char const *src);
|
||||
size_t strlen (char const*);
|
||||
size_t strlen (char const *);
|
||||
char *strncpy (char *to, char const *from, size_t size);
|
||||
int strncmp (char const*, char const*, size_t);
|
||||
int strncmp (char const *, char const *, size_t);
|
||||
char *strrchr (char const *s, int c);
|
||||
char *strstr (char const *haystack, char const *needle);
|
||||
char * strlwr (char *string);
|
||||
char * strupr (char *string);
|
||||
char *strtok (char *new_string, char const *delimiters);
|
||||
char *strlwr (char *string);
|
||||
char *strupr (char *string);
|
||||
|
||||
|
||||
char *strerror (int errnum);
|
||||
|
|
|
@ -26,4 +26,3 @@
|
|||
#endif // (WITH_GLIBC)
|
||||
|
||||
#endif // __MES_STRINGS_H
|
||||
|
||||
|
|
|
@ -26,4 +26,3 @@
|
|||
#endif // (WITH_GLIBC)
|
||||
|
||||
#endif // __MES_SYS_CDEFS_H
|
||||
|
||||
|
|
|
@ -33,4 +33,3 @@ int ioctl (int fd, unsigned long request, ...);
|
|||
#endif // ! WITH_GLIBC
|
||||
|
||||
#endif // __MES_SYS_IOCTL_H
|
||||
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
/* -*-comment-start: "//";comment-end:""-*-
|
||||
* GNU Mes --- Maxwell Equations of Software
|
||||
* Copyright © 2017 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
|
||||
* Copyright © 2017,2019 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
|
||||
*
|
||||
* This file is part of GNU Mes.
|
||||
*
|
||||
|
@ -25,19 +25,26 @@
|
|||
#include_next <sys/mman.h>
|
||||
#else // ! WITH_GLIBC
|
||||
|
||||
#ifndef __MES_SIZE_T
|
||||
#define __MES_SIZE_T
|
||||
typedef unsigned long size_t;
|
||||
#endif
|
||||
#include <sys/types.h>
|
||||
|
||||
#define MAP_SHARED 0x01
|
||||
#define MAP_PRIVATE 0x02
|
||||
#define MAP_ANONYMOUS 0x20
|
||||
#define MAP_POPULATE 0x08000
|
||||
|
||||
#define MAP_ANON MAP_ANONYMOUS
|
||||
#define MAP_FAILED ((void*)-1)
|
||||
|
||||
#define PROT_NONE 0
|
||||
#define PROT_READ 1
|
||||
#define PROT_WRITE 2
|
||||
#define PROT_EXEC 4
|
||||
|
||||
void *mmap (void *address, size_t length, int protect, int flags, int filedes,
|
||||
off_t offset);
|
||||
int mprotect (void *addr, size_t len, int prot);
|
||||
int munmap (void *addr, size_t length);
|
||||
|
||||
#endif // ! WITH_GLIBC
|
||||
|
||||
#endif // __MES_SYS_MMAN_H
|
||||
|
||||
|
|
|
@ -50,6 +50,8 @@ struct rusage
|
|||
|
||||
#define RUSAGE_SELF 0
|
||||
#define RUSAGE_CHILDREN -1
|
||||
#define RLIMIT_NOFILE 1024
|
||||
#define OPEN_MAX RLIMIT_NOFILE
|
||||
|
||||
int getrusage (int processes, struct rusage *rusage);
|
||||
|
||||
|
|
|
@ -23,9 +23,8 @@
|
|||
#if WITH_GLIBC
|
||||
#undef __MES_SYS_SELECT_H
|
||||
#include_next <sys/select.h>
|
||||
#else //! WITH_GLIBC
|
||||
#else //! WITH_GLIBC
|
||||
typedef int fd_set;
|
||||
#endif //! WITH_GLIBC
|
||||
|
||||
#endif // __MES_SYS_SELECT_H
|
||||
|
||||
|
|
|
@ -34,6 +34,7 @@
|
|||
typedef int mode_t;
|
||||
#endif
|
||||
|
||||
// *INDENT-OFF*
|
||||
#if __i386__
|
||||
struct stat
|
||||
{
|
||||
|
@ -79,13 +80,16 @@ struct stat
|
|||
unsigned long __foo1;
|
||||
};
|
||||
#endif
|
||||
// *INDENT-ON*
|
||||
|
||||
int chmod (char const *file_name, mode_t mode);
|
||||
int mkdir (char const *file_name, mode_t mode);
|
||||
int mknod (char const *file_name, mode_t mode, dev_t dev);
|
||||
int chown (char const *file_name, uid_t owner, gid_t group);
|
||||
int rmdir (char const *file_name);
|
||||
int stat (char const *file_name, struct stat *buf);
|
||||
|
||||
#define S_IFIFO 0010000
|
||||
#define S_IFCHR 0020000
|
||||
#define S_IFDIR 0040000
|
||||
#define S_IFBLK 0060000
|
||||
|
@ -93,6 +97,7 @@ int stat (char const *file_name, struct stat *buf);
|
|||
#define S_IFLNK 0120000
|
||||
#define S_IFMT 0170000
|
||||
|
||||
#define S_ISFIFO(m) (((m) & S_IFMT) == S_IFIFO)
|
||||
#define S_ISDIR(m) (((m) & S_IFMT) == S_IFDIR)
|
||||
#define S_ISREG(m) (((m) & S_IFMT) == S_IFREG)
|
||||
|
||||
|
|
|
@ -26,4 +26,3 @@
|
|||
#endif // (WITH_GLIBC)
|
||||
|
||||
#endif // __MES_SYS_TIMEB_H
|
||||
|
||||
|
|
|
@ -135,6 +135,15 @@ typedef long ssize_t;
|
|||
typedef unsigned uid_t;
|
||||
#endif
|
||||
|
||||
#ifndef __WCHAR_T
|
||||
#define __WCHAR_T
|
||||
#ifndef __MES_WCHAR_T
|
||||
#define __MES_WCHAR_T
|
||||
#undef wchar_t
|
||||
typedef int wchar_t;
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#endif // ! WITH_GLIBC
|
||||
|
||||
#endif // __MES_SYS_TYPES_H
|
||||
|
|
|
@ -26,4 +26,3 @@
|
|||
#endif // (WITH_GLIBC)
|
||||
|
||||
#endif // __MES_SYS_UCONTEXT_H
|
||||
|
||||
|
|
|
@ -36,7 +36,7 @@ struct user_fpregs_struct
|
|||
long int fcs;
|
||||
long int foo;
|
||||
long int fos;
|
||||
long int st_space [20];
|
||||
long int st_space[20];
|
||||
};
|
||||
|
||||
struct user_fpxregs_struct
|
||||
|
@ -51,8 +51,8 @@ struct user_fpxregs_struct
|
|||
long int fos;
|
||||
long int mxcsr;
|
||||
long int reserved;
|
||||
long int st_space[32]; /* 8*16 bytes for each FP-reg = 128 bytes */
|
||||
long int xmm_space[32]; /* 8*16 bytes for each XMM-reg = 128 bytes */
|
||||
long int st_space[32]; /* 8*16 bytes for each FP-reg = 128 bytes */
|
||||
long int xmm_space[32]; /* 8*16 bytes for each XMM-reg = 128 bytes */
|
||||
long int padding[56];
|
||||
};
|
||||
|
||||
|
@ -77,32 +77,34 @@ struct user_regs_struct
|
|||
long int xss;
|
||||
};
|
||||
|
||||
// *INDENT-OFF*
|
||||
struct user
|
||||
{
|
||||
struct user_regs_struct regs;
|
||||
int u_fpvalid;
|
||||
struct user_fpregs_struct i387;
|
||||
unsigned long int u_tsize;
|
||||
unsigned long int u_dsize;
|
||||
unsigned long int u_ssize;
|
||||
unsigned long int start_code;
|
||||
unsigned long int start_stack;
|
||||
long int signal;
|
||||
int reserved;
|
||||
struct user_regs_struct* u_ar0;
|
||||
struct user_fpregs_struct* u_fpstate;
|
||||
unsigned long int magic;
|
||||
char u_comm [32];
|
||||
int u_debugreg [8];
|
||||
struct user_regs_struct regs;
|
||||
int u_fpvalid;
|
||||
struct user_fpregs_struct i387;
|
||||
unsigned long int u_tsize;
|
||||
unsigned long int u_dsize;
|
||||
unsigned long int u_ssize;
|
||||
unsigned long int start_code;
|
||||
unsigned long int start_stack;
|
||||
long int signal;
|
||||
int reserved;
|
||||
struct user_regs_struct *u_ar0;
|
||||
struct user_fpregs_struct *u_fpstate;
|
||||
unsigned long int magic;
|
||||
char u_comm [32];
|
||||
int u_debugreg [8];
|
||||
};
|
||||
|
||||
#define PAGE_SHIFT 12
|
||||
#define PAGE_SIZE (1UL << PAGE_SHIFT)
|
||||
#define PAGE_MASK (~(PAGE_SIZE-1))
|
||||
#define NBPG PAGE_SIZE
|
||||
#define UPAGES 1
|
||||
#define HOST_TEXT_START_ADDR (u.start_code)
|
||||
#define HOST_STACK_END_ADDR (u.start_stack + u.u_ssize * NBPG)
|
||||
#define PAGE_SHIFT 12
|
||||
#define PAGE_SIZE (1UL << PAGE_SHIFT)
|
||||
#define PAGE_MASK (~(PAGE_SIZE-1))
|
||||
#define NBPG PAGE_SIZE
|
||||
#define UPAGES 1
|
||||
#define HOST_TEXT_START_ADDR (u.start_code)
|
||||
#define HOST_STACK_END_ADDR (u.start_stack + u.u_ssize * NBPG)
|
||||
// *INDENT-ON*
|
||||
|
||||
#endif // ! WITH_GLIBC
|
||||
|
||||
|
|
|
@ -49,6 +49,14 @@
|
|||
#define CS8 0000060
|
||||
#define PARENB 0000400
|
||||
|
||||
struct winsize
|
||||
{
|
||||
unsigned short ws_row;
|
||||
unsigned short ws_col;
|
||||
unsigned short ws_xpixel;
|
||||
unsigned short ws_ypixel;
|
||||
};
|
||||
|
||||
struct termio
|
||||
{
|
||||
unsigned short c_iflag;
|
||||
|
|
|
@ -31,7 +31,8 @@ typedef long int clockid_t;
|
|||
typedef long int time_t;
|
||||
#endif
|
||||
|
||||
struct tm {
|
||||
struct tm
|
||||
{
|
||||
int tm_sec;
|
||||
int tm_min;
|
||||
int tm_hour;
|
||||
|
@ -55,11 +56,13 @@ struct timespec
|
|||
#endif // __MES_STRUCT_TIMESPEC
|
||||
|
||||
#define CLOCK_PROCESS_CPUTIME_ID 2
|
||||
char *asctime (struct tm const *broken_time);
|
||||
int clock_gettime (clockid_t clk_id, struct timespec *tp);
|
||||
struct tm *localtime (time_t const *timep);
|
||||
struct tm *gmtime (time_t const *time);
|
||||
int mktime (struct tm *broken_time);
|
||||
|
||||
time_t time (time_t *tloc);
|
||||
time_t time (time_t * tloc);
|
||||
|
||||
#endif // ! WITH_GLIBC
|
||||
|
||||
|
|
|
@ -62,6 +62,7 @@ unsigned int alarm (unsigned int seconds);
|
|||
int close (int fd);
|
||||
int execv (char const *file_name, char *const argv[]);
|
||||
int execl (char const *file_name, char const *arg, ...);
|
||||
int execlp (char const *file_name, char const *arg, ...);
|
||||
int execve (char const *file, char *const argv[], char *const env[]);
|
||||
int execvp (char const *file, char *const argv[]);
|
||||
int fork (void);
|
||||
|
@ -72,19 +73,23 @@ int setgid (gid_t newgid);
|
|||
int setuid (uid_t newuid);
|
||||
uid_t geteuid (void);
|
||||
gid_t getegid (void);
|
||||
pid_t getpgrp (void);
|
||||
pid_t getpid (void);
|
||||
int getpgid (pid_t pid);
|
||||
int isatty (int fd);
|
||||
int link (char const *oldname, char const *newname);
|
||||
int link (char const *old_name, char const *new_name);
|
||||
off_t lseek (int fd, off_t offset, int whence);
|
||||
ssize_t read (int fd, void *buffer, size_t size);
|
||||
ssize_t readlink (char const *file_name, char *buffer, size_t size);
|
||||
#if __SBRK_CHAR_PTRDIFF
|
||||
/* xmalloc in binutils <= 2.10.1 uses this old prototype */
|
||||
char * sbrk (ptrdiff_t delta);
|
||||
char *sbrk (ptrdiff_t delta);
|
||||
#else
|
||||
void * sbrk (intptr_t delta);
|
||||
void *sbrk (intptr_t delta);
|
||||
#endif
|
||||
int symlink (char const *old_name, char const *new_name);
|
||||
int unlink (char const *file_name);
|
||||
ssize_t write (int filedes, void const *buffer, size_t size);
|
||||
pid_t getpid (void);
|
||||
|
||||
#endif // ! WITH_GLIBC
|
||||
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
void
|
||||
assert_fail (char* s)
|
||||
assert_fail (char *s)
|
||||
{
|
||||
eputs ("assert fail: ");
|
||||
eputs (s);
|
||||
|
|
|
@ -18,7 +18,7 @@
|
|||
* along with GNU Mes. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#include <libmes.h>
|
||||
#include <mes/lib.h>
|
||||
|
||||
int
|
||||
isdigit (int c)
|
||||
|
|
|
@ -0,0 +1,27 @@
|
|||
/* -*-comment-start: "//";comment-end:""-*-
|
||||
* GNU Mes --- Maxwell Equations of Software
|
||||
* Copyright © 2019 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
|
||||
*
|
||||
* This file is part of GNU Mes.
|
||||
*
|
||||
* GNU Mes is free software; you can redistribute it and/or modify it
|
||||
* under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; either version 3 of the License, or (at
|
||||
* your option) any later version.
|
||||
*
|
||||
* GNU Mes is distributed in the hope that it will be useful, but
|
||||
* WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with GNU Mes. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#include <ctype.h>
|
||||
|
||||
int
|
||||
isgraph (int c)
|
||||
{
|
||||
return c > 32 && c < 127;
|
||||
}
|
|
@ -18,10 +18,11 @@
|
|||
* along with GNU Mes. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#include <libmes.h>
|
||||
#include <mes/lib.h>
|
||||
|
||||
int
|
||||
isspace (int c)
|
||||
{
|
||||
return (c == '\t' || c == '\n' || c == '\v' || c == '\f' || c == '\r' || c == ' ');
|
||||
return (c == '\t' || c == '\n' || c == '\v' || c == '\f' || c == '\r'
|
||||
|| c == ' ');
|
||||
}
|
||||
|
|
|
@ -18,7 +18,7 @@
|
|||
* along with GNU Mes. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#include <libmes.h>
|
||||
#include <mes/lib.h>
|
||||
|
||||
int
|
||||
isxdigit (int c)
|
||||
|
|
|
@ -26,7 +26,7 @@
|
|||
#include <unistd.h>
|
||||
|
||||
int
|
||||
__getdirentries (int filedes, char *buffer, size_t nbytes, off_t *basep)
|
||||
__getdirentries (int filedes, char *buffer, size_t nbytes, off_t * basep)
|
||||
{
|
||||
if (basep)
|
||||
*basep = lseek (filedes, (off_t) 0, SEEK_CUR);
|
||||
|
|
|
@ -37,7 +37,7 @@
|
|||
/* Close the directory stream DIRP.
|
||||
Return 0 if successful, -1 if not. */
|
||||
int
|
||||
closedir (DIR *dirp)
|
||||
closedir (DIR * dirp)
|
||||
{
|
||||
int filedes;
|
||||
|
||||
|
|
|
@ -47,12 +47,12 @@ opendir (char const *name)
|
|||
if (name[0] == '\0')
|
||||
{
|
||||
/* POSIX.1-1990 says an empty name gets ENOENT;
|
||||
but `open' might like it fine. */
|
||||
but `open' might like it fine. */
|
||||
errno = ENOENT;
|
||||
return 0;
|
||||
}
|
||||
|
||||
fd = open (name, O_RDONLY|O_DIRECTORY);
|
||||
fd = open (name, O_RDONLY | O_DIRECTORY);
|
||||
if (fd < 0)
|
||||
return 0;
|
||||
|
||||
|
@ -73,7 +73,7 @@ opendir (char const *name)
|
|||
errno = save_errno;
|
||||
return 0;
|
||||
}
|
||||
dirp->data = (char *) (dirp + 1);
|
||||
dirp->data = (char *)(dirp + 1);
|
||||
dirp->allocation = allocation;
|
||||
dirp->fd = fd;
|
||||
|
||||
|
|
|
@ -34,7 +34,7 @@
|
|||
|
||||
/* Read a directory entry from DIRP. */
|
||||
struct dirent *
|
||||
readdir (DIR *dirp)
|
||||
readdir (DIR * dirp)
|
||||
{
|
||||
struct dirent *dp;
|
||||
int saved_errno = errno;
|
||||
|
@ -44,42 +44,43 @@ readdir (DIR *dirp)
|
|||
size_t reclen;
|
||||
|
||||
if (dirp->offset >= dirp->size)
|
||||
{
|
||||
/* We've emptied out our buffer. Refill it. */
|
||||
{
|
||||
/* We've emptied out our buffer. Refill it. */
|
||||
|
||||
size_t maxread;
|
||||
ssize_t bytes;
|
||||
size_t maxread;
|
||||
ssize_t bytes;
|
||||
|
||||
maxread = dirp->allocation;
|
||||
maxread = dirp->allocation;
|
||||
|
||||
#if 0
|
||||
off_t base;
|
||||
bytes = __getdirentries (dirp->fd, dirp->data, maxread, &base);
|
||||
off_t base;
|
||||
bytes = __getdirentries (dirp->fd, dirp->data, maxread, &base);
|
||||
#else
|
||||
bytes = getdents (dirp->fd, dirp->data, maxread);
|
||||
#endif
|
||||
if (bytes <= 0)
|
||||
{
|
||||
/* Don't modifiy errno when reaching EOF. */
|
||||
if (bytes == 0)
|
||||
if (bytes <= 0)
|
||||
{
|
||||
/* Don't modifiy errno when reaching EOF. */
|
||||
if (bytes == 0)
|
||||
errno = saved_errno;
|
||||
dp = 0;
|
||||
break;
|
||||
}
|
||||
dirp->size = (size_t) bytes;
|
||||
dp = 0;
|
||||
break;
|
||||
}
|
||||
dirp->size = (size_t)bytes;
|
||||
|
||||
/* Reset the offset into the buffer. */
|
||||
dirp->offset = 0;
|
||||
}
|
||||
/* Reset the offset into the buffer. */
|
||||
dirp->offset = 0;
|
||||
}
|
||||
|
||||
dp = (struct dirent *) &dirp->data[dirp->offset];
|
||||
dp = (struct dirent *)&dirp->data[dirp->offset];
|
||||
|
||||
reclen = dp->d_reclen;
|
||||
dirp->offset += reclen;
|
||||
dirp->filepos = dp->d_off;
|
||||
|
||||
/* Skip deleted files. */
|
||||
} while (dp->d_ino == 0);
|
||||
}
|
||||
while (dp->d_ino == 0);
|
||||
|
||||
return dp;
|
||||
}
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
/* -*-comment-start: "//";comment-end:""-*-
|
||||
* GNU Mes --- Maxwell Equations of Software
|
||||
* Copyright © 2018 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
|
||||
* Copyright © 2018,2019 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
|
||||
*
|
||||
* This file is part of GNU Mes.
|
||||
*
|
||||
|
@ -21,7 +21,7 @@
|
|||
#include <libc+tcc.c>
|
||||
|
||||
#if __GNU__
|
||||
#include <linux/gnu.c>
|
||||
#error TODO, see wip-hurd
|
||||
#elif __linux__
|
||||
#include <linux/gnu.c>
|
||||
#else
|
||||
|
@ -31,7 +31,7 @@
|
|||
// m4
|
||||
#include <stdlib/abort.c>
|
||||
#include <stdlib/atol.c>
|
||||
#include <stub/atof.c>
|
||||
#include <stdlib/atof.c>
|
||||
#include <string/bcmp.c>
|
||||
#include <string/bcopy.c>
|
||||
#include <string/bzero.c>
|
||||
|
@ -48,7 +48,7 @@
|
|||
#include <stub/pclose.c>
|
||||
#include <stub/popen.c>
|
||||
#include <string/rindex.c>
|
||||
#include <stub/rewind.c>
|
||||
#include <stdio/rewind.c> // for gcc-4.6.4; could be stubbed
|
||||
#include <stub/setbuf.c>
|
||||
#include <stub/system.c>
|
||||
#include <string/strerror.c>
|
||||
|
@ -70,7 +70,8 @@
|
|||
#include <stub/sys_siglist.c>
|
||||
#include <stub/umask.c>
|
||||
#include <stub/utime.c>
|
||||
#include <stub/fscanf.c>
|
||||
#include <stdio/fscanf.c> // for gcc-4.6.4; could be stubbed
|
||||
#include <stdio/vfscanf.c> // dependency of fscanf
|
||||
#include <ctype/isascii.c>
|
||||
#include <stdlib/bsearch.c>
|
||||
#include <stub/gmtime.c>
|
||||
|
@ -83,7 +84,6 @@
|
|||
#include <math/fabs.c>
|
||||
|
||||
// gcc
|
||||
|
||||
#include <stdio/freopen.c>
|
||||
#include <stub/times.c>
|
||||
#include <posix/sleep.c>
|
||||
|
@ -119,3 +119,31 @@
|
|||
#include <stub/rand.c>
|
||||
#include <stub/sigdelset.c>
|
||||
#include <stub/ttyname.c>
|
||||
|
||||
// gawk
|
||||
#include <ctype/isgraph.c>
|
||||
#include <stub/getpgid.c>
|
||||
#include <stub/getpgrp.c>
|
||||
// #include <mes/abtod.c> in libc+tcc for strtod,strtof (could be stubbed)
|
||||
|
||||
// tar
|
||||
#include <posix/execlp.c>
|
||||
#include <stub/getgrgid.c>
|
||||
#include <stub/getgrnam.c>
|
||||
#include <stub/mktime.c>
|
||||
#include <stub/setgrent.c>
|
||||
|
||||
// gcc-4.6.4
|
||||
#include <math/ceil.c>
|
||||
#include <math/floor.c>
|
||||
#include <math/labs.c>
|
||||
#include <string/strtok.c>
|
||||
#include <stub/atan2.c>
|
||||
#include <stub/asctime.c>
|
||||
#include <stub/cos.c>
|
||||
#include <stub/exp.c>
|
||||
#include <stub/log.c>
|
||||
#include <stub/modf.c>
|
||||
#include <stub/pow.c>
|
||||
#include <stub/sin.c>
|
||||
#include <stub/sqrt.c>
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
/* -*-comment-start: "//";comment-end:""-*-
|
||||
* GNU Mes --- Maxwell Equations of Software
|
||||
* Copyright © 2017,2018 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
|
||||
* Copyright © 2017,2018,2019 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
|
||||
*
|
||||
* This file is part of GNU Mes.
|
||||
*
|
||||
|
@ -61,6 +61,8 @@ int errno;
|
|||
#include <ctype/isupper.c>
|
||||
#include <ctype/tolower.c>
|
||||
#include <ctype/toupper.c>
|
||||
#include <mes/abtod.c> // implementation instead of stub for GNU gawk
|
||||
#include <mes/dtoab.c> // implementation instead of stub for GNU gawk
|
||||
#include <mes/search-path.c>
|
||||
#include <posix/execvp.c>
|
||||
#include <stdio/fclose.c>
|
||||
|
@ -85,6 +87,7 @@ int errno;
|
|||
#include <stdio/vsscanf.c>
|
||||
#include <stdlib/calloc.c>
|
||||
#include <stdlib/qsort.c>
|
||||
#include <stdlib/strtod.c>
|
||||
#include <stdlib/strtof.c>
|
||||
#include <stdlib/strtol.c>
|
||||
#include <stdlib/strtold.c>
|
||||
|
@ -93,7 +96,6 @@ int errno;
|
|||
#include <stdlib/strtoull.c>
|
||||
#include <string/memmem.c>
|
||||
#include <string/memmove.c>
|
||||
#include <string/memset.c>
|
||||
#include <string/strcat.c>
|
||||
#include <string/strchr.c>
|
||||
#include <string/strlwr.c>
|
||||
|
@ -105,5 +107,4 @@ int errno;
|
|||
#include <stub/ldexp.c>
|
||||
#include <stub/mprotect.c>
|
||||
#include <stub/localtime.c>
|
||||
#include <stub/strtod.c>
|
||||
#include <stub/sigemptyset.c>
|
||||
|
|
15
lib/libc.c
15
lib/libc.c
|
@ -21,10 +21,10 @@
|
|||
#include <sys/ioctl.h>
|
||||
#include <stdarg.h>
|
||||
#include <stdlib.h>
|
||||
#include <libmes.h>
|
||||
#include <mes/lib.h>
|
||||
#include <stdio.h>
|
||||
|
||||
#include <libmes.h>
|
||||
#include <mes/lib.h>
|
||||
#include <stdarg.h>
|
||||
#include <stdlib.h>
|
||||
#include <unistd.h>
|
||||
|
@ -40,8 +40,6 @@
|
|||
#error both __GNU__ and _linux__ are undefined, choose one
|
||||
#endif
|
||||
|
||||
int g_stdin = 0;
|
||||
|
||||
void _env ();
|
||||
|
||||
#define MAX(a, b) (((a) > (b)) ? (a) : (b))
|
||||
|
@ -60,9 +58,9 @@ __mes_debug ()
|
|||
|
||||
|
||||
#if !___GNU__
|
||||
#include <string/memcpy.c>
|
||||
#include <stdlib/malloc.c>
|
||||
#include <assert/assert.c>
|
||||
#include <stdlib/malloc.c>
|
||||
#include <string/memcpy.c>
|
||||
#endif
|
||||
|
||||
#include <stdio/getchar.c>
|
||||
|
@ -76,15 +74,16 @@ __mes_debug ()
|
|||
|
||||
#include <string/memchr.c>
|
||||
#include <string/memcmp.c>
|
||||
#include <string/memset.c>
|
||||
#include <string/strcmp.c>
|
||||
#include <string/strcpy.c>
|
||||
#include <string/strncmp.c>
|
||||
|
||||
#include <stdlib/free.c>
|
||||
#include <stdlib/realloc.c>
|
||||
#include <stdlib/getenv.c>
|
||||
#include <stdlib/setenv.c>
|
||||
|
||||
#include <posix/getenv.c>
|
||||
#include <posix/isatty.c>
|
||||
#include <posix/setenv.c>
|
||||
#include <posix/wait.c>
|
||||
#include <posix/execv.c>
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
/* -*-comment-start: "//";comment-end:""-*-
|
||||
* GNU Mes --- Maxwell Equations of Software
|
||||
* Copyright © 2018 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
|
||||
* Copyright © 2018,2019 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
|
||||
*
|
||||
* This file is part of GNU Mes.
|
||||
*
|
||||
|
@ -48,7 +48,7 @@
|
|||
|
||||
// m4
|
||||
#include <stdlib/abort.c>
|
||||
#include <stub/atof.c>
|
||||
#include <stdlib/atof.c>
|
||||
#include <string/bcmp.c>
|
||||
#include <string/bcopy.c>
|
||||
#include <string/bzero.c>
|
||||
|
@ -65,7 +65,7 @@
|
|||
#include <stub/pclose.c>
|
||||
#include <stub/popen.c>
|
||||
#include <string/rindex.c>
|
||||
#include <stub/rewind.c>
|
||||
#include <stdio/rewind.c> // for gcc-4.6.4; could be stubbed
|
||||
#include <stub/setbuf.c>
|
||||
#include <stub/system.c>
|
||||
#include <string/strerror.c>
|
||||
|
@ -87,7 +87,8 @@
|
|||
#include <stub/sys_siglist.c>
|
||||
#include <stub/umask.c>
|
||||
#include <stub/utime.c>
|
||||
#include <stub/fscanf.c>
|
||||
#include <stdio/fscanf.c> // for gcc-4.6.4; could be stubbed
|
||||
#include <stdio/vfscanf.c> // dependency of fscanf
|
||||
#include <ctype/isascii.c>
|
||||
#include <stdlib/bsearch.c>
|
||||
#include <stub/gmtime.c>
|
||||
|
|
32
lib/libmes.c
32
lib/libmes.c
|
@ -18,7 +18,7 @@
|
|||
* along with GNU Mes. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#include <libmes.h>
|
||||
#include <mes/lib.h>
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
#include <unistd.h>
|
||||
|
@ -41,10 +41,36 @@
|
|||
#include <mes/fdputs.c>
|
||||
#include <mes/fdungetc.c>
|
||||
|
||||
#if POSIX
|
||||
#if WITH_GLIBC
|
||||
#include <fcntl.h>
|
||||
#include <stdarg.h>
|
||||
// The Mes C Library defines and initializes these in crt1
|
||||
int __stdin = STDIN;
|
||||
int __stdout = STDOUT;
|
||||
int __stderr = STDERR;
|
||||
|
||||
int
|
||||
mes_open (char const *file_name, int flags, int mask)
|
||||
{
|
||||
__ungetc_init ();
|
||||
int r = open (file_name, flags, mask);
|
||||
if (r > 2)
|
||||
__ungetc_buf[r] = -1;
|
||||
return r;
|
||||
}
|
||||
|
||||
#include <mes/eputs.c>
|
||||
#include <mes/oputs.c>
|
||||
#endif // POSIX
|
||||
|
||||
#else // !WITH_GLIBC
|
||||
|
||||
int
|
||||
mes_open (char const *file_name, int flags, int mask)
|
||||
{
|
||||
return _open3 (file_name, flags, mask);
|
||||
}
|
||||
|
||||
#endif // !WITH_GLIBC
|
||||
|
||||
#include <mes/eputc.c>
|
||||
#include <mes/oputc.c>
|
||||
|
|
|
@ -18,7 +18,7 @@
|
|||
* along with GNU Mes. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#include <libmes.h>
|
||||
#include <mes/lib.h>
|
||||
|
||||
double
|
||||
__divdi3 (double a, double b)
|
||||
|
@ -37,7 +37,7 @@ __moddi3 (double a, double b)
|
|||
if (__mes_debug () && !stub)
|
||||
eputs ("__moddi3 stub\n");
|
||||
stub = 1;
|
||||
return ((int) a %(int)b);
|
||||
return ((int)a % (int)b);
|
||||
}
|
||||
|
||||
unsigned long long
|
||||
|
@ -120,7 +120,7 @@ long
|
|||
int
|
||||
#else // !__TINYCC_
|
||||
long long
|
||||
#endif // !__TINYCC_
|
||||
#endif // !__TINYCC_
|
||||
__fixdfdi (double a1)
|
||||
{
|
||||
static int stub = 0;
|
||||
|
|
|
@ -0,0 +1,25 @@
|
|||
/* -*-comment-start: "//";comment-end:""-*-
|
||||
* GNU Mes --- Maxwell Equations of Software
|
||||
* Copyright © 2016,2017,2018,2019 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
|
||||
*
|
||||
* This file is part of GNU Mes.
|
||||
*
|
||||
* GNU Mes is free software; you can redistribute it and/or modify it
|
||||
* under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; either version 3 of the License, or (at
|
||||
* your option) any later version.
|
||||
*
|
||||
* GNU Mes is distributed in the hope that it will be useful, but
|
||||
* WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with GNU Mes. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
int
|
||||
access (char const *file_name, int how)
|
||||
{
|
||||
return _sys_call2 (SYS_access, (long)file_name, (int)how);
|
||||
}
|
|
@ -0,0 +1,25 @@
|
|||
/* -*-comment-start: "//";comment-end:""-*-
|
||||
* GNU Mes --- Maxwell Equations of Software
|
||||
* Copyright © 2016,2017,2018,2019 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
|
||||
*
|
||||
* This file is part of GNU Mes.
|
||||
*
|
||||
* GNU Mes is free software; you can redistribute it and/or modify it
|
||||
* under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; either version 3 of the License, or (at
|
||||
* your option) any later version.
|
||||
*
|
||||
* GNU Mes is distributed in the hope that it will be useful, but
|
||||
* WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with GNU Mes. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
long
|
||||
brk (void *addr)
|
||||
{
|
||||
return _sys_call1 (SYS_brk, (long)addr);
|
||||
}
|
|
@ -0,0 +1,25 @@
|
|||
/* -*-comment-start: "//";comment-end:""-*-
|
||||
* GNU Mes --- Maxwell Equations of Software
|
||||
* Copyright © 2018,2019 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
|
||||
*
|
||||
* This file is part of GNU Mes.
|
||||
*
|
||||
* GNU Mes is free software; you can redistribute it and/or modify it
|
||||
* under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; either version 3 of the License, or (at
|
||||
* your option) any later version.
|
||||
*
|
||||
* GNU Mes is distributed in the hope that it will be useful, but
|
||||
* WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with GNU Mes. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
int
|
||||
chdir (char const *file_name)
|
||||
{
|
||||
return _sys_call1 (SYS_chdir, (long)file_name);
|
||||
}
|
|
@ -0,0 +1,25 @@
|
|||
/* -*-comment-start: "//";comment-end:""-*-
|
||||
* GNU Mes --- Maxwell Equations of Software
|
||||
* Copyright © 2016,2017,2018,2019 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
|
||||
*
|
||||
* This file is part of GNU Mes.
|
||||
*
|
||||
* GNU Mes is free software; you can redistribute it and/or modify it
|
||||
* under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; either version 3 of the License, or (at
|
||||
* your option) any later version.
|
||||
*
|
||||
* GNU Mes is distributed in the hope that it will be useful, but
|
||||
* WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with GNU Mes. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
int
|
||||
chmod (char const *file_name, mode_t mask)
|
||||
{
|
||||
return _sys_call2 (SYS_chmod, (long)file_name, (long)mask);
|
||||
}
|
|
@ -0,0 +1,27 @@
|
|||
/* -*-comment-start: "//";comment-end:""-*-
|
||||
* GNU Mes --- Maxwell Equations of Software
|
||||
* Copyright © 2016,2017,2018 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
|
||||
*
|
||||
* This file is part of GNU Mes.
|
||||
*
|
||||
* GNU Mes is free software; you can redistribute it and/or modify it
|
||||
* under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; either version 3 of the License, or (at
|
||||
* your option) any later version.
|
||||
*
|
||||
* GNU Mes is distributed in the hope that it will be useful, but
|
||||
* WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with GNU Mes. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
int
|
||||
close (int filedes)
|
||||
{
|
||||
if (filedes > 2)
|
||||
__ungetc_buf[filedes] = -1;
|
||||
return _sys_call1 (SYS_close, (int)filedes);
|
||||
}
|
|
@ -0,0 +1,25 @@
|
|||
/* -*-comment-start: "//";comment-end:""-*-
|
||||
* GNU Mes --- Maxwell Equations of Software
|
||||
* Copyright © 2016,2017,2018,2019 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
|
||||
*
|
||||
* This file is part of GNU Mes.
|
||||
*
|
||||
* GNU Mes is free software; you can redistribute it and/or modify it
|
||||
* under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; either version 3 of the License, or (at
|
||||
* your option) any later version.
|
||||
*
|
||||
* GNU Mes is distributed in the hope that it will be useful, but
|
||||
* WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with GNU Mes. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
int
|
||||
dup (int old)
|
||||
{
|
||||
return _sys_call1 (SYS_dup, (int)old);
|
||||
}
|
|
@ -0,0 +1,25 @@
|
|||
/* -*-comment-start: "//";comment-end:""-*-
|
||||
* GNU Mes --- Maxwell Equations of Software
|
||||
* Copyright © 2016,2017,2018,2019 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
|
||||
*
|
||||
* This file is part of GNU Mes.
|
||||
*
|
||||
* GNU Mes is free software; you can redistribute it and/or modify it
|
||||
* under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; either version 3 of the License, or (at
|
||||
* your option) any later version.
|
||||
*
|
||||
* GNU Mes is distributed in the hope that it will be useful, but
|
||||
* WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with GNU Mes. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
int
|
||||
dup2 (int old, int new)
|
||||
{
|
||||
return _sys_call2 (SYS_dup2, (int)old, (int)new);
|
||||
}
|
|
@ -0,0 +1,25 @@
|
|||
/* -*-comment-start: "//";comment-end:""-*-
|
||||
* GNU Mes --- Maxwell Equations of Software
|
||||
* Copyright © 2016,2017,2018,2019 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
|
||||
*
|
||||
* This file is part of GNU Mes.
|
||||
*
|
||||
* GNU Mes is free software; you can redistribute it and/or modify it
|
||||
* under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; either version 3 of the License, or (at
|
||||
* your option) any later version.
|
||||
*
|
||||
* GNU Mes is distributed in the hope that it will be useful, but
|
||||
* WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with GNU Mes. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
int
|
||||
execve (char const *file_name, char *const argv[], char *const env[])
|
||||
{
|
||||
return _sys_call3 (SYS_execve, (long)file_name, (long)argv, (long)env);
|
||||
}
|
|
@ -0,0 +1,30 @@
|
|||
/* -*-comment-start: "//";comment-end:""-*-
|
||||
* GNU Mes --- Maxwell Equations of Software
|
||||
* Copyright © 2018,2019 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
|
||||
*
|
||||
* This file is part of GNU Mes.
|
||||
*
|
||||
* GNU Mes is free software; you can redistribute it and/or modify it
|
||||
* under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; either version 3 of the License, or (at
|
||||
* your option) any later version.
|
||||
*
|
||||
* GNU Mes is distributed in the hope that it will be useful, but
|
||||
* WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with GNU Mes. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
int
|
||||
fcntl (int filedes, int command, ...)
|
||||
{
|
||||
va_list ap;
|
||||
va_start (ap, command);
|
||||
int data = va_arg (ap, int);
|
||||
int r = _sys_call3 (SYS_fcntl, (int)filedes, (int)command, (int)data);
|
||||
va_end (ap);
|
||||
return r;
|
||||
}
|
|
@ -0,0 +1,25 @@
|
|||
/* -*-comment-start: "//";comment-end:""-*-
|
||||
* GNU Mes --- Maxwell Equations of Software
|
||||
* Copyright © 2016,2017,2018,2019 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
|
||||
*
|
||||
* This file is part of GNU Mes.
|
||||
*
|
||||
* GNU Mes is free software; you can redistribute it and/or modify it
|
||||
* under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; either version 3 of the License, or (at
|
||||
* your option) any later version.
|
||||
*
|
||||
* GNU Mes is distributed in the hope that it will be useful, but
|
||||
* WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with GNU Mes. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
int
|
||||
fork ()
|
||||
{
|
||||
return _sys_call (SYS_fork);
|
||||
}
|
|
@ -0,0 +1,25 @@
|
|||
/* -*-comment-start: "//";comment-end:""-*-
|
||||
* GNU Mes --- Maxwell Equations of Software
|
||||
* Copyright © 2018,2019 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
|
||||
*
|
||||
* This file is part of GNU Mes.
|
||||
*
|
||||
* GNU Mes is free software; you can redistribute it and/or modify it
|
||||
* under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; either version 3 of the License, or (at
|
||||
* your option) any later version.
|
||||
*
|
||||
* GNU Mes is distributed in the hope that it will be useful, but
|
||||
* WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with GNU Mes. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
int
|
||||
fstat (int filedes, struct stat *statbuf)
|
||||
{
|
||||
return _sys_call2 (SYS_fstat, (int)filedes, (long)statbuf);
|
||||
}
|
|
@ -0,0 +1,25 @@
|
|||
/* -*-comment-start: "//";comment-end:""-*-
|
||||
* GNU Mes --- Maxwell Equations of Software
|
||||
* Copyright © 2016,2017,2018,2019 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
|
||||
*
|
||||
* This file is part of GNU Mes.
|
||||
*
|
||||
* GNU Mes is free software; you can redistribute it and/or modify it
|
||||
* under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; either version 3 of the License, or (at
|
||||
* your option) any later version.
|
||||
*
|
||||
* GNU Mes is distributed in the hope that it will be useful, but
|
||||
* WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with GNU Mes. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
int
|
||||
fsync (int filedes)
|
||||
{
|
||||
return _sys_call1 (SYS_fsync, (int)filedes);
|
||||
}
|
|
@ -0,0 +1,37 @@
|
|||
/* -*-comment-start: "//";comment-end:""-*-
|
||||
* GNU Mes --- Maxwell Equations of Software
|
||||
* Copyright © 2016,2017,2018,2019 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
|
||||
*
|
||||
* This file is part of GNU Mes.
|
||||
*
|
||||
* GNU Mes is free software; you can redistribute it and/or modify it
|
||||
* under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; either version 3 of the License, or (at
|
||||
* your option) any later version.
|
||||
*
|
||||
* GNU Mes is distributed in the hope that it will be useful, but
|
||||
* WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with GNU Mes. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
char *
|
||||
_getcwd (char *buffer, size_t size)
|
||||
{
|
||||
int r = _sys_call2 (SYS_getcwd, (long)buffer, (long)size);
|
||||
if (r >= 0)
|
||||
return buffer;
|
||||
return 0;
|
||||
}
|
||||
|
||||
char *
|
||||
getcwd (char *buffer, size_t size)
|
||||
{
|
||||
static char buf[PATH_MAX];
|
||||
if (buffer)
|
||||
return _getcwd (buffer, size);
|
||||
return _getcwd (buf, PATH_MAX);
|
||||
}
|
|
@ -0,0 +1,25 @@
|
|||
/* -*-comment-start: "//";comment-end:""-*-
|
||||
* GNU Mes --- Maxwell Equations of Software
|
||||
* Copyright © 2018,2019 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
|
||||
*
|
||||
* This file is part of GNU Mes.
|
||||
*
|
||||
* GNU Mes is free software; you can redistribute it and/or modify it
|
||||
* under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; either version 3 of the License, or (at
|
||||
* your option) any later version.
|
||||
*
|
||||
* GNU Mes is distributed in the hope that it will be useful, but
|
||||
* WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with GNU Mes. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
int
|
||||
getdents (int filedes, char *buffer, size_t nbytes)
|
||||
{
|
||||
return _sys_call3 (SYS_getdents, (int)filedes, (long)buffer, (long)nbytes);
|
||||
}
|
|
@ -0,0 +1,25 @@
|
|||
/* -*-comment-start: "//";comment-end:""-*-
|
||||
* GNU Mes --- Maxwell Equations of Software
|
||||
* Copyright © 2018,2019 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
|
||||
*
|
||||
* This file is part of GNU Mes.
|
||||
*
|
||||
* GNU Mes is free software; you can redistribute it and/or modify it
|
||||
* under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; either version 3 of the License, or (at
|
||||
* your option) any later version.
|
||||
*
|
||||
* GNU Mes is distributed in the hope that it will be useful, but
|
||||
* WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with GNU Mes. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
gid_t
|
||||
getegid ()
|
||||
{
|
||||
return _sys_call (SYS_getegid);
|
||||
}
|
|
@ -0,0 +1,25 @@
|
|||
/* -*-comment-start: "//";comment-end:""-*-
|
||||
* GNU Mes --- Maxwell Equations of Software
|
||||
* Copyright © 2018,2019 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
|
||||
*
|
||||
* This file is part of GNU Mes.
|
||||
*
|
||||
* GNU Mes is free software; you can redistribute it and/or modify it
|
||||
* under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; either version 3 of the License, or (at
|
||||
* your option) any later version.
|
||||
*
|
||||
* GNU Mes is distributed in the hope that it will be useful, but
|
||||
* WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with GNU Mes. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
uid_t
|
||||
geteuid ()
|
||||
{
|
||||
return _sys_call (SYS_geteuid);
|
||||
}
|
|
@ -0,0 +1,25 @@
|
|||
/* -*-comment-start: "//";comment-end:""-*-
|
||||
* GNU Mes --- Maxwell Equations of Software
|
||||
* Copyright © 2018,2019 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
|
||||
*
|
||||
* This file is part of GNU Mes.
|
||||
*
|
||||
* GNU Mes is free software; you can redistribute it and/or modify it
|
||||
* under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; either version 3 of the License, or (at
|
||||
* your option) any later version.
|
||||
*
|
||||
* GNU Mes is distributed in the hope that it will be useful, but
|
||||
* WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with GNU Mes. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
gid_t
|
||||
getgid ()
|
||||
{
|
||||
return _sys_call (SYS_getgid);
|
||||
}
|
|
@ -0,0 +1,25 @@
|
|||
/* -*-comment-start: "//";comment-end:""-*-
|
||||
* GNU Mes --- Maxwell Equations of Software
|
||||
* Copyright © 2018,2019 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
|
||||
*
|
||||
* This file is part of GNU Mes.
|
||||
*
|
||||
* GNU Mes is free software; you can redistribute it and/or modify it
|
||||
* under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; either version 3 of the License, or (at
|
||||
* your option) any later version.
|
||||
*
|
||||
* GNU Mes is distributed in the hope that it will be useful, but
|
||||
* WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with GNU Mes. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
pid_t
|
||||
getpid ()
|
||||
{
|
||||
return _sys_call (SYS_getpid);
|
||||
}
|
|
@ -0,0 +1,25 @@
|
|||
/* -*-comment-start: "//";comment-end:""-*-
|
||||
* GNU Mes --- Maxwell Equations of Software
|
||||
* Copyright © 2018,2019 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
|
||||
*
|
||||
* This file is part of GNU Mes.
|
||||
*
|
||||
* GNU Mes is free software; you can redistribute it and/or modify it
|
||||
* under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; either version 3 of the License, or (at
|
||||
* your option) any later version.
|
||||
*
|
||||
* GNU Mes is distributed in the hope that it will be useful, but
|
||||
* WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with GNU Mes. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
pid_t
|
||||
getppid ()
|
||||
{
|
||||
return _sys_call (SYS_getppid);
|
||||
}
|
|
@ -0,0 +1,25 @@
|
|||
/* -*-comment-start: "//";comment-end:""-*-
|
||||
* GNU Mes --- Maxwell Equations of Software
|
||||
* Copyright © 2018,2019 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
|
||||
*
|
||||
* This file is part of GNU Mes.
|
||||
*
|
||||
* GNU Mes is free software; you can redistribute it and/or modify it
|
||||
* under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; either version 3 of the License, or (at
|
||||
* your option) any later version.
|
||||
*
|
||||
* GNU Mes is distributed in the hope that it will be useful, but
|
||||
* WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with GNU Mes. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
int
|
||||
getrusage (int processes, struct rusage *rusage)
|
||||
{
|
||||
return _sys_call2 (SYS_getrusage, (int)processes, (long)rusage);
|
||||
}
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue