diff --git a/steps/mes-0.27/pass1.kaem b/steps/mes-0.27/pass1.kaem index 9b7e246a..f420af6a 100755 --- a/steps/mes-0.27/pass1.kaem +++ b/steps/mes-0.27/pass1.kaem @@ -8,10 +8,10 @@ set -ex # Variables -MES_ARENA=20000000 -MES_MAX_ARENA=20000000 -MES_STACK=6000000 -MES=${BINDIR}/mes-m2 +# MES_ARENA=20000000 +# MES_MAX_ARENA=20000000 +# MES_STACK=6000000 +# MES=${BINDIR}/mes-m2 LIBDIR=${MES_PREFIX}/lib if match ${ARCH} x86; then @@ -59,243 +59,243 @@ cp mes/module/srfi/srfi-9-struct.mes mes/module/srfi/srfi-9.mes cp mes/module/srfi/srfi-9/gnu-struct.mes mes/module/srfi/srfi-9/gnu.mes # Build mes-m2 -kaem --verbose --strict --file kaem.${MES_ARCH} -cp bin/mes-m2 ${BINDIR}/mes-m2 -chmod 755 ${BINDIR}/mes-m2 +# kaem --verbose --strict --file kaem.${MES_ARCH} +# cp bin/mes-m2 ${BINDIR}/mes-m2 +# chmod 755 ${BINDIR}/mes-m2 # Rebuild pregenerated files in nyacc -cd ../${NYACC_PKG} -rm module/nyacc/lang/c99/mach.d/c99-act.scm module/nyacc/lang/c99/mach.d/c99-tab.scm \ - module/nyacc/lang/c99/mach.d/c99cx-act.scm module/nyacc/lang/c99/mach.d/c99cx-tab.scm \ - module/nyacc/lang/c99/mach.d/c99x-act.scm module/nyacc/lang/c99/mach.d/c99x-tab.scm \ - module/nyacc/lang/c99/mach.d/cpp-act.scm module/nyacc/lang/c99/mach.d/cpp-tab.scm -${MES} -L module gen-cpp-files.scm +# cd ../${NYACC_PKG} +# rm module/nyacc/lang/c99/mach.d/c99-act.scm module/nyacc/lang/c99/mach.d/c99-tab.scm \ +# module/nyacc/lang/c99/mach.d/c99cx-act.scm module/nyacc/lang/c99/mach.d/c99cx-tab.scm \ +# module/nyacc/lang/c99/mach.d/c99x-act.scm module/nyacc/lang/c99/mach.d/c99x-tab.scm \ +# module/nyacc/lang/c99/mach.d/cpp-act.scm module/nyacc/lang/c99/mach.d/cpp-tab.scm +# ${MES} -L module gen-cpp-files.scm # More RAM for this one! -MES_ARENA=32000000 -${MES} -L module gen-c99-files.scm -MES_ARENA=20000000 -${MES} -L module gen-c99cx-files.scm +# MES_ARENA=32000000 +# ${MES} -L module gen-c99-files.scm +# MES_ARENA=20000000 +# ${MES} -L module gen-c99cx-files.scm cd ../${MES_PKG} # Create mescc.scm -mescc_in=scripts/mescc.scm.in -replace --file ${mescc_in} --output ${mescc_in} --match-on @prefix@ --replace-with ${PREFIX} -replace --file ${mescc_in} --output ${mescc_in} --match-on @VERSION@ --replace-with ${MES_VERSION} -replace --file ${mescc_in} --output ${mescc_in} --match-on @mes_cpu@ --replace-with ${MES_ARCH} -replace --file ${mescc_in} --output ${mescc_in} --match-on @mes_kernel@ --replace-with linux +# mescc_in=scripts/mescc.scm.in +# replace --file ${mescc_in} --output ${mescc_in} --match-on @prefix@ --replace-with ${PREFIX} +# replace --file ${mescc_in} --output ${mescc_in} --match-on @VERSION@ --replace-with ${MES_VERSION} +# replace --file ${mescc_in} --output ${mescc_in} --match-on @mes_cpu@ --replace-with ${MES_ARCH} +# replace --file ${mescc_in} --output ${mescc_in} --match-on @mes_kernel@ --replace-with linux -mescc_scm=${BINDIR}/mescc.scm -cp ${mescc_in} ${mescc_scm} -chmod 755 ${mescc_scm} +# mescc_scm=${BINDIR}/mescc.scm +# cp ${mescc_in} ${mescc_scm} +# chmod 755 ${mescc_scm} # Recompile Mes and Mes C library using mes-m2 bootstrapped Mes -alias mescc="${MES} -e main ${BINDIR}/mescc.scm -D HAVE_CONFIG_H=1 -I include -I include/linux/${MES_ARCH} -c" +# alias mescc="${MES} -e main ${BINDIR}/mescc.scm -D HAVE_CONFIG_H=1 -I include -I include/linux/${MES_ARCH} -c" # Start with crt1.o -mescc lib/linux/${MES_ARCH}-mes-mescc/crt1.c -o lib/${MES_ARCH}-mes/crt1.o +# mescc lib/linux/${MES_ARCH}-mes-mescc/crt1.c -o lib/${MES_ARCH}-mes/crt1.o # Now for libc-mini.a -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 +# 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 -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 +# 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 -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 +# 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 -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 +# 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}/arch mkdir ${PREFIX}/lib/${MES_ARCH}-mes ${PREFIX}/lib/linux/${MES_ARCH}-mes ${INCDIR}/linux/${MES_ARCH} # Install libraries -cp ${LIBDIR}/${MES_ARCH}-mes/libc.a ${PREFIX}/lib/${MES_ARCH}-mes/ -cp ${LIBDIR}/${MES_ARCH}-mes/libc+tcc.a ${PREFIX}/lib/${MES_ARCH}-mes/ -cp ${LIBDIR}/${MES_ARCH}-mes/libmescc.a ${PREFIX}/lib/${MES_ARCH}-mes/ -cp ${LIBDIR}/${MES_ARCH}-mes/libc.s ${PREFIX}/lib/${MES_ARCH}-mes/ -cp ${LIBDIR}/${MES_ARCH}-mes/libc+tcc.s ${PREFIX}/lib/${MES_ARCH}-mes/ -cp ${LIBDIR}/${MES_ARCH}-mes/libmescc.s ${PREFIX}/lib/${MES_ARCH}-mes/ -cp ${LIBDIR}/${MES_ARCH}-mes/${MES_ARCH}.M1 ${PREFIX}/lib/${MES_ARCH}-mes/ -cp ${LIBDIR}/${MES_ARCH}-mes/crt1.o ${PREFIX}/lib/${MES_ARCH}-mes/ -cp ${LIBDIR}/${MES_ARCH}-mes/crt1.s ${PREFIX}/lib/${MES_ARCH}-mes/ -cp ${LIBDIR}/linux/${MES_ARCH}-mes/elf${ARCH_BITS}-footer-single-main.hex2 ${PREFIX}/lib/linux/${MES_ARCH}-mes/ -cp ${LIBDIR}/linux/${MES_ARCH}-mes/elf${ARCH_BITS}-header.hex2 ${PREFIX}/lib/linux/${MES_ARCH}-mes/ +# cp ${LIBDIR}/${MES_ARCH}-mes/libc.a ${PREFIX}/lib/${MES_ARCH}-mes/ +# cp ${LIBDIR}/${MES_ARCH}-mes/libc+tcc.a ${PREFIX}/lib/${MES_ARCH}-mes/ +# cp ${LIBDIR}/${MES_ARCH}-mes/libmescc.a ${PREFIX}/lib/${MES_ARCH}-mes/ +# cp ${LIBDIR}/${MES_ARCH}-mes/libc.s ${PREFIX}/lib/${MES_ARCH}-mes/ +# cp ${LIBDIR}/${MES_ARCH}-mes/libc+tcc.s ${PREFIX}/lib/${MES_ARCH}-mes/ +# cp ${LIBDIR}/${MES_ARCH}-mes/libmescc.s ${PREFIX}/lib/${MES_ARCH}-mes/ +# cp ${LIBDIR}/${MES_ARCH}-mes/${MES_ARCH}.M1 ${PREFIX}/lib/${MES_ARCH}-mes/ +# cp ${LIBDIR}/${MES_ARCH}-mes/crt1.o ${PREFIX}/lib/${MES_ARCH}-mes/ +# cp ${LIBDIR}/${MES_ARCH}-mes/crt1.s ${PREFIX}/lib/${MES_ARCH}-mes/ +# cp ${LIBDIR}/linux/${MES_ARCH}-mes/elf${ARCH_BITS}-footer-single-main.hex2 ${PREFIX}/lib/linux/${MES_ARCH}-mes/ +# cp ${LIBDIR}/linux/${MES_ARCH}-mes/elf${ARCH_BITS}-header.hex2 ${PREFIX}/lib/linux/${MES_ARCH}-mes/ # Install header files cp include/alloca.h ${INCDIR}/alloca.h @@ -372,23 +372,23 @@ cp include/sys/wait.h ${INCDIR}/sys/wait.h cd ../.. # Checksums -if match x${UPDATE_CHECKSUMS} xTrue; then - sha256sum -o ${pkg}.${ARCH}.checksums \ - /usr/bin/mes-m2 \ - /usr/bin/mescc.scm \ - /usr/lib/${MES_ARCH}-mes/crt1.s \ - /usr/lib/${MES_ARCH}-mes/crt1.o \ - /usr/lib/${MES_ARCH}-mes/${MES_ARCH}.M1 \ - /usr/lib/${MES_ARCH}-mes/libmescc.s \ - /usr/lib/${MES_ARCH}-mes/libc+tcc.s \ - /usr/lib/${MES_ARCH}-mes/libc.s \ - /usr/lib/${MES_ARCH}-mes/libmescc.a \ - /usr/lib/${MES_ARCH}-mes/libc+tcc.a \ - /usr/lib/${MES_ARCH}-mes/libc.a \ - /usr/lib/linux/${MES_ARCH}-mes/elf${ARCH_BITS}-header.hex2 \ - /usr/lib/linux/${MES_ARCH}-mes/elf${ARCH_BITS}-footer-single-main.hex2 - - cp ${pkg}.${ARCH}.checksums ${SRCDIR} -else - sha256sum -c ${pkg}.${ARCH}.checksums -fi +# if match x${UPDATE_CHECKSUMS} xTrue; then +# sha256sum -o ${pkg}.${ARCH}.checksums \ +# /usr/bin/mes-m2 \ +# /usr/bin/mescc.scm \ +# /usr/lib/${MES_ARCH}-mes/crt1.s \ +# /usr/lib/${MES_ARCH}-mes/crt1.o \ +# /usr/lib/${MES_ARCH}-mes/${MES_ARCH}.M1 \ +# /usr/lib/${MES_ARCH}-mes/libmescc.s \ +# /usr/lib/${MES_ARCH}-mes/libc+tcc.s \ +# /usr/lib/${MES_ARCH}-mes/libc.s \ +# /usr/lib/${MES_ARCH}-mes/libmescc.a \ +# /usr/lib/${MES_ARCH}-mes/libc+tcc.a \ +# /usr/lib/${MES_ARCH}-mes/libc.a \ +# /usr/lib/linux/${MES_ARCH}-mes/elf${ARCH_BITS}-header.hex2 \ +# /usr/lib/linux/${MES_ARCH}-mes/elf${ARCH_BITS}-footer-single-main.hex2 + +# cp ${pkg}.${ARCH}.checksums ${SRCDIR} +# else +# sha256sum -c ${pkg}.${ARCH}.checksums +# fi diff --git a/steps/tcc-0.9.26/pass1.kaem b/steps/tcc-0.9.26/pass1.kaem index 037f436a..e40c8f13 100755 --- a/steps/tcc-0.9.26/pass1.kaem +++ b/steps/tcc-0.9.26/pass1.kaem @@ -17,9 +17,12 @@ MES=${BINDIR}/mes-m2 TCC_TAR=tcc-0.9.26 TCC_PKG=tcc-0.9.26-1147-gee75a10c +PNUT_TAR=124cfae4bfafec24dfea65117d0a407078beb459 +PNUT_PKG=pnut-124cfae4bfafec24dfea65117d0a407078beb459 + # Check tarball checksums -checksum-transcriber sources -sha256sum -c sources.SHA256SUM +# checksum-transcriber sources +# sha256sum -c sources.SHA256SUM # Unpack mkdir build @@ -32,13 +35,25 @@ simple-patch ${TCC_PKG}/tcctools.c \ ../simple-patches/remove-fileopen.before ../simple-patches/remove-fileopen.after simple-patch ${TCC_PKG}/tcctools.c \ ../simple-patches/addback-fileopen.before ../simple-patches/addback-fileopen.after +# Patches required for pnut to compile tcc +simple-patch ${TCC_PKG}/tccpp.c \ + ../simple-patches/array_sizeof.before ../simple-patches/array_sizeof.after +simple-patch ${TCC_PKG}/libtcc.c \ + ../simple-patches/error_set_jmp_enabled.before ../simple-patches/error_set_jmp_enabled.after +simple-patch ${TCC_PKG}/libtcc.c \ + ../simple-patches/sscanf_TCC_VERSION.before ../simple-patches/sscanf_TCC_VERSION.after +simple-patch ${TCC_PKG}/tcc.h \ + ../simple-patches/undefine_TCC_IS_NATIVE.before ../simple-patches/undefine_TCC_IS_NATIVE.after untar --non-strict --file ${MES_PKG}.tar +# For some reason, the .tar.gz from github cannot be unpacked with ungz so it +# must be manually unzipped before build process. +untar --non-strict --file ${DISTFILES}/${PNUT_TAR}.tar + # Create config.h catm ${MES_PKG}/include/mes/config.h catm ${TCC_PKG}/config.h -cd ${TCC_PKG} if match ${ARCH} x86; then MES_ARCH=x86 @@ -56,43 +71,38 @@ if match ${ARCH} riscv64; then HAVE_LONG_LONG=1 fi - -${MES} --no-auto-compile -e main ${BINDIR}/mescc.scm -- \ - -S \ - -o tcc.s \ - -I ${INCDIR} \ - -D BOOTSTRAP=1 \ - -D HAVE_LONG_LONG=${HAVE_LONG_LONG} \ - -I . \ - -D TCC_TARGET_${TCC_TARGET_ARCH}=1 \ - -D inline= \ - -D CONFIG_TCCDIR=\"${LIBDIR}/tcc\" \ - -D CONFIG_SYSROOT=\"/\" \ - -D CONFIG_TCC_CRTPREFIX=\"${LIBDIR}\" \ - -D CONFIG_TCC_ELFINTERP=\"/mes/loader\" \ - -D CONFIG_TCC_SYSINCLUDEPATHS=\"${PREFIX}/include/mes\" \ - -D TCC_LIBGCC=\"${LIBDIR}/libc.a\" \ - -D CONFIG_TCC_LIBTCC1_MES=0 \ - -D CONFIG_TCCBOOT=1 \ - -D CONFIG_TCC_STATIC=1 \ - -D CONFIG_USE_LIBGCC=1 \ - -D TCC_VERSION=\"0.9.26\" \ - -D ONE_SOURCE=1 \ - tcc.c -${MES} --no-auto-compile -e main ${BINDIR}/mescc.scm -- \ - --base-address 0x08048000 \ - -o tcc-mes \ - -L ${LIBDIR} \ - tcc.s \ - -l c+tcc -cp tcc-mes ${BINDIR}/ -chmod 755 ${BINDIR}/tcc-mes - -# test tcc-mes -tcc-mes -version +# Ideally we'd build pnut-exe from pnut-sh.sh or from M2-Planet. +# For now, it's a precompiled seed that lives in the .tar. +cp ${PNUT_PKG}/pnut-exe ${BINDIR}/pnut-exe +chmod 755 ${BINDIR}/pnut-exe + +pnut-exe ${TCC_PKG}/tcc.c \ + -I ${PNUT_PKG}/portable_libc/include/ \ + -D BOOTSTRAP=1 \ + -D HAVE_LONG_LONG=0 \ + -D TCC_TARGET_${TCC_TARGET_ARCH}=1 \ + -D CONFIG_TCCDIR=\"${LIBDIR}/tcc\" \ + -D CONFIG_SYSROOT=\"/\" \ + -D CONFIG_TCC_CRTPREFIX=\"${LIBDIR}\" \ + -D CONFIG_TCC_ELFINTERP=\"/mes/loader\" \ + -D CONFIG_TCC_SYSINCLUDEPATHS=\"${PREFIX}/include/mes\" \ + -D TCC_LIBGCC=\"${LIBDIR}/libc.a\" \ + -D CONFIG_TCC_LIBTCC1_MES=0 \ + -D CONFIG_TCCBOOT=1 \ + -D CONFIG_TCC_STATIC=1 \ + -D CONFIG_USE_LIBGCC=1 \ + -D TCC_VERSION=\"0.9.26\" \ + -D ONE_SOURCE=1 \ + -o tcc-pnut + +cp tcc-pnut ${BINDIR}/tcc-pnut +chmod 755 ${BINDIR}/tcc-pnut + +# test tcc-pnut +tcc-pnut -version # Recompile the mes C library -cd ../${MES_PKG} +cd ${MES_PKG} # Create unified libc file cd lib @@ -100,41 +110,53 @@ catm ../unified-libc.c ctype/isalnum.c ctype/isalpha.c ctype/isascii.c ctype/isc cd .. # crt1.o -tcc-mes -c -D HAVE_CONFIG_H=1 -I include -I include/linux/${MES_ARCH} -o ${LIBDIR}/crt1.o lib/linux/${MES_ARCH}-mes-gcc/crt1.c +tcc-pnut -c -D HAVE_CONFIG_H=1 -I include -I include/linux/${MES_ARCH} -o ${LIBDIR}/crt1.o lib/linux/${MES_ARCH}-mes-gcc/crt1.c catm ${LIBDIR}/crtn.o catm ${LIBDIR}/crti.o if match ${ARCH} x86; then # crtn.o - tcc-mes -c -D HAVE_CONFIG_H=1 -I include -I include/linux/${MES_ARCH} -o ${LIBDIR}/crtn.o lib/linux/${MES_ARCH}-mes-gcc/crtn.c + tcc-pnut -c -D HAVE_CONFIG_H=1 -I include -I include/linux/${MES_ARCH} -o ${LIBDIR}/crtn.o lib/linux/${MES_ARCH}-mes-gcc/crtn.c # crti.o - tcc-mes -c -D HAVE_CONFIG_H=1 -I include -I include/linux/${MES_ARCH} -o ${LIBDIR}/crti.o lib/linux/${MES_ARCH}-mes-gcc/crti.c + tcc-pnut -c -D HAVE_CONFIG_H=1 -I include -I include/linux/${MES_ARCH} -o ${LIBDIR}/crti.o lib/linux/${MES_ARCH}-mes-gcc/crti.c fi # libc+gcc.a -tcc-mes -c -D HAVE_CONFIG_H=1 -I include -I include/linux/${MES_ARCH} -o unified-libc.o unified-libc.c -tcc-mes -ar cr ${LIBDIR}/libc.a unified-libc.o +tcc-pnut -c -D HAVE_CONFIG_H=1 -I include -I include/linux/${MES_ARCH} -o unified-libc.o unified-libc.c +tcc-pnut -ar cr ${LIBDIR}/libc.a unified-libc.o # libtcc1.a mkdir ${LIBDIR}/tcc -tcc-mes -c -D HAVE_CONFIG_H=1 -D HAVE_LONG_LONG=1 -D HAVE_FLOAT=1 -I include -I include/linux/${MES_ARCH} -o libtcc1.o lib/libtcc1.c +tcc-pnut -c -D HAVE_CONFIG_H=1 -D HAVE_LONG_LONG=1 -D HAVE_FLOAT=1 -I include -I include/linux/${MES_ARCH} -o libtcc1.o lib/libtcc1.c if match ${ARCH} riscv64; then - tcc-mes -c -D HAVE_CONFIG_H=1 -D HAVE_LONG_LONG=1 -D HAVE_FLOAT=1 -I include -I include/linux/${MES_ARCH} -o lib-arm64.o ../${TCC_PKG}/lib/lib-arm64.c - tcc-mes -ar cr ${LIBDIR}/tcc/libtcc1.a libtcc1.o lib-arm64.o + tcc-pnut -c -D HAVE_CONFIG_H=1 -D HAVE_LONG_LONG=1 -D HAVE_FLOAT=1 -I include -I include/linux/${MES_ARCH} -o lib-arm64.o ../${TCC_PKG}/lib/lib-arm64.c + tcc-pnut -ar cr ${LIBDIR}/tcc/libtcc1.a libtcc1.o lib-arm64.o else - tcc-mes -ar cr ${LIBDIR}/tcc/libtcc1.a libtcc1.o + tcc-pnut -ar cr ${LIBDIR}/tcc/libtcc1.a libtcc1.o fi # libgetopt.a -tcc-mes -c -D HAVE_CONFIG_H=1 -I include -I include/linux/${MES_ARCH} lib/posix/getopt.c -tcc-mes -ar cr ${LIBDIR}/libgetopt.a getopt.o +tcc-pnut -c -D HAVE_CONFIG_H=1 -I include -I include/linux/${MES_ARCH} lib/posix/getopt.c +tcc-pnut -ar cr ${LIBDIR}/libgetopt.a getopt.o -cd ../${TCC_PKG} +cd .. + +# Undo the pnut patches +simple-patch ${TCC_PKG}/tcc.h \ + ../simple-patches/undefine_TCC_IS_NATIVE.after ../simple-patches/undefine_TCC_IS_NATIVE.before +simple-patch ${TCC_PKG}/libtcc.c \ + ../simple-patches/sscanf_TCC_VERSION.after ../simple-patches/sscanf_TCC_VERSION.before +simple-patch ${TCC_PKG}/libtcc.c \ + ../simple-patches/error_set_jmp_enabled.after ../simple-patches/error_set_jmp_enabled.before +simple-patch ${TCC_PKG}/tccpp.c \ + ../simple-patches/array_sizeof.after ../simple-patches/array_sizeof.before + +cd ${TCC_PKG} # boot0 (ref comments here for all boot*) # compile -tcc-mes \ +tcc-pnut \ -g \ -v \ -static \ @@ -310,8 +332,7 @@ cd ../.. # Checksums if match x${UPDATE_CHECKSUMS} xTrue; then sha256sum -o ${pkg}.${ARCH}.checksums \ - /usr/bin/tcc-mes \ - /usr/bin/tcc-boot0 \ + /usr/bin/pnut-exe \ /usr/bin/tcc-boot1 \ /usr/bin/tcc \ /usr/lib/mes/libc.a \ @@ -325,3 +346,5 @@ if match x${UPDATE_CHECKSUMS} xTrue; then else sha256sum -c ${pkg}.${ARCH}.checksums fi + +exit 1 # Stop the execution so we can check the output diff --git a/steps/tcc-0.9.26/simple-patches/array_sizeof.after b/steps/tcc-0.9.26/simple-patches/array_sizeof.after new file mode 100644 index 00000000..8f8b6b5e --- /dev/null +++ b/steps/tcc-0.9.26/simple-patches/array_sizeof.after @@ -0,0 +1,5 @@ +#ifdef PNUT_CC + char buf1[1024]; +#else + char buf1[sizeof file->filename]; +#endif diff --git a/steps/tcc-0.9.26/simple-patches/array_sizeof.before b/steps/tcc-0.9.26/simple-patches/array_sizeof.before new file mode 100644 index 00000000..96b3c754 --- /dev/null +++ b/steps/tcc-0.9.26/simple-patches/array_sizeof.before @@ -0,0 +1 @@ + char buf1[sizeof file->filename]; diff --git a/steps/tcc-0.9.26/simple-patches/error_set_jmp_enabled.after b/steps/tcc-0.9.26/simple-patches/error_set_jmp_enabled.after new file mode 100644 index 00000000..ffb647b6 --- /dev/null +++ b/steps/tcc-0.9.26/simple-patches/error_set_jmp_enabled.after @@ -0,0 +1,3 @@ +#ifdef PNUT_CC + s1->error_set_jmp_enabled = 0; +#endif diff --git a/steps/tcc-0.9.26/simple-patches/error_set_jmp_enabled.before b/steps/tcc-0.9.26/simple-patches/error_set_jmp_enabled.before new file mode 100644 index 00000000..10aabde3 --- /dev/null +++ b/steps/tcc-0.9.26/simple-patches/error_set_jmp_enabled.before @@ -0,0 +1 @@ + s1->error_set_jmp_enabled = 1; diff --git a/steps/tcc-0.9.26/simple-patches/sscanf_TCC_VERSION.after b/steps/tcc-0.9.26/simple-patches/sscanf_TCC_VERSION.after new file mode 100644 index 00000000..b4f0920f --- /dev/null +++ b/steps/tcc-0.9.26/simple-patches/sscanf_TCC_VERSION.after @@ -0,0 +1,5 @@ +#ifdef PNUT_CC + a = 0; b = 9; c = 26; +#else + sscanf(TCC_VERSION, "%d.%d.%d", &a, &b, &c); +#endif diff --git a/steps/tcc-0.9.26/simple-patches/sscanf_TCC_VERSION.before b/steps/tcc-0.9.26/simple-patches/sscanf_TCC_VERSION.before new file mode 100644 index 00000000..5a97cd23 --- /dev/null +++ b/steps/tcc-0.9.26/simple-patches/sscanf_TCC_VERSION.before @@ -0,0 +1 @@ + sscanf(TCC_VERSION, "%d.%d.%d", &a, &b, &c); diff --git a/steps/tcc-0.9.26/simple-patches/undefine_TCC_IS_NATIVE.after b/steps/tcc-0.9.26/simple-patches/undefine_TCC_IS_NATIVE.after new file mode 100644 index 00000000..bf9b17ad --- /dev/null +++ b/steps/tcc-0.9.26/simple-patches/undefine_TCC_IS_NATIVE.after @@ -0,0 +1 @@ +#if defined _WIN32 == defined TCC_TARGET_PE && !defined PNUT_CC diff --git a/steps/tcc-0.9.26/simple-patches/undefine_TCC_IS_NATIVE.before b/steps/tcc-0.9.26/simple-patches/undefine_TCC_IS_NATIVE.before new file mode 100644 index 00000000..aca9a026 --- /dev/null +++ b/steps/tcc-0.9.26/simple-patches/undefine_TCC_IS_NATIVE.before @@ -0,0 +1 @@ +#if defined _WIN32 == defined TCC_TARGET_PE diff --git a/steps/tcc-0.9.26/sources b/steps/tcc-0.9.26/sources index 4b02f593..a2da674a 100644 --- a/steps/tcc-0.9.26/sources +++ b/steps/tcc-0.9.26/sources @@ -1 +1,3 @@ https://lilypond.org/janneke/tcc/tcc-0.9.26-1147-gee75a10c.tar.gz 6b8cbd0a5fed0636d4f0f763a603247bc1935e206e1cc5bda6a2818bab6e819f tcc-0.9.26.tar.gz +git://github.com/udem-dlteam/pnut.git~124cfae4bfafec24dfea65117d0a407078beb459 https://github.com/udem-dlteam/pnut/archive/124cfae4bfafec24dfea65117d0a407078beb459.tar.gz b7ef75c6b9d647cf91309f52b8b2edf4fb68c2e7cf6c6e7b8a387c9fa447cef0 +git://github.com/udem-dlteam/pnut.git~124cfae4bfafec24dfea65117d0a407078beb459 _ 8e82e3b0806abfe4db8224b2ca18cfee0353f1745b2554a24ba10236034f3f28 124cfae4bfafec24dfea65117d0a407078beb459.tar diff --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 index 24fcf67e..f7dd9e90 100644 --- 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,5 +1,4 @@ -096aa0aaf3d2d2742c45683edebbe3ed8ba61d587e1c610e04dab06715824e07 /usr/bin/tcc-mes -2f0209ee3bfe4c65b54c72fe7b5a4f9e85562c31b5b202301d07e040d1f34347 /usr/bin/tcc-boot0 +aec2fdd8babb30d4fe4779fcb3f3a76f6438477a01bdb590cae29c56d47355d3 /usr/bin/pnut-exe edc61c506e4e080ace481d0e2e68ce4e184145721d6e67aab5a9711a7a92695b /usr/bin/tcc-boot1 2204b4625e068b77aaeffc5f94e0ee12e6826c5f7f0639bb53932e2d625939d9 /usr/bin/tcc bcc6536a4bf27277a2a63430dbf59993dd380ce60ae2feb53dc5ffe5723f7345 /usr/lib/mes/libc.a