Jan Nieuwenhuizen
26e9dd14e3
mlibc: Tinycc support: support, most syscalls stubbed.
...
* mlibc/libc-gcc.c (exit, write)[__TINYC__]: tcc-compatible gcc-style
asm implementation.
(read,open,access,brk,fsync)[__TINYC__]: Stub body.
* mlibc/libc-gcc+tcc.c (close,unlink, lseek, getcwd)[__TINYC__]: Stub
body.
* mlibc/libc-mes+tcc.c: Support tinycc.
* mlibc/include/00-test.i (main) [__TINYC__]: Support tcc.
2017-11-16 22:11:07 +01:00
Jan Nieuwenhuizen
6a16258f78
mlibc: errno.h: declare errno without extern.
...
* mlibc/include/errno.h: drop extern. Fixes tcc compile.
2017-11-11 13:42:42 +01:00
Jan Nieuwenhuizen
6c55f4bd28
bootstrap: Include necessary M1 sources.
...
M1 -f stage0/x86.M1 -f mlibc/crt1.M1 --LittleEndian --Architecture=1 > mlibc/crt1.hex2
M1 -f stage0/x86.M1 -f mlibc/mini-libc-mes.M1 --LittleEndian --Architecture=1 > mlibc/libc-mes.hex2
M1 -f stage0/x86.M1 -f src/mes.M1 --LittleEndian --Architecture=1 > src/mes.hex2
hex2 --LittleEndian --Architecture=1 --BaseAddress=0x1000000 -f stage0/elf32-header.hex2 -f mlibc/crt1.hex2 -f mlibc/libc-mes.hex2 -f src/mes.hex2 -f stage0/elf32-footer-single-main.hex2 > src/mes-mes
exec_enable src/mes-mes
* mlibc/crt1.M1: New File.
* mlibc/libc-mes.M1: New File.
* src/mes.M1: New File.
2017-09-10 21:17:17 +02:00
Jan Nieuwenhuizen
7619190d5c
build: compile crt1.c, libc-mesc.c and <input>.c separately.
...
* mlibc/crt1.c: New file.
* mlibc/libc-mes.c (_start): Remove.
* mlibc/libc-gcc.c (_start): Remove.
* make.scm (LINK.hex2, bin.mescc): Move from guile/guix/make.scm.
* guile/guix/make.scm (LINK.hex2, bin.mescc): Remove.
2017-09-10 16:59:43 +02:00
Jan Nieuwenhuizen
29acdfa2a7
mescc: Tinycc support: refactor _start.
...
* mlibc/libc-mes.c (_start): Refactor.
(_env): Remove.
* stage0/x86.M1:
2017-09-03 08:18:18 +02:00
Jan Nieuwenhuizen
21e9bf833c
mescc: Tinycc support: stdint.h: declare size_t.
...
* mlibc/include/stdint.h (size_t)[!__MES_SIZE_T]: Declare.
2017-08-27 11:29:07 +02:00
Jan Nieuwenhuizen
69073e1954
mescc: Tinycc support: pointer arithmetic with pointer-variable.
...
* module/language/c99/compiler.mes (expr->accu): pointer arithmetic with pointer-variable.
* scaffold/tests/76-pointer-arithmetic.c (test): Test it.
* mlibc/include/stdarg.h (va_start): Update for fixed pointer arithmetic.
2017-08-26 10:16:53 +02:00
Jan Nieuwenhuizen
93714ad0a4
mescc: Tinycc support: strtoull.
...
* mlibc/include/mlibc.h (_atoi): Declare.
* mlibc/include/ctype.h (isxdigit): Declare.
* mlibc/libc-gcc.c (isxdigit, _atoi): New function.
(atoi): Use it.
* mlibc/libc-mes.c (isxdigit, _atoi): New function.
(atoi): Use it.
* scaffold/tests/7j-strtoull.c (test): Test it.
* make.scm (add-scaffold-test): Build it.
2017-08-19 10:51:24 +02:00
Jan Nieuwenhuizen
70e3e83581
mescc: Tinycc support: snprintf.
...
* mlibc/include/stdarg.h (vsprintf): Declare.
* mlibc/libc-gcc.c (vsprintf): New function.
(sprintf): Use it.
* mlibc/libc-mes+tcc.c (snprintf): Implement.
* mlibc/libc-mes.c (vsprintf): New function
(sprintf): Use it.
2017-08-12 17:38:44 +02:00
Jan Nieuwenhuizen
5230ddc93b
mescc: Fix compile warnings.
...
* mlibc/include/stdio.h (fdputs): Declare.
* mlibc/libc-gcc.c (malloc):
(memcpy): Fix compile warning.
2017-08-10 21:00:22 +02:00
Jan Nieuwenhuizen
e616d6120b
mescc: Tinycc support: eputc.
...
* mlibc/include/stdio.h (eputc): Declare.
* mlibc/libc-gcc.c (eputc):
* mlibc/libc-mes.c (eputc): New function.
2017-08-06 13:53:56 +02:00
Jan Nieuwenhuizen
513180eb2c
mescc: Tinycc support: eputs as function for gcc.
...
* mlibc/libc-gcc.c (eputs)[POSIX]: New function.
* mlibc/include/stdio.h (eputs)[POSIX]: Remove define.
2017-08-06 12:16:34 +02:00
Jan Nieuwenhuizen
cb99e3ca6e
mescc: Tinycc support: strcat.
...
* mlibc/libc-mes+tcc.c (strcat): Implement.
2017-08-01 13:26:17 +02:00
Jan Nieuwenhuizen
4fbd16aaac
mescc: Tinycc support: vsnprintf.
...
* module/language/c99/compiler.mes (ast-type->type): Support *p++ in test.
* mlibc/libc-mes+tcc.c (vsnprintf): Implement.
2017-08-01 13:24:23 +02:00
Jan Nieuwenhuizen
c23a9ee01f
mescc: drop naive realloc.
...
* mlibc/libc-gcc.c (free, memcpy): Move from libc-mes+tcc.c.
(realloc): Use realloc from libc-mes+tcc.c
* mlibc/libc-gcc+tcc.c (free, memcpy, realloc): Remove.
* mlibc/libc-mes+tcc.c (free, memcpy, realloc): Remove.
* scaffold/tests/79-int-array.c (test): Update.
* scaffold/tests/7a-struct-char-array.c (test): Update.
2017-08-01 11:08:14 +02:00
Jan Nieuwenhuizen
6b5fcfb814
mescc: Tinycc support: fwrite.
...
* mlibc/libc-mes+tcc.c (fwrite): Implement.
2017-07-30 14:52:35 +02:00
Jan Nieuwenhuizen
63eded82e1
mescc: Tinycc support: fclose.
...
* mlibc/libc-mes+tcc.c (fclose): Implement.
2017-07-30 14:51:59 +02:00
rain1
7c233246d6
mescc: Tinycc support: fgetc.
...
* mlibc/libc-mes.c (fgetc): Implement.
2017-07-30 08:28:19 -04:00
rain1
0957094280
mescc: Tinycc support: fprintf.
...
* mlibc/libc-mes+tcc.c (fprintf): Implement.
2017-07-30 08:28:19 -04:00
Jan Nieuwenhuizen
ec3c031b2f
mescc: Tinycc support: memmove.
...
* mlibc/libc-mes+tcc.c (memmove): Implement.
2017-07-30 13:59:06 +02:00
Jan Nieuwenhuizen
af8335dc7a
mescc: Tinycc support: strrchr.
...
* mlibc/libc-mes+tcc.c (strrchr): Implement.
2017-07-30 13:09:19 +02:00
Jan Nieuwenhuizen
8991e927c3
mescc: Tinycc support: strchr.
...
* mlibc/libc-mes+tcc.c (strchr): Implement.
2017-07-30 12:55:58 +02:00
Jan Nieuwenhuizen
18cb982687
mescc: Tinycc support: noisy stubs.
...
* mlibc/libc-mes+tcc.c: Noisy stubs.
2017-07-27 18:53:44 +02:00
Jan Nieuwenhuizen
f29479dfa2
mescc: Tinycc support: memcmp.
...
* mlibc/libc-mes+tcc.c (memcmp): Implement.
2017-07-29 11:09:00 +02:00
Jan Nieuwenhuizen
ce980c8239
mescc: Tinycc support: compile tcc with TCC_IS_NATIVE.
...
* mlibc/include/string.h (strcat): Declare.
* mlibc/libc-mes+tcc.c (dlclose, dlopen, mprotect, sigaction,
sigemptyset, strcat, vfprintf): Move from libc-gcc+tcc.c.
* mlibc/libc-gcc+tcc.c: Remove them.
* module/language/c99/compiler.mes (c99-input->full-ast): Define __i386__=1.
(i386:type-alist): Parse `long long int', `unsigned short int',
`unsigned long long int'.
(struct-field): Support void**.
(init-declr->name):
(init-declr->pointer): Support function declaration.
2017-07-28 08:07:41 +02:00
Jan Nieuwenhuizen
397d7a6c43
mlibc: Tinycc support: gcc -nostdinc -nostdlib.
...
* mlibc/libc-gcc+tcc.c: New file.
* mlibc/include/dlfcn.h:
* mlibc/include/errno.h:
* mlibc/include/signal.h:
* mlibc/include/sys/mman.h:
* mlibc/include/sys/time.h: Add tcc declarations.
2017-07-27 23:44:22 +02:00
Jan Nieuwenhuizen
ab74876131
mescc: Tinycc support: malloc,memcpy.
...
* mlibc/libc-mes.c (malloc): Rewrite.
* mlibc/libc-mes+tcc.c (memcpy): Implement.
2017-07-27 18:51:58 +02:00
Jan Nieuwenhuizen
08ba0fce55
mescc: Tinycc support: memset.
...
* mlibc/libc-mes+tcc.c (memset): Implement.
2017-07-27 09:08:11 +02:00
Jan Nieuwenhuizen
913fd66e5b
mescc: Tinycc support: oops, use new realloc.
...
* mlibc/libc-mes.c (realloc): Disable naive realloc for libc-mes+tcc.c.
2017-07-27 00:13:39 +02:00
Jan Nieuwenhuizen
62e7809725
mescc: Tinycc support: calloc,malloc,realloc.
...
* mlibc/libc-mes+tcc.c (calloc,malloc,realloc): New function.
2017-07-26 11:36:45 +02:00
Jan Nieuwenhuizen
7e795763f3
mescc: Tinycc support: bugfix for char **pp = *p.
...
* module/language/c99/compiler.mes (ptr-declr->pointer): Grok ***.
(decl->info): Bugfix for char **pp = *p, cleanup.
* mlibc/libc-mes.c (getenv): Update for bugfix.
* scaffold/tests/23-pointer.c (test): Test it.
2017-07-26 11:36:45 +02:00
Jan Nieuwenhuizen
91f9817a44
mescc: Tinycc support: execvp stub.
...
* mlibc/include/unistd.h (execvp): Declare.
* mlibc/libc-mes+tcc.c (execvp): Add stub.
2017-07-26 11:36:45 +02:00
Jan Nieuwenhuizen
8296c8ec2c
mescc: Tinycc support: remove stub.
...
* mlibc/include/stdio.h (remove): Declare.
* mlibc/libc-mes+tcc.c (remove): Add stub.
2017-07-26 11:36:45 +02:00
Jan Nieuwenhuizen
2914b74aa4
mescc: Tinycc support: fread stub.
...
* mlibc/include/stdio.h (fread): Declare.
* mlibc/libc-mes+tcc.c (fread): Add stub.
2017-07-26 11:36:45 +02:00
Jan Nieuwenhuizen
47f0ce1d5c
mescc: Tinycc support: ftell stub.
...
* mlibc/include/stdio.h (ftell): Declare.
* mlibc/libc-mes+tcc.c (ftell): Add stub.
2017-07-26 11:36:45 +02:00
Jan Nieuwenhuizen
019994b8ed
mescc: Tinycc support: fseek stub.
...
* mlibc/include/stdio.h (fseek): Declare.
* mlibc/libc-mes+tcc.c (fseek): Add stub.
2017-07-26 11:36:45 +02:00
Jan Nieuwenhuizen
76e97a9b08
mescc: Tinycc support: fopen stub.
...
* mlibc/include/stdio.h (fopen): Declare.
* mlibc/libc-mes+tcc.c (fopen): Add stub.
2017-07-26 11:36:45 +02:00
Jan Nieuwenhuizen
fd63f744f7
mescc: Tinycc support: strstr stub.
...
* mlibc/include/string.h (strstr): Declare.
* mlibc/libc-mes+tcc.c (strstr): Add stub.
2017-07-26 11:36:45 +02:00
Jan Nieuwenhuizen
d4e9659d19
mescc: Tinycc support: sscanf stub.
...
* mlibc/include/stdio.h (sscanf): Declare.
* mlibc/libc-mes+tcc.c (sscanf): Add stub.
2017-07-26 11:36:45 +02:00
Jan Nieuwenhuizen
cd5536b283
mescc: Tinycc support: longjmp, setjump stub.
...
* mlibc/include/stdarg.h (longjmp, setjmp): Declare.
* mlibc/libc-mes+tcc.c (longjmp, setjmp): Add stub.
2017-07-26 11:36:45 +02:00
Jan Nieuwenhuizen
f711b2f005
mescc: Tinycc support: fflush stub.
...
* mlibc/include/stdio.h (fflush): Declare.
* mlibc/libc-mes+tcc.c (fflush): Add stub.
2017-07-26 11:36:45 +02:00
Jan Nieuwenhuizen
ff16c5a31f
mescc: Tinycc support: vnsprintf stub.
...
* mlibc/include/stdarg.h (vnsprintf): Declare.
* mlibc/libc-mes+tcc.c (vnsprintf): Add stub.
2017-07-26 11:36:45 +02:00
Jan Nieuwenhuizen
8f2c74c1cb
mescc: Tinycc support: free stub.
...
* mlibc/include/stdlib.h (free): Declare.
* mlibc/libc-mes+tcc.c (free): Add stub.
2017-07-26 11:36:45 +02:00
Jan Nieuwenhuizen
60de51241a
mescc: Tinycc support: strrchr stub.
...
* mlibc/include/string.h (strrchr): Declare.
* mlibc/libc-mes+tcc.c (strrchr): Add stub.
2017-07-26 11:36:45 +02:00
Jan Nieuwenhuizen
9f44c4875a
mescc: Tinycc support: strtoll stub.
...
* mlibc/include/stdlib.h (strtoll): Declare.
* mlibc/libc-mes+tcc.c (strtoll): Add stub.
2017-07-26 11:36:45 +02:00
Jan Nieuwenhuizen
ec335eef50
mescc: Tinycc support: strtoull stub.
...
* mlibc/include/stdlib.h (strtoull): Declare.
* mlibc/libc-mes+tcc.c (strtoull): Add stub.
2017-07-26 11:36:45 +02:00
Jan Nieuwenhuizen
c749bb5aa3
mescc: Tinycc support: strtol stub.
...
* mlibc/include/stdlib.h (strtol): Declare.
* mlibc/libc-mes+tcc.c (strtol): Add stub.
2017-07-26 11:36:45 +02:00
Jan Nieuwenhuizen
9f60904d1c
mescc: Tinycc support: lseek.
...
* mlibc/include/unistd.h (lseek): Declare.
* stage0/x86.M1 (SYS_lseek): New define.
* mlibc/libc-mes+tcc.c (lseek): New function.
2017-07-26 11:36:45 +02:00
Jan Nieuwenhuizen
a8f22ea993
mescc: Tinycc support: fclose stub.
...
* mlibc/include/stdio.h (fclose): Declare.
* mlibc/libc-mes+tcc.c (fclose): Add stub.
2017-07-26 11:36:45 +02:00
Jan Nieuwenhuizen
b479d200b3
mescc: Tinycc support: fdopen stub.
...
* mlibc/include/stdio.h (fdopen): Declare.
* mlibc/libc-mes+tcc.c (fdopen): Add stub.
2017-07-26 11:36:45 +02:00