Commit Graph

2296 Commits

Author SHA1 Message Date
Jan (janneke) Nieuwenhuizen 23756746da
squash! vfprintf 2022-10-24 22:44:32 +02:00
Jan (janneke) Nieuwenhuizen 56a3dd8486
squash! vsnprintf 2022-10-24 19:56:23 +02:00
Jan (janneke) Nieuwenhuizen 28f115713c
squash! vfprintf 2022-10-24 19:56:07 +02:00
Jan (janneke) Nieuwenhuizen 96ced05f24
doc: Update `HACKING'.
* HACKING (SETUP): Update arm triplet.
2022-10-16 23:19:36 +02:00
Danny Milosavljevic 051295694f
lib: vfscanf: Add missing #include.
* lib/stdio/vfscanf.c: Add missing #include.
2019-03-15 00:41:34 +01:00
Jan Nieuwenhuizen e73fe3f773
build: Improve --with-system-libc support.
* lib/stub/asctime.c: Add missing mes/lib.h, errno.h include.
2019-03-12 18:05:58 +01:00
Jan Nieuwenhuizen 33c7557f5b
lib: vsscanf: Support gcc-4.6.4: Support *, [, s.
* lib/stdio/vsscanf.c (vsscanf): Support  *, [, s.
* lib/stdio/vfscanf.c (vfscanf): Likewise.
* lib/tests/stdio/90-sscanf.c: Test it.
* build-aux/check-mescc.sh (tests): Run it.
* lib/x86-mes/x86.M1 (mov____%al,0x32(%ebp): New macro.
2019-02-09 21:42:17 +01:00
Jan Nieuwenhuizen c9c8bb6d28
lib: Support gcc-4.6.4: Avoid type/size_t conflicts.
* include/stdint.h: Remove typedefs, include sys/types.h.
2019-02-09 07:44:18 +01:00
Jan Nieuwenhuizen 740696a676
lib: Support gcc-4.6.4: Add strtok.
* include/string.h (strtok): Declare.
* lib/string/strtok.c (strtok): New file.
* lib/libc+gnu.c: Include it.
2019-02-08 14:28:13 +01:00
Jan (janneke) Nieuwenhuizen 7a9fc10c33
lib/tests: Add 90-mmap.c.
* lib/tests/posix/90-mmap.c: New test.
* build-aux/check-mescc.sh (gnu_tests): Add it.
2022-10-16 23:17:14 +02:00
Jan Nieuwenhuizen 383dca6e0f
lib: Support gcc-4.6.4: Add mmap, munmap.
* include/linux/x86/syscall.h (SYS_mmap, SYS_munmap): New defines.
* include/linux/x86_64/syscall.h (SYS_mmap, SYS_munmap): New defines.
* include/linux/arm/syscall (SYS_mmap, SYS_munmap): New defines..
* include/sys/mman.h (MAP_SHARED, MAP_PRIVATE, MAP_ANONYMOUS,
MAP_POPULATE, MAP_ANON, MAP_FAILED): New macro.
(mmap, munmap): Declare.
* lib/linux/x86-mes-gcc/mes.c (_sys_call6): New function.
* lib/linux/x86-mes/mes.c (__sys_call6): New function.
(_sys_call6): New function.
* lib/linux/x86_64-mes-gcc/mes.c (_sys_call6): New function.
* lib/linux/x86_64-mes/mes.c (__sys_call): Cater for 6 syscall parameters.
(_sys_call6): New function.
* lib/x86-mes/x86.M1 (pop____%ebp): New macro.
* lib/x86_64-mes/x86_64.M1 (mov____0x8(%rbp),%r9): New macro.
* lib/linux/arm-mes-gcc/syscall.c (_sys_call6, __sys_call6): Enable.
* lib/linux/mmap.c: New file.
* lib/linux/munmap.c: New file.
* build-aux/configure-lib.sh (libc_gnu_SOURCES): Add them.
2019-02-08 16:51:37 +01:00
Jan Nieuwenhuizen 57f840ce7d
lib: Support gcc-4.6.4: Add labs.
* lib/math/labs.c: New file.
* include/math.h (labs): Declare.
* build-aux/configure-lib.sh (libc_gnu_SOURCES): Add it.
2019-02-08 13:59:02 +01:00
Jan Nieuwenhuizen 67de149a16
lib: Support gcc-4.6.4: Implement rewind.
* lib/stdio/rewind.c: Move from ../stub.  Implement.
* include/stdio.h (rewind): Declare.
* build-aux/configure-lib.sh (libc_gnu_SOURCES): Update include.
* lib/stub/rewind.c: Remove.
2019-02-08 13:56:25 +01:00
Jan Nieuwenhuizen f03a3ed114
lib: Support gcc-4.6.4: Add asctime stub.
* lib/stub/asctime.c: New file.
* lib/libc+gnu.c: Include it.
* include/time.h (asctime): Declare.
2019-02-08 13:51:09 +01:00
Jan Nieuwenhuizen a4e99c83fe
lib: vfprintf, vsnprintf: Support gcc-4.6.4: #-type.
* lib/stdio/vfprintf.c (vfprintf): Support #-type prefix.  Show whole
format upon error.
* lib/stdio/vsnprintf.c (vsnprintf): Likewise.
* lib/stdio/vfscanf.c (vfscanf): Show whole template upon error.
* lib/stdio/vsscanf.c (vsscanf): Likewise.
2019-02-08 13:45:44 +01:00
Jan Nieuwenhuizen 7799f3688e
lib: atexit: Support gcc-4.6.4: return 0.
* lib/stdlib/atexit.c (atexit): return 0.
2019-02-08 13:29:30 +01:00
Jan Nieuwenhuizen fc50c1be58
lib: Support gcc-4.6.4: Add SSIZE_MAX macro.
* include/stdint.h (SSIZE_MAX): New macro.
2019-02-07 21:18:06 +01:00
Jan Nieuwenhuizen c7e08071ee
lib: Support gcc-4.6.4: Add float macros.
* include/float.h (DBL_EPSILON, DBL_MANT_DIG, DBL_MAX, DBL_MIN,
FLT_RADIX, LDBL_EPSILON, LDBL_MANT_DIG, LDBL_MAX, LDBL_MIN): New
macro.
2019-02-01 09:29:49 +01:00
Jan Nieuwenhuizen d55a7d946b
lib: Support gcc-4.6.4: Add stdint [U]SHRT macros.
* include/stdint.h (SHRT_MAX, SHRT_MIN, USHRT_MAX, USHRT_MIN): New
macro.
2019-02-01 09:29:39 +01:00
Jan Nieuwenhuizen 223606b2ca
lib: Support gcc-4.6.4: Fix uintptr_t, add [u]intmax_t.
* include/stdint.h: Fix uintptr_t, add [u]intmax_t.
2019-01-16 13:21:36 +01:00
Jan (janneke) Nieuwenhuizen c2e41ff647
mescc: Fix Guile warnings.
* module/mescc/mescc.scm (GUILE-with-output-to-file): Remove.n
(with-output-to-file): Rename to...
(with-output-to-file*): ...this.
(mescc:preprocess, mescc:compile, infos->hex2): Update callers.
2022-10-19 10:01:48 +02:00
Jan (janneke) Nieuwenhuizen 75fde18d24
core: Move M2_PTR_SIZE, M2_CELL_SIZE to include file.
* lib/posix/getenv.c (M2_PTR_SIZE),
lib/posix/setenv.c (M2_PTR_SIZE): Move definition...
* include/mes/lib-mini.h (M2_PTR_SIZE): ...here.
* src/gc.c (M2_CELL_SIZE),
src/symbol.c (M2_CELL_SIZE),
src/test/gc.c (M2_CELL_SIZE),
src/vector.c (M2_CELL_SIZE): Move definition...
* include/mes/mes.h (M2_CELL_SIZE): ...here.
2022-05-07 10:50:06 +02:00
Jan (janneke) Nieuwenhuizen 3ee3a94525
scaffold: Remove obsolete malloc.
* scaffold/lib/stdlib/malloc.c: Remove.
2022-05-07 08:45:06 +02:00
Jan (janneke) Nieuwenhuizen cc33dd95c3
time.c: include sys/time for gettimeofday.
* lib/linux/time.c: Include <sys/time.h>.
2022-05-05 23:26:46 +02:00
Jan (janneke) Nieuwenhuizen 770ae64ccc
linux/read.c remove extra mes.h include. 2022-05-05 23:26:28 +02:00
Jan (janneke) Nieuwenhuizen 9af39b008e
lib: linux: Add wait4.
* lib/linux/waitpid.c (waitpid): Factor-out wait4 call to...
* lib/linux/wait4.c: ...new file here.
* include/sys/wait.h (wait4): Add prototype.  Include sys/resource.h.
* include/sys/resource.h (struct rusage): Remove gratuitous "int" for
M2-Planet.
* build-aux/configure-lib.sh (libc_SOURCES): Add it.
* kaem.run,
simple.make (M2_SOURCES),
simple.sh: Likewise.  Also add resource.h.
2022-05-04 15:56:07 +02:00
Jan (janneke) Nieuwenhuizen 9c7e1550a1
lib: linux/time: Remove SYS_time specialization.
* lib/linux/time.c (time)[SYS_time]: Remove specialization.
[!SYS_time && !SYS_gettimeofday]: Remove fallback.
2022-05-04 14:14:51 +02:00
Jan (janneke) Nieuwenhuizen a2f0f44a96
kaem: Add kaem.arm and kaem.x86.
* kaem.arm,
kaem.x86: New files.
2022-05-03 23:35:41 +02:00
Jan (janneke) Nieuwenhuizen 950314486b
kaem.run: Remove --bootstrap-mode.
* include/linux/arm/syscall.h,
include/linux/x86/syscall.h,
include/mes/constants.h: Remove CONSTANTs.
* include/sys/types.h (EOF): Change to 0xffffffff,
reps. 0xffffffffffffffff for M2-Planet.
* lib/m2/open.c: Move to...
* lib/linux/open.c: ...here.  Update to make gcc-compatible.
* scaffold/argv.kaem: Update accordingly.
* lib/linux/lseek.c (_leek, lseek): Suport M2-Planet.
* lib/linux/_open3.c (_open3): Fix cast.
* lib/linux/waitpid.c (waitpid): Suport M2-Planet.
* lib/m2/getcwd.c (PATH_MAX): Remove CONSTANT.
* lib/m2/isatty.c (TCGETS): Remove CONSTANT.
* lib/mes/ntoab.c: Support M2-Planet.
* lib/posix/getcwd.c (__getcwd_buf): Remove.
* lib/posix/getenv.c (M2_PTR_SIZE)[__M2__]: Update to #define.
* lib/posix/setenv.c: Likewise.
* lib/stub/__raise.c (SIGABRT): Remove CONSTANT.
* src/core.c (error): Use __M2__ instead of __M2_PLANET__.
* src/gc.c (M2_CELL_SIZE)[__M2__]: Update to #define.  Support
non-bootstrap-mode.
* src/posix.c: Likewise.
* src/symbol.c: Likewise.
* src/vector.c: Likewise.
* kaem.run: Remove --botstrap-mode.  Update source list accordingly.
* simple.make (M2_PLANET_FLAGS): Remove --bootstrap-mode.
* simple.make (M2_SOURCES, M2_PLANET_INCLUDES): Update source list
accordingly.
2022-05-03 14:45:55 +02:00
Jan (janneke) Nieuwenhuizen d92143cb0a
lib: posix/open: Support M2-Planet.
* lib/posix/open.c (open)[__M2__]: New function.
2022-05-03 18:05:38 +02:00
Jan (janneke) Nieuwenhuizen 7641a5a8a7
lib: linux/_open3: Support M2-Planet.
* lib/linux/_open3.c (_open3): Use function casting.  Also call
__ungetc_init.
* lib/stub/__buffered_read.c: New file.
2022-05-03 18:03:49 +02:00
Jan (janneke) Nieuwenhuizen 9f4d81eec4
kaem: read: Remove --bootstrap-mode.
* include/mes/lib.h[__M2__](__call_at_exit,abtod,dtoab,ultoa,
* include/sys/types.h[__M2__]: Fall back to unsigned instead of using
unsigned long.
* include/stdio.h[__M2__](fprintf, fscanf, printf, snprintf, sprintf,
sscanf): Hide prototypes.
* lib/stdlib/exit.c (exit)[__M2__]: Hide call to __call_at_exit.
* lib/linux/read.c (read)[__M2__]: Hide debugging.
* lib/linux/malloc.c (malloc)[__M2__]: Hide alignment.
__mesabi_umod, __mesabi_udiv, __mesabi_uldiv): Hide prototypes.
* scaffold/argv.kaem: Use them together with lib/mes/lib-mini.h instead of
lib/mes/* specializations.  Remove --bootstrap-mode from M2-Planet call.
2022-05-03 12:54:22 +02:00
Jan (janneke) Nieuwenhuizen 276d895b1e
kaem: argv: Remove --bootstrap-mode.
* scaffold/argv.kaem: Use lib/mes/lib-mini.h instead of lib/m2/lib.h.
Remove --bootstrap-mode from M2-Planet call.
2022-05-03 12:53:35 +02:00
Jan (janneke) Nieuwenhuizen 12480dfe0c
kaem: hello: Remove --bootstrap-mode.
* include/mes/lib-mini.h: Remove M2 bootstrap constants.
[__M2__](size_t): Fall-back to unsigned instead of unsigned long.
* scaffold/hello.kaem: Use it instead of lib/m2/lib.h.  Remove
--bootstrap-mode from M2-Planet call.
2022-05-03 12:44:00 +02:00
Jan (janneke) Nieuwenhuizen 34352f53c2
kaem: main: Remove --bootstrap-mode.
* scaffold/main.kaem: Remove --bootstrap-mode from M2-Planet call.
2022-05-03 12:41:59 +02:00
Jan (janneke) Nieuwenhuizen 514287808f
simple.sh: Resurrect.
* simple.sh: Add src/globals.c, lib/stub/__raise.c.  Use
lib/linux/malloc.c instead of lib/stdlib/malloc.c.
2022-05-03 23:06:41 +02:00
Jan (janneke) Nieuwenhuizen e7e62923f4
simple.make: Resurrect.
* simple.make (M2_PLANET_FLAGS): Add --bootstrap-mode.
(M2_SOURCES): Use lib/mes/mini-write.c instead of lib/mes/write.c
2022-05-03 22:51:21 +02:00
Jan (janneke) Nieuwenhuizen 3fc272ec31
lib: linux/read: Fix compile warnings.
* lib/linux/read.c (read): Cast filedes, buffer to long.
2022-05-03 23:05:47 +02:00
Jan (janneke) Nieuwenhuizen b79f0269ac
lib: mes/write: Rename from mes/mini-write.c
* lib/mes/mini-write.c: Move to...
* lib/mes/write.c: ...here.
* build-aux/configure-lib.sh,
kaem.run,
scaffold/argv.kaem,
scaffold/global-array.kaem,
scaffold/hello.kaem,
scaffold/local-array.kaem,
scaffold/local-static-array.kaem,
scaffold/read.kaem,
simple.make,
simple.sh: Update accordingly.
2022-05-03 22:40:47 +02:00
Jan (janneke) Nieuwenhuizen 010ab9ae74
build: Cater for colliding basename in C sources.
This is a follow-up to commit
    f785f8d560
    build: Fix --with-bootstrap build.

* build-aux/cc.sh: Retain directory name in object file name.
* build-aux/bootstrap.sh.in: Likewise.  Compile crt1.c from local
directory.
* build-aux/build-lib.sh: Likewise.
* build-aux/build.sh.in: Remove globals.o hack.
2022-05-21 15:10:46 +02:00
Jan (janneke) Nieuwenhuizen 81b680a9c6
guix: m2-planet: Update to 1.10.0.
* guix/git/mes.scm (m2-planet): Update to 1.10.0.
2022-05-03 09:24:23 +02:00
Gabriel Wicki ff3c6ad66b
core: Simplify math expressions.
* src/gc.c (gc_up_arena): Use division instead of shift.
(gc_flip): Simplify (free-news) * 1.5.
2022-05-10 22:23:40 +02:00
Ekaitz cfa8f0db84
doc: Fix typos.
* doc/mes.texi (Invoking mescc): Fix typo.
* module/mescc.scm (parse-opts): Likewise.
2022-09-22 11:14:34 +02:00
Ekaitz 02ffc5da94
mescc: Add X86_64 assembly defines for TinyCC compilation.
* lib/x86_64-mes/x86_64.M1 ( mov____%si,(%rdi), mov____%sil,(%rdi),
mov____(%rax),%si, mov____(%rax),%sil): New defines.
2022-09-21 09:43:43 +02:00
Jan (janneke) Nieuwenhuizen 0f362be1da
build: When courageous, do build libgetopt and libtcc1.
* build-aux/build-lib.sh: Move building of libc+gnu and courageous exit
down.
2022-10-18 07:34:27 +02:00
Jan (janneke) Nieuwenhuizen f8ea51ae2b
build: Support bootstrap build without kaem/M2-Planet.
* configure.sh (M2_PLANET): Typo.  Allow check to fail.
(KAEM): Allow check to fail.
2022-10-17 13:10:48 +02:00
Jan (janneke) Nieuwenhuizen f6c53ac80d
guix: mes: Update to 0.24.1.
* guix/git/mes.scm (mes)[source]: Update to 0.24.1.
2022-10-16 10:14:43 +02:00
Jan (janneke) Nieuwenhuizen 550ef59cf0
doc: Enlarge guix graph bootstrap image.
* doc/mes.texi (The Mes Bootstrap Process): Use 6in width.
2022-10-16 11:06:37 +02:00
Jan (janneke) Nieuwenhuizen 678b23a2ca
doc: Typo.
* doc/announce/ANNOUNCE-0.24.1: Typo.
2022-10-16 10:09:26 +02:00
Jan (janneke) Nieuwenhuizen 343ac812ca
doc: Typo.
* doc/announce/ANNOUNCE-0.24.1 (Subject): Typo.
2022-10-16 10:04:48 +02:00