commit: 27414ee2b9c660d4d84caaa8167e3cd1ee69fda0 parent 5a3dc0fafc5e84a7c4dbfe8c2885a2a43bf0c384 Author: fosslinux <fosslinux@aussies.space> Date: Sat, 22 Mar 2025 20:45:39 +1100 Change mescc to use a unified libc C file Significantly speeds up libc compilation.Diffstat:
M | steps/mes-0.27/mes-0.27.x86.checksums | 12 | ++++++------ |
M | steps/mes-0.27/pass1.kaem | 345 | +++++++++++++++++++++++++++++++++++++++++-------------------------------------- |
M | steps/tcc-0.9.26/tcc-0.9.26.x86.checksums | 2 | +- |
3 files changed, 184 insertions(+), 175 deletions(-)diff --git a/steps/mes-0.27/mes-0.27.x86.checksums b/steps/mes-0.27/mes-0.27.x86.checksums
@@ -3,11 +3,11 @@ c7fe23d83f630bcc5f613e7d779cffa30b0cf282c1a49049195e5a44de027a78 /usr/bin/mes-m 234c264965116a24583dd569050adc766d7cc2da83b1db38085210f26031b70c /usr/lib/x86-mes/crt1.s 494f184a87175abc485a898c250c3831b2b5dcf5aead46591e00b39d1c5529fc /usr/lib/x86-mes/crt1.o 8afe05c3e1e8848b6f3e8de751524de5f69818eb8524659827918e3fddde3e1e /usr/lib/x86-mes/x86.M1 -771988b1df0dfa04bf5f1ab72af18c32b1a8205a07f10e5235d79dac0a072b00 /usr/lib/x86-mes/libmescc.s -de4f2756b6d10f08ea70d624c339b120f162857e780a372055bd11aee024ab95 /usr/lib/x86-mes/libc+tcc.s -09bca286c4d24e8fb5a6b71711cb62bacbff82752507d9d035fae6079b48b9c9 /usr/lib/x86-mes/libc.s -52f697278ccdff5e457f27e10f465a91ab9858f0c6cee0683831cadb3109bbb7 /usr/lib/x86-mes/libmescc.a -c5e4749abd1b6d75ddddc58ad8f17554bd26ff9cc24db5f63b5db386f74a0a59 /usr/lib/x86-mes/libc+tcc.a -86dccb6519f507eda86c2b2abc2246d11ae92f9951288084f6033814d31388a7 /usr/lib/x86-mes/libc.a +06c6e43ab7f09e7779df786c57ba5b8775468ae8a47a0426278e9adc52d675c8 /usr/lib/x86-mes/libmescc.s +ec27b2a0112749f39967b15dd0eea3e2df5713bb7de58d854549e41e0b9789d1 /usr/lib/x86-mes/libc+tcc.s +cd88fb3dedbc1efe90d454b37274b0d6ea0a778abfd6f182f81ced838aae872e /usr/lib/x86-mes/libc.s +bfb362848fc83a8a58421636a51b1514d1915b58a5a2354c703dfec64c899cad /usr/lib/x86-mes/libmescc.a +bb491059be5600ccdad9a3a18554588b7e3977b18170af5f9ef8fc18305fee01 /usr/lib/x86-mes/libc+tcc.a +128b40697c7764b0b8a6b582d29bec1c3f1ffb1d2e012758ede0db689eecc850 /usr/lib/x86-mes/libc.a 82cac4353375a52efecc6fda1f8b37373988fe41ed197b63d8e906321b105d77 /usr/lib/linux/x86-mes/elf32-header.hex2 f9873d9aab12e70f24d97f8319e17a1e698ca60779ae9a6ab3ede648cd60fc61 /usr/lib/linux/x86-mes/elf32-footer-single-main.hex2diff --git a/steps/mes-0.27/pass1.kaem b/steps/mes-0.27/pass1.kaem
@@ -96,180 +96,189 @@ alias mescc="${MES} -e main ${BINDIR}/mescc.scm -D HAVE_CONFIG_H=1 -I include -I mescc lib/linux/${MES_ARCH}-mes-mescc/crt1.c -o lib/${MES_ARCH}-mes/crt1.o # Now for libc-mini.a -mescc lib/mes/__init_io.c -mescc lib/mes/eputs.c -mescc lib/mes/oputs.c -mescc lib/mes/globals.c -mescc lib/stdlib/exit.c -mescc lib/linux/${MES_ARCH}-mes-mescc/_exit.c -mescc lib/linux/${MES_ARCH}-mes-mescc/_write.c -mescc lib/stdlib/puts.c -mescc lib/string/strlen.c -catm ${LIBDIR}/${MES_ARCH}-mes/libc-mini.a __init_io.o eputs.o oputs.o globals.o exit.o _exit.o _write.o puts.o strlen.o -catm ${LIBDIR}/${MES_ARCH}-mes/libc-mini.s __init_io.s eputs.s oputs.s globals.s exit.s _exit.s _write.s puts.s strlen.s +catm libc-mini.c \ + lib/mes/__init_io.c \ + lib/mes/eputs.c \ + lib/mes/oputs.c \ + lib/mes/globals.c \ + lib/stdlib/exit.c \ + lib/linux/${MES_ARCH}-mes-mescc/_exit.c \ + lib/linux/${MES_ARCH}-mes-mescc/_write.c \ + lib/stdlib/puts.c \ + lib/string/strlen.c +mescc libc-mini.c +cp libc-mini.o ${LIBDIR}/${MES_ARCH}-mes/libc-mini.a +cp libc-mini.s ${LIBDIR}/${MES_ARCH}-mes/libc-mini.s # libmescc.a -mescc lib/linux/${MES_ARCH}-mes-mescc/syscall-internal.c -catm ${LIBDIR}/${MES_ARCH}-mes/libmescc.a globals.o syscall-internal.o -catm ${LIBDIR}/${MES_ARCH}-mes/libmescc.s globals.s syscall-internal.s +catm libmescc.c \ + lib/mes/globals.c \ + lib/linux/${MES_ARCH}-mes-mescc/syscall-internal.c +mescc libmescc.c +cp libmescc.o ${LIBDIR}/${MES_ARCH}-mes/libmescc.a +cp libmescc.s ${LIBDIR}/${MES_ARCH}-mes/libmescc.s # libc.a -mescc lib/ctype/isnumber.c -mescc lib/mes/abtol.c -mescc lib/mes/cast.c -mescc lib/mes/eputc.c -mescc lib/mes/fdgetc.c -mescc lib/mes/fdputc.c -mescc lib/mes/fdputs.c -mescc lib/mes/fdungetc.c -mescc lib/mes/itoa.c -mescc lib/mes/ltoa.c -mescc lib/mes/ltoab.c -mescc lib/mes/mes_open.c -mescc lib/mes/ntoab.c -mescc lib/mes/oputc.c -mescc lib/mes/ultoa.c -mescc lib/mes/utoa.c -mescc lib/ctype/isdigit.c -mescc lib/ctype/isspace.c -mescc lib/ctype/isxdigit.c -mescc lib/mes/assert_msg.c -mescc lib/posix/write.c -mescc lib/stdlib/atoi.c -mescc lib/linux/lseek.c -mescc lib/mes/__assert_fail.c -mescc lib/mes/__buffered_read.c -mescc lib/mes/__mes_debug.c -mescc lib/posix/execv.c -mescc lib/posix/getcwd.c -mescc lib/posix/getenv.c -mescc lib/posix/isatty.c -mescc lib/posix/open.c -mescc lib/posix/buffered-read.c -mescc lib/posix/setenv.c -mescc lib/posix/wait.c -mescc lib/dirent/closedir.c -mescc lib/dirent/opendir.c -mescc lib/stdio/fgetc.c -mescc lib/stdio/fputc.c -mescc lib/stdio/fputs.c -mescc lib/stdio/getc.c -mescc lib/stdio/getchar.c -mescc lib/stdio/putc.c -mescc lib/stdio/putchar.c -mescc lib/stdio/ungetc.c -mescc lib/stdlib/calloc.c -mescc lib/stdlib/free.c -mescc lib/stdlib/realloc.c -mescc lib/string/memchr.c -mescc lib/string/memcmp.c -mescc lib/string/memcpy.c -mescc lib/string/memmove.c -mescc lib/string/memset.c -mescc lib/string/strcmp.c -mescc lib/string/strcpy.c -mescc lib/string/strncmp.c -mescc lib/posix/raise.c -mescc lib/linux/access.c -mescc lib/linux/brk.c -mescc lib/linux/chdir.c -mescc lib/linux/chmod.c -mescc lib/linux/clock_gettime.c -mescc lib/linux/dup.c -mescc lib/linux/dup2.c -mescc lib/linux/execve.c -mescc lib/linux/fork.c -mescc lib/linux/fsync.c -mescc lib/linux/_getcwd.c -mescc lib/linux/gettimeofday.c -mescc lib/linux/ioctl3.c -mescc lib/linux/malloc.c -mescc lib/linux/_open3.c -mescc lib/linux/_read.c -mescc lib/linux/readdir.c -mescc lib/linux/rename.c -mescc lib/linux/time.c -mescc lib/linux/umask.c -mescc lib/linux/uname.c -mescc lib/linux/unlink.c -mescc lib/linux/utimensat.c -mescc lib/linux/wait4.c -mescc lib/linux/waitpid.c -mescc lib/linux/${MES_ARCH}-mes-mescc/syscall.c -mescc lib/linux/getpid.c -mescc lib/linux/kill.c -mescc lib/linux/pipe.c -mescc lib/linux/stat.c -mescc lib/linux/lstat.c -mescc lib/linux/mkdir.c -mescc lib/linux/rmdir.c -mescc lib/linux/link.c -mescc lib/linux/symlink.c -mescc lib/linux/close.c -mescc lib/linux/nanosleep.c -mescc lib/linux/fcntl.c -mescc lib/linux/fstat.c -mescc lib/linux/getdents.c -catm ${LIBDIR}/${MES_ARCH}-mes/libc.a __init_io.o eputs.o oputs.o globals.o exit.o _exit.o _write.o puts.o strlen.o isnumber.o abtol.o cast.o eputc.o fdgetc.o fdputc.o fdputs.o fdungetc.o itoa.o ltoa.o ltoab.o mes_open.o ntoab.o oputc.o ultoa.o utoa.o isdigit.o isspace.o isxdigit.o assert_msg.o write.o atoi.o lseek.o __assert_fail.o __buffered_read.o __mes_debug.o execv.o getcwd.o getenv.o isatty.o open.o buffered-read.o setenv.o wait.o closedir.o opendir.o fgetc.o fputc.o fputs.o getc.o getchar.o putc.o putchar.o ungetc.o calloc.o free.o malloc.o realloc.o memchr.o memcmp.o memcpy.o memmove.o memset.o strcmp.o strcpy.o strncmp.o raise.o access.o brk.o chdir.o chmod.o clock_gettime.o dup.o dup2.o execve.o fork.o fsync.o _getcwd.o gettimeofday.o ioctl3.o _open3.o _read.o readdir.o rename.o time.o umask.o uname.o unlink.o utimensat.o wait4.o waitpid.o syscall.o getpid.o kill.o pipe.o stat.o lstat.o mkdir.o rmdir.o link.o symlink.o close.o nanosleep.o fcntl.o fstat.o getdents.o -catm ${LIBDIR}/${MES_ARCH}-mes/libc.s __init_io.s eputs.s oputs.s globals.s exit.s _exit.s _write.s puts.s strlen.s isnumber.s abtol.s cast.s eputc.s fdgetc.s fdputc.s fdputs.s fdungetc.s itoa.s ltoa.s ltoab.s mes_open.s ntoab.s oputc.s ultoa.s utoa.s isdigit.s isspace.s isxdigit.s assert_msg.s write.s atoi.s lseek.s __assert_fail.s __buffered_read.s __mes_debug.s execv.s getcwd.s getenv.s isatty.s open.s buffered-read.s setenv.s wait.s closedir.s opendir.s fgetc.s fputc.s fputs.s getc.s getchar.s putc.s putchar.s ungetc.s calloc.s free.s malloc.s realloc.s memchr.s memcmp.s memcpy.s memmove.s memset.s strcmp.s strcpy.s strncmp.s raise.s access.s brk.s chdir.s chmod.s clock_gettime.s dup.s dup2.s execve.s fork.s fsync.s _getcwd.s gettimeofday.s ioctl3.s _open3.s _read.s readdir.s rename.s time.s umask.s uname.s unlink.s utimensat.s wait4.s waitpid.s syscall.s getpid.s kill.s pipe.s stat.s lstat.s mkdir.s rmdir.s link.s symlink.s close.s nanosleep.s fcntl.s fstat.s getdents.s +catm libc.c \ + lib/ctype/isnumber.c \ + lib/mes/abtol.c \ + lib/mes/cast.c \ + lib/mes/eputc.c \ + lib/mes/fdgetc.c \ + lib/mes/fdputc.c \ + lib/mes/fdputs.c \ + lib/mes/fdungetc.c \ + lib/mes/itoa.c \ + lib/mes/ltoa.c \ + lib/mes/ltoab.c \ + lib/mes/mes_open.c \ + lib/mes/ntoab.c \ + lib/mes/oputc.c \ + lib/mes/ultoa.c \ + lib/mes/utoa.c \ + lib/ctype/isdigit.c \ + lib/ctype/isspace.c \ + lib/ctype/isxdigit.c \ + lib/mes/assert_msg.c \ + lib/posix/write.c \ + lib/stdlib/atoi.c \ + lib/linux/lseek.c \ + lib/mes/__assert_fail.c \ + lib/mes/__buffered_read.c \ + lib/mes/__mes_debug.c \ + lib/posix/execv.c \ + lib/posix/getcwd.c \ + lib/posix/getenv.c \ + lib/posix/isatty.c \ + lib/posix/open.c \ + lib/posix/buffered-read.c \ + lib/posix/setenv.c \ + lib/posix/wait.c \ + lib/dirent/closedir.c \ + lib/dirent/opendir.c \ + lib/stdio/fgetc.c \ + lib/stdio/fputc.c \ + lib/stdio/fputs.c \ + lib/stdio/getc.c \ + lib/stdio/getchar.c \ + lib/stdio/putc.c \ + lib/stdio/putchar.c \ + lib/stdio/ungetc.c \ + lib/stdlib/calloc.c \ + lib/stdlib/free.c \ + lib/stdlib/realloc.c \ + lib/string/memchr.c \ + lib/string/memcmp.c \ + lib/string/memcpy.c \ + lib/string/memmove.c \ + lib/string/memset.c \ + lib/string/strcmp.c \ + lib/string/strcpy.c \ + lib/string/strncmp.c \ + lib/posix/raise.c \ + lib/linux/access.c \ + lib/linux/brk.c \ + lib/linux/chdir.c \ + lib/linux/chmod.c \ + lib/linux/clock_gettime.c \ + lib/linux/dup.c \ + lib/linux/dup2.c \ + lib/linux/execve.c \ + lib/linux/fork.c \ + lib/linux/fsync.c \ + lib/linux/_getcwd.c \ + lib/linux/gettimeofday.c \ + lib/linux/ioctl3.c \ + lib/linux/malloc.c \ + lib/linux/_open3.c \ + lib/linux/_read.c \ + lib/linux/readdir.c \ + lib/linux/rename.c \ + lib/linux/time.c \ + lib/linux/umask.c \ + lib/linux/uname.c \ + lib/linux/unlink.c \ + lib/linux/utimensat.c \ + lib/linux/wait4.c \ + lib/linux/waitpid.c \ + lib/linux/${MES_ARCH}-mes-mescc/syscall.c \ + lib/linux/getpid.c \ + lib/linux/kill.c \ + lib/linux/pipe.c \ + lib/linux/stat.c \ + lib/linux/lstat.c \ + lib/linux/mkdir.c \ + lib/linux/rmdir.c \ + lib/linux/link.c \ + lib/linux/symlink.c \ + lib/linux/close.c \ + lib/linux/nanosleep.c \ + lib/linux/fcntl.c \ + lib/linux/fstat.c \ + lib/linux/getdents.c +mescc libc.c +catm ${LIBDIR}/${MES_ARCH}-mes/libc.a ${LIBDIR}/${MES_ARCH}-mes/libc-mini.a libc.o +catm ${LIBDIR}/${MES_ARCH}-mes/libc.s ${LIBDIR}/${MES_ARCH}-mes/libc-mini.s libc.s # libc+tcc.a -mescc lib/ctype/islower.c -mescc lib/ctype/isupper.c -mescc lib/ctype/tolower.c -mescc lib/ctype/toupper.c -mescc lib/mes/abtod.c -mescc lib/mes/dtoab.c -mescc lib/mes/search-path.c -mescc lib/posix/execvp.c -mescc lib/stdio/fclose.c -mescc lib/stdio/fdopen.c -mescc lib/stdio/ferror.c -mescc lib/stdio/fflush.c -mescc lib/stdio/fopen.c -mescc lib/stdio/fprintf.c -mescc lib/stdio/fread.c -mescc lib/stdio/fseek.c -mescc lib/stdio/ftell.c -mescc lib/stdio/fwrite.c -mescc lib/stdio/printf.c -mescc lib/stdio/remove.c -mescc lib/stdio/snprintf.c -mescc lib/stdio/sprintf.c -mescc lib/stdio/sscanf.c -mescc lib/stdio/vfprintf.c -mescc lib/stdio/vprintf.c -mescc lib/stdio/vsnprintf.c -mescc lib/stdio/vsprintf.c -mescc lib/stdio/vsscanf.c -mescc lib/stdlib/abort.c -mescc lib/stdlib/qsort.c -mescc lib/stdlib/strtod.c -mescc lib/stdlib/strtof.c -mescc lib/stdlib/strtol.c -mescc lib/stdlib/strtold.c -mescc lib/stdlib/strtoll.c -mescc lib/stdlib/strtoul.c -mescc lib/stdlib/strtoull.c -mescc lib/string/memmem.c -mescc lib/string/strcat.c -mescc lib/string/strchr.c -mescc lib/string/strlwr.c -mescc lib/string/strncpy.c -mescc lib/string/strrchr.c -mescc lib/string/strstr.c -mescc lib/string/strupr.c -mescc lib/stub/sigaction.c -mescc lib/stub/ldexp.c -mescc lib/stub/mprotect.c -mescc lib/stub/localtime.c -mescc lib/stub/sigemptyset.c -mescc lib/${MES_ARCH}-mes-mescc/setjmp.c -mescc lib/linux/close.c -mescc lib/linux/rmdir.c -mescc lib/linux/stat.c -catm ${LIBDIR}/${MES_ARCH}-mes/libc+tcc.a ${LIBDIR}/${MES_ARCH}-mes/libc.a islower.o isupper.o tolower.o toupper.o abtod.o dtoab.o search-path.o execvp.o fclose.o fdopen.o ferror.o fflush.o fopen.o fprintf.o fread.o fseek.o ftell.o fwrite.o printf.o remove.o snprintf.o sprintf.o sscanf.o vfprintf.o vprintf.o vsnprintf.o vsprintf.o vsscanf.o abort.o qsort.o strtod.o strtof.o strtol.o strtold.o strtoll.o strtoul.o strtoull.o memmem.o strcat.o strchr.o strlwr.o strncpy.o strrchr.o strstr.o strupr.o sigaction.o ldexp.o mprotect.o localtime.o sigemptyset.o setjmp.o close.o rmdir.o stat.o -catm ${LIBDIR}/${MES_ARCH}-mes/libc+tcc.s ${LIBDIR}/${MES_ARCH}-mes/libc.s islower.s isupper.s tolower.s toupper.s abtod.s dtoab.s search-path.s execvp.s fclose.s fdopen.s ferror.s fflush.s fopen.s fprintf.s fread.s fseek.s ftell.s fwrite.s printf.s remove.s snprintf.s sprintf.s sscanf.s vfprintf.s vprintf.s vsnprintf.s vsprintf.s vsscanf.s abort.s qsort.s strtod.s strtof.s strtol.s strtold.s strtoll.s strtoul.s strtoull.s memmem.s strcat.s strchr.s strlwr.s strncpy.s strrchr.s strstr.s strupr.s sigaction.s ldexp.s mprotect.s localtime.s sigemptyset.s setjmp.s close.s rmdir.s stat.s +catm libc+tcc.c \ + lib/ctype/islower.c \ + lib/ctype/isupper.c \ + lib/ctype/tolower.c \ + lib/ctype/toupper.c \ + lib/mes/abtod.c \ + lib/mes/dtoab.c \ + lib/mes/search-path.c \ + lib/posix/execvp.c \ + lib/stdio/fclose.c \ + lib/stdio/fdopen.c \ + lib/stdio/ferror.c \ + lib/stdio/fflush.c \ + lib/stdio/fopen.c \ + lib/stdio/fprintf.c \ + lib/stdio/fread.c \ + lib/stdio/fseek.c \ + lib/stdio/ftell.c \ + lib/stdio/fwrite.c \ + lib/stdio/printf.c \ + lib/stdio/remove.c \ + lib/stdio/snprintf.c \ + lib/stdio/sprintf.c \ + lib/stdio/sscanf.c \ + lib/stdio/vfprintf.c \ + lib/stdio/vprintf.c \ + lib/stdio/vsnprintf.c \ + lib/stdio/vsprintf.c \ + lib/stdio/vsscanf.c \ + lib/stdlib/abort.c \ + lib/stdlib/qsort.c \ + lib/stdlib/strtod.c \ + lib/stdlib/strtof.c \ + lib/stdlib/strtol.c \ + lib/stdlib/strtold.c \ + lib/stdlib/strtoll.c \ + lib/stdlib/strtoul.c \ + lib/stdlib/strtoull.c \ + lib/string/memmem.c \ + lib/string/strcat.c \ + lib/string/strchr.c \ + lib/string/strlwr.c \ + lib/string/strncpy.c \ + lib/string/strrchr.c \ + lib/string/strstr.c \ + lib/string/strupr.c \ + lib/stub/sigaction.c \ + lib/stub/ldexp.c \ + lib/stub/mprotect.c \ + lib/stub/localtime.c \ + lib/stub/sigemptyset.c \ + lib/${MES_ARCH}-mes-mescc/setjmp.c \ + lib/linux/close.c \ + lib/linux/rmdir.c \ + lib/linux/stat.c +mescc libc+tcc.c +catm ${LIBDIR}/${MES_ARCH}-mes/libc+tcc.a ${LIBDIR}/${MES_ARCH}-mes/libc.a libc+tcc.o +catm ${LIBDIR}/${MES_ARCH}-mes/libc+tcc.s ${LIBDIR}/${MES_ARCH}-mes/libc.s libc+tcc.s # Make directories mkdir ${PREFIX}/lib/linux ${INCDIR}/mes ${INCDIR}/sys ${INCDIR}/linux ${INCDIR}/archdiff --git a/steps/tcc-0.9.26/tcc-0.9.26.x86.checksums b/steps/tcc-0.9.26/tcc-0.9.26.x86.checksums
@@ -1,4 +1,4 @@ -0ad357e27d33f2387466182880de2d448e7655ed9224d65d9861501c06cd6095 /usr/bin/tcc-mes +096aa0aaf3d2d2742c45683edebbe3ed8ba61d587e1c610e04dab06715824e07 /usr/bin/tcc-mes 2f0209ee3bfe4c65b54c72fe7b5a4f9e85562c31b5b202301d07e040d1f34347 /usr/bin/tcc-boot0 edc61c506e4e080ace481d0e2e68ce4e184145721d6e67aab5a9711a7a92695b /usr/bin/tcc-boot1 2204b4625e068b77aaeffc5f94e0ee12e6826c5f7f0639bb53932e2d625939d9 /usr/bin/tcc