Commit Graph

445 Commits

Author SHA1 Message Date
Jan (janneke) Nieuwenhuizen c489990060
size_t 2022-10-25 15:54:51 +02:00
Jan (janneke) Nieuwenhuizen 71f6a0ece1
hendigere i 2022-10-25 15:49:35 +02:00
Jan (janneke) Nieuwenhuizen 80956130b8
fix qsort 2022-10-25 15:47:14 +02:00
Jan (janneke) Nieuwenhuizen 2901f98fce
Revert "smooth sort"
This reverts commit 1a5c888b6b.
2022-10-25 15:21:27 +02:00
Jan (janneke) Nieuwenhuizen 1a5c888b6b
smooth sort 2022-10-25 15:21:24 +02:00
Jan (janneke) Nieuwenhuizen d99c69f2c5
DRAFT lib: qsort: Cleanup, still buggy. 2022-10-25 15:21:23 +02:00
Jan (janneke) Nieuwenhuizen 1ec0b762b1
lib: test: Add 80-qsort-stress.
* lib/tests/stdlib/80-qsort-stress.c: New test.
* build-aux/check-mescc.sh (tcc_tests): Add it.
2022-10-25 15:21:23 +02:00
Jan (janneke) Nieuwenhuizen 7b3d0c7aa6
lib: test: 80-qsort: Fix warnings.
* lib/tests/stdlib/80-qsort.c: Include missing stdlib.h.
(compare_int): Fix signature.
2022-10-25 15:01:54 +02:00
Danny Milosavljevic 266c207954
lib: vfscanf: Add missing #include.
* lib/stdio/vfscanf.c: Add missing #include.
2022-10-25 15:01:54 +02:00
Jan Nieuwenhuizen 895bebf395
build: Improve --with-system-libc support.
* lib/stub/asctime.c: Add missing mes/lib.h, errno.h include.
2022-10-25 15:01:54 +02:00
Jan Nieuwenhuizen c45cbff8ba
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.
2022-10-25 15:01:54 +02:00
Jan Nieuwenhuizen 130d6c465f
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.
2022-10-25 15:01:54 +02:00
Jan (janneke) Nieuwenhuizen c2784d43de
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-25 15:01:53 +02:00
Jan Nieuwenhuizen f17307c418
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.
2022-10-25 15:01:53 +02:00
Jan Nieuwenhuizen 48e495189e
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.
2022-10-25 15:01:53 +02:00
Jan Nieuwenhuizen 3f5a2523ac
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.
2022-10-25 15:01:53 +02:00
Jan Nieuwenhuizen 2792233e56
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.
2022-10-25 15:01:53 +02:00
Jan Nieuwenhuizen 85153b6fa8
lib: vfprintf, vsnprintf: Support gcc-4.6.4: #-type.
* lib/stdio/vfscanf.c (vfscanf): Show whole template upon error.
* lib/stdio/vsscanf.c (vsscanf): Likewise.
* lib/stdio/vsnprintf.c (vsnprintf): Likewise.  Support #-type prefix.
* lib/stdio/vfprintf.c (vfprintf): Likewise.  Use fileno.  Return count.
* build-aux/configure-lib.sh (libc_gnu_SOURCES): Move fileno...
(libc_tcc_SOURCES): ...here.
2022-10-25 15:01:00 +02: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 (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 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 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 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
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 074fa78f5e
lib/test: Cater for gcc-12.2.0.
These inexplicably avoid segfaults with gcc-12.2.0.

* lib/tests/posix/50-open-read.c (main)[__GNUC__ > 11]: Use malloc
instead of local allocated string.
* lib/tests/scaffold/7i-struct-struct.c (main)[__GNUC__ > 11]:
Initialize all fields of struct.
* lib/tests/scaffold/t.c (main): Likewise.
2022-09-15 13:56:38 +02:00
Rick Masters fdac9fd3f2
lib: abtol: Fix number digits in hex number conversion.
After a letter based digit, number based digits are off.

* lib/mes/abtol.c (abtol): Reset "m" for number based digit.
* lib/tests/stdlib/70-strtoull.c (main): Test it.
* lib/tests/stdlib/90-strtol.c (main): Likewise.
2022-10-07 11:59:57 +02:00
Jan (janneke) Nieuwenhuizen eee5398f3b
ARM: Fix unsigned modulo.
* lib/arm-mes/arm.M1 (mov____%esp,%r3): New macro.
* module/mescc/armv4/as.scm (armv4:r0%r1): Use it to avoid overwriting
%r0 before caling __mesabi_uldiv.
2022-09-12 09:47:28 +02:00
Jan (janneke) Nieuwenhuizen dbec0c3845
test: Add 60-math-modulo.c.
* lib/tests/scaffold/60-math-modulo.c: New test.
* build-aux/check-mescc.sh (mes_tests): Add it.
2022-09-11 23:34:20 +02:00
Jan (janneke) Nieuwenhuizen e64d763ccd
ARM: ntoab: Do not include __mesabi_uldiv for bootstrap tcc.
* lib/mes/ntoab.c (__mesabi_uldiv): Exclude for tinycc arm bootstrap.
2022-09-13 19:12:31 +02:00
Jan (janneke) Nieuwenhuizen d1297688a8
ARM: build: Cater for M2-Planet.
* include/linux/arm/syscall.h: Add support for M2-Planet.
* lib/linux/arm-mes-m2/_exit.c,
lib/linux/arm-mes-m2/_write.c,
lib/linux/arm-mes-m2/crt1.M1,
lib/linux/arm-mes-m2/crt1.c,
lib/linux/arm-mes-m2/syscall.c,
lib/m2/arm/ELF-arm.hex2,
lib/m2/arm/arm_defs.M1: New files.
* build-aux/build.sh.in: Also allow kaem build for ARM.
2022-04-30 22:51:42 +02:00
Jan (janneke) Nieuwenhuizen c45bd1bdd6
Mes C Library: memchr: Avoid compile warning.
* lib/string/memchr.c (memchr): Cast return to void*.
2022-04-30 16:40:57 +02:00
Jan (janneke) Nieuwenhuizen 9c2ba4829c
Revert "Mes C Library: m2/execve.c: Remove specialization."
This fixes

    gcc-lib/libc+gnu.c: At top level:
    gcc-lib/libc+gnu.c:2694:1: error: conflicting types for ‘execve’
     execve (char const *file_name, char **argv, char **env)
     ^~~~~~
    In file included from gcc-lib/libc+gnu.c:492:0:
    include/unistd.h:66:5: note: previous declaration of ‘execve’ was here
     int execve (char const *file, char *const argv[], char *const env[]);
         ^~~~~~

This reverts commit 828c27a073.
2021-01-02 10:00:35 +01:00
Jan (janneke) Nieuwenhuizen 99fbb9b2e5
bootstrap: Update M2-Planet x86 definitions from 1.7.0-31-g358b6cf.
* lib/m2/x86/x86_defs.M1: Update.
2021-01-01 19:07:22 +01:00
Jan (janneke) Nieuwenhuizen c881e18dae
Revert "Mes C Library: m2/getcwd.c: Remove specialization."
This reverts commit 37f44ce945.
2021-01-01 15:54:13 +01:00
Jan (janneke) Nieuwenhuizen b23c6885a6
core: Move __getcwd_buf to Mes C Library.
* include/mes/mes.h (__getcwd_buf): Move to..
* lib/posix/getcwd.c (__getcwd_buf): ...here.
(getcwd): Refactor.
* src/posix.c (getcwd_): Do not use __getcwd_buf.
2021-01-01 15:43:43 +01:00
Jan (janneke) Nieuwenhuizen 0d337be8ff
bootstrap: Support building with M2-Planet 1.4.
* lib/m2/x86/x86_defs.M1 (NOP): New define.
2021-01-01 11:40:51 +01:00
Jan (janneke) Nieuwenhuizen 96e6ecaf7d
core: Add abort.
* lib/stub/__raise.c: New file.
* kaem.run: Use it.
* src/posix.c (__raise)[SYSTEM_LIBC]: New macro.
 (abort_): New function: possibly use it.
* include/mes/builtins.h: Declare it.
* src/builtins.c (mes_builtins): Register it.
2019-11-10 16:04:25 +01:00
Jan (janneke) Nieuwenhuizen d984618a48
Mes C Library: m2/execve.c: Remove specialization.
* lib/linux/execve.c (execve): Cater for M2-Planet.
* lib/m2/execve.c: Remove.
* kaem.run: Update accordingly.
* simple.make (M2_SOURCES): Likewise.
2020-12-29 19:13:02 +01:00
Jan (janneke) Nieuwenhuizen f07856de0f
Mes C Library: m2/getcwd.c: Remove specialization.
* lib/posix/getcwd.c (getcwd): Cater for M2-Planet.
* lib/m2/getcwd.c: Remove.
* kaem.run: Update accordingly.
* simple.make (M2_SOURCES): Likewise.
2020-12-29 18:52:37 +01:00
Jan (janneke) Nieuwenhuizen fca14d27ad
Mes C Library: m2/ioctl.c: Remove specialization.
* lib/stub/ioctl.c (ioctl3): Move to...
* lib/stub/ioctl3.c: ...new file.
* lib/m2/ioctl3.c: Move to...
* lib/linux/ioctl3.c: ...here.
* include/mes/lib.h (ioctl3): Declare it.
* lib/m2/isatty.c (isatty): Use it.
* build-aux/configure-lib.sh (libc_SOURCES): Include it; move
lib/linux/ioctl.c to ...
(libc_gnu_SOURCES): ... here.
* kaem.run: Update accordingly.
* simple.make (M2_SOURCES): Likewise.
* simple.sh (compiler): Likewise.
2020-12-29 18:41:45 +01:00
Jan (janneke) Nieuwenhuizen a4e56aac56
Mes C Library: m2/ntoab.c: Remove specialization.
* lib/mes/ntoab.c (__mesabi_uldiv)[__M2_PLANET__ || !(__MESC__ &&
__arm__)]:  New function.
* lib/mes/ntoab.c (ntoab): Use it to cater for M2-Planet.
* lib/m2/ntoab.c: Remove.
* kaem.run: Update accordingly.
* simple.make (M2_SOURCES, (M2_TODO): Likewise.
2020-12-29 15:39:33 +01:00
Jan (janneke) Nieuwenhuizen 41c126759e
mescc: Mes C Library: Prepare for M2-Planet 1.7.0.
* lib/m2/ntoab.c (ntoab): Declare variables at toplevel.
* lib/mes/abtol.c (abtol): Likewise.
* lib/posix/getenv.c (getenv): Likewise.
* lib/posix/setenv.c (setenv): Likewise.
2020-12-29 13:37:20 +01:00
Jan (janneke) Nieuwenhuizen 74d7d097e4
mescc: Mes C Library: isatty: Use fixed array size for M2-Planet.
* lib/m2/isatty.c (struct ktermios)[c_cc]: Hardcode to size 19.
2020-12-29 13:34:24 +01:00