Jan Nieuwenhuizen
c0af8a1452
doc: Release update.
...
* BOOTSTRAP: Update.
* HACKING: Update.
* INSTALL: Update.
* NEWS: Update.
* README: Update.
* scaffold/tests/23-pointer.c: Add (janneke) to copyright line.
* doc/images/gcc-mesboot-graph.png: Update.
* doc/mes.texi (The Mes Bootstrap Process): Describe update.
2018-07-12 22:30:01 +02:00
Jan Nieuwenhuizen
4003e3b721
build: setup-mes.sh: Cater for Debian/stretch too. Thanks, pdewacht!
...
* build-aux/setup-mes.sh: Cater for Debian/stretch too. Thanks,
pdewacht!
2018-07-12 22:30:00 +02:00
Jan Nieuwenhuizen
f6d5578174
core: Fix segfault on Debian/strectch. Thanks, pdewacht!
...
* src/posix.c (execl_): Typo in initialization. Fixes segfault on
Debian/strectch. Thanks, pdewacht!
2018-07-12 22:30:00 +02:00
Jan Nieuwenhuizen
7f6676a4c2
doc: Add html, pdf.
...
* GNUmakefile (html, pdf): New target.
* .gitignore: Ignore html, pdf targets.
2018-07-12 22:30:00 +02:00
Jan Nieuwenhuizen
a4943c1db1
doc: Remarks from Rutger.
...
* doc/mes.texi: Remarks from Rutger.
2018-07-12 22:30:00 +02:00
Jan Nieuwenhuizen
9ad4c789d7
doc: Further work.
...
* doc/images/gcc-mesboot-graph.png: New file.
* install.sh: Install it.
* doc/mes.texi (The Mes Bootstrap Process): Show it.
(Bootstrapping): Add missing Mes direntry.
(Running the Test Suites): Fix example.
Fix typos.
2018-07-12 22:30:00 +02:00
Jan Nieuwenhuizen
c5bf550fff
build: Handle CFLAGS, CPPFLAGS for Debian.
2018-07-12 22:30:00 +02:00
Jan Nieuwenhuizen
c997abcae8
build: Have configure create a git archive.
...
* configure: Create git archive if necessary.
2018-07-12 22:30:00 +02:00
Jan Nieuwenhuizen
ec7d9f5d57
build: Use GNU style lower case directory configure variable naming.
...
* GNUmakefile: Use GNU style lower case directory configure variable naming.
* HACKING: Likewise.
* INSTALL: Likewise.
* build-aux/build-cc.sh: Likewise.
* build-aux/build-cc32.sh: Likewise.
* build-aux/cc-mes.sh: Likewise.
* build-aux/cc.sh: Likewise.
* build-aux/cc32-mes.sh: Likewise.
* build-aux/export.make: Likewise.
* build-aux/setup-mes.sh: Likewise.
* build.sh: Likewise.
* check.sh: Likewise.
* configure: Likewise.
* doc/mes.texi: Likewise.
* install.sh: Likewise.
* scripts/mescc: Likewise.
2018-07-12 22:29:59 +02:00
Jan Nieuwenhuizen
69813a6da3
build: Support Debian build, install.
...
* scripts/mescc: Support Debian build, install.
* lib/libmes.c (fdgetc): Allow Nyacc/ungetc conflict.
* build-aux/export.make (ARCH): Export.
* build-aux/build-mes.sh: Disable full build for non-bootstrap
x86-only.
* check.sh (total): Use bash to invoke build-aux/check-mescc.sh.
* build-aux/build-guile.sh (SCM_FILES): Support guile-2.0.
* module/mes/guile.scm (guile-2.0): Support guile-2.0.
* build-aux/build-mes.sh: Use bash.
* build-aux/setup-mes.sh: New file.
2018-07-12 22:29:59 +02:00
Jan Nieuwenhuizen
a25653e7f1
mescc: Be sure to exit upon system* failure.
...
* module/mescc/mescc.scm (assert-system*): New function.
(M1->hex2, hex2->elf, M1->blood-elf): Use it.
2018-07-12 22:29:59 +02:00
Jan Nieuwenhuizen
b4fa5609fe
build: Support $DESTDIR.
...
* build-aux/export.make: export DESTDIR.
* install.sh: Support $DESTDIR.
2018-07-12 22:29:59 +02:00
Jan Nieuwenhuizen
72e147f53f
build: Build and install manual pages.
...
* build-aux/export.make: New file.
* GNUmakefile (man): New target.
(doc): Depend on man.
include build-aux/export.make, remove exports.
* guix.scm (mes): Add dependency on help2man.
* configure: Check for help2man.
* install.sh: Install manual pages if built.
2018-07-12 22:29:59 +02:00
Jan Nieuwenhuizen
a4770c1eed
doc: Initial version.
...
* doc/mes.texi: New file.
* doc/fdl-1.3.texi: New file.
* AUTHORS: Mention it.
* GNUmakefile (doc, info, install-info): New targets.
* install.sh: Install info if available.
* guix: (mes): Add texinfo to native-inputs.
* configure: Check for makeinfo.
2018-07-12 22:29:59 +02:00
Jan Nieuwenhuizen
803ab706f8
guix: mescc-tools: Update to 0.5.1.
...
* guix.scm (mescc-tools): Update to 0.5.1.
2018-06-26 23:47:17 +02:00
Jan Nieuwenhuizen
e5cd1cb816
guix: Oops, fix nyacc-for-mes checksum. Thanks, pdewacht!
...
* guix.scm (nyacc-for-mes): Fix checksum.
2018-06-26 23:47:16 +02:00
Jan Nieuwenhuizen
96e6dd59d6
guix: Update mes to 0.16.
...
* guix.scm (mes): Update to 0.16.
(mes.git): Likewise.
2018-06-26 20:05:16 +02:00
Jan Nieuwenhuizen
f9a4e21972
Release 0.16.
...
* configure (VERSION): Bump to 0.16.
2018-06-25 19:27:19 +02:00
Jan Nieuwenhuizen
73be085f3a
doc: Release update.
...
* BOOTSTRAP: Update.
* HACKING: Update.
* INSTALL: Update.
* NEWS: Update.
* README: Update.
* doc/ANNOUNCE-0.16: New file.
2018-06-24 13:13:13 +02:00
Jan Nieuwenhuizen
16f4adfbc2
core: Fix compile warnings.
...
* lib/libmes.c: Fix warning.
* src/posix.c (execl_): Fix warning, add debug printing.
2018-06-26 06:19:51 +02:00
Jan Nieuwenhuizen
7be16f51b3
core: execl_: Allow 1000 arguments.
...
* src/posix.c (execl_): Allow 1000 arguments.
2018-06-26 06:05:20 +02:00
Jan Nieuwenhuizen
50d7036e03
mescc: Support binutils 2.10.1: strrchr: Stop at start of string.
...
* lib/libc+tcc.c (strrchr): Stop at start of string.
* scaffold/tests/88-strrchr.c: Test it.
* build-aux/check-mescc.sh (tests): Run it.
2018-06-24 17:25:46 +02:00
Jan Nieuwenhuizen
350d94aa77
build: Support tcc, create tinycc-seed with tcc.
...
* configure: check for tcc.
* build-aux/cc32-mes.sh: Rename from cc-mes-gcc.sh. Support
tcc. Update users.
* build-aux/build-cc32-mes.sh: Rename from build-mes-gcc.sh. Update users.
* GNUmakefile (mes-tcc): New target.
* .gitignore: Ignore mes-tcc arch output.
* lib/crt1.c (_start): Add "rm" constraint so satisfy tcc.
* lib/linux-gcc.c (_sys_call, _sys_call1 _sys_call2 _sys_call3): Likewise.
2018-06-24 09:28:23 +02:00
Jan Nieuwenhuizen
c2ff5ec954
mescc: Support glibc-2.2.5: header tweaks.
...
* include/sys/types.h [__PTRDIFF_T]: Extra guard for ptrdiff_t.
[__SIZE_T]: Extra guard for size_t.
* include/stdlib.h: Include alloca; remove alloca prototype,
* include/errno.h: Add E2BIG.
2018-06-21 00:27:27 +02:00
Jan Nieuwenhuizen
41a6585295
mescc: Support binutils 2.20.1: vfprint, vsprintf: %llx.
...
* lib/libc+tcc.c (vfprintf, vsprintf): Handle %%llx. Print error:
should we skip another int, va_arg a long long?
2018-06-24 17:26:53 +02:00
Jan Nieuwenhuizen
2551eef953
mescc: Support binutils 2.14: vfprint, vsprintf: %12.10d.
...
* lib/libc+tcc.c (vfprintf, vsprintf): Handle %12.10d.
* scaffold/tests/70-printf.c: Test it.
2018-06-21 00:27:49 +02:00
Jan Nieuwenhuizen
f245237f83
mescc: Support gnu toolchain: libtcc1.
...
* lib/libtcc1.c: New file.
* lib/libc+tcc-gcc.c: Remove libtcc1 stubs.
2018-06-19 20:29:25 +02:00
Jan Nieuwenhuizen
98a8f3f23e
mescc: Support binutils-2.20.1a: header tweaks.
...
* include/signal.h: Include sys/types.h; remove type declaration copies.
* include/stdarg.h: Likewise.
* include/stdio.h: Likewise.
* include/stdlib.h: Likewise.
* include/unistd.h: Likewise.
2018-06-19 20:23:38 +02:00
Jan Nieuwenhuizen
63bf9bb2f7
mescc: Support Tinycc 0.9.27: Drop dlclose, dlopen.
...
* lib/libc+tcc.c (dlclose, dlopen): Remove.
* include/dlfcn.h (RTLD_DEFAULT): Add.
2018-06-18 22:56:06 +02:00
Jan Nieuwenhuizen
a1334148ca
core: Resurrect dump-tiny.
...
* src/reader.c (dump): Resurrect dump-tiny.
2018-06-18 22:55:23 +02:00
Jan Nieuwenhuizen
8793e0dde3
core: Resurrect loading of boot-0.32-mo.
2018-06-18 18:55:59 +02:00
Jan Nieuwenhuizen
22a22c1de8
mescc: Support binutils 2.25: fseek: Add debug printing.
...
* lib/libc+tcc.c (fseek): Add debug printing.
2018-06-17 14:17:39 +02:00
Jan Nieuwenhuizen
2062826435
mescc: Tinycc support: bcopy: Do not return void.
...
* lib/m4.c (bcopy): Do not return void. Helps tcc.
2018-06-17 14:16:05 +02:00
Jan Nieuwenhuizen
c6ae0f41a3
mescc: Support binutils 2.25: memcmp: Support size 0.
...
* lib/libc+tcc.c (memcmp): Support size 0.
2018-06-17 10:18:59 +02:00
Jan Nieuwenhuizen
0639e3faf1
mescc: Support binutils 2.25: vsscanf: Skip `l'.
...
* lib/libc+tcc.c (vsscanf): Skip `l'.
2018-06-17 09:26:34 +02:00
Jan Nieuwenhuizen
49bcea84fd
mescc: Debugging oops.
...
* lib/libc.c (__mes_debug): Oops, wrong direction.
2018-06-17 08:39:31 +02:00
Jan Nieuwenhuizen
a9215931e8
mescc: Support binutils 2.15a: fread: read ungetc'd chars too.
...
* lib/libmes.c (_ungetc_fd): New variable.
(fdgetc): Use it.
(_fdungetc_p): New function.
* lib/libc+tcc.c (_fungetc_p): New function.
* lib/libc+tcc.c (fread): Use it to read ungetc'd chars too.
2018-06-16 20:51:16 +02:00
Jan Nieuwenhuizen
7a42e5e6b0
mescc: Add another fopen test.
...
* scaffold/tests/98-fopen.c: New file.
* build-aux/check-mescc.sh (tests): Add it.
* AUTHORS: Mention it.
2018-06-16 16:12:51 +02:00
Jan Nieuwenhuizen
584482fb79
mescc: Add fopen test.
...
* scaffold/tests/97-fopen.c: New file.
* build-aux/check-mescc.sh (tests): Run it.
* include/unistd.h (link): Declare.
2018-06-16 15:18:27 +02:00
Jan Nieuwenhuizen
65d530f4ec
mescc: Support binutils-2.14: fopen: Return 0 upon failure.
...
* lib/libc+tcc.c (fopen): Return 0 upon failure.
2018-06-16 10:54:59 +02:00
Jan Nieuwenhuizen
125b43acc8
mescc: Update elf32-header for linux-4.17.
...
Previously, our binaries showed this
$ readelf -s scaffold/main.mes-out
There are 2 program headers, starting at offset 64
Program Headers:
Type Offset VirtAddr PhysAddr FileSiz MemSiz Flg Align
LOAD 0x000000 0x01000000 0x01000000 0x0557c 0x0557c RWE 0x1
LOAD 0x000000 0x01000000 0x01000000 0x0557c 0x0557c RWE 0x1
Section to Segment mapping:
Segment Sections...
00 .text .data
01 .text .data
Linux-4.17 refuses to run this and says
Uhuuh, elf segment at 0000000001000000 requested but the memory is mapped already
Segmentation fault
* lib/x86-mes/elf32-header.hex2: Remove unused data program header.
2018-06-16 08:32:12 +02:00
Jan Nieuwenhuizen
d8e6046453
build: make seed: Update mescc-tools-seed too.
2018-06-16 06:37:20 +02:00
Jan Nieuwenhuizen
4d90fb1475
guix: mescc-tools: Update to 0.5.
...
* guix.scm (mescc-tools): Update to 0.5.
2018-06-16 09:44:42 +02:00
Jan Nieuwenhuizen
a27770389e
Update for mescc-tools-0.5.
...
* build-aux/build-mes.sh (HEX2FLAGS): Remove = from flags.
* build.sh (HEX2FLAGS): Likewise.
* module/mescc/mescc.scm (hex2->elf): Likewise.
2018-06-16 06:38:05 +02:00
Jan Nieuwenhuizen
ebe6a1ea81
guix: Update mes to 0.15.
...
* guix.scm (mes): Update to 0.15.
(mes.git): Likewise.
2018-06-11 19:13:12 +02:00
Jan Nieuwenhuizen
1b80c8a76f
Release 0.15.
...
* configure (VERSION): Bump to 0.15.
2018-06-10 21:10:54 +02:00
Jan Nieuwenhuizen
25651c6d51
doc: Release udpate.
...
* BOOTSTRAP: Update.
* HACKING: Update.
* NEWS: Update.
* README: Update.
* doc/ANNOUNCE-0.15: New file.
2018-05-23 22:48:00 +02:00
Jan Nieuwenhuizen
b6b93f9f19
build: Resurrect non-bootstrap build.
...
* configure (parse-opts): Support mixing VAR=VALUE --prefix=PREFIX.
* guix.scm (mes): Remove setting PREFIX in make-flags.
* install.sh: Cater for Guix's setting read-only of scripts/diff.scm.
2018-06-12 07:05:33 +02:00
Jan Nieuwenhuizen
c086f67cec
mescc: Support less-patched tcc/gcc: Add crti and crtn.
...
* lib/crt0.c[__MESC__]: Support MesCC.
* lib/crti.c: New file.
* lib/crtn.c: New file.
* build-aux/build-mes-gcc.sh: Build them.
2018-06-10 16:03:18 +02:00
Jan Nieuwenhuizen
c2c3554884
mescc: Refactor debug and stub printing.
...
* lib/libc.c (__mes_debug): New function. Use it for debug printing
and in stubs throughout.
2018-06-10 14:07:19 +02:00