diff --git a/sysa/mes-0.24.2/mes-0.24.2.kaem b/sysa/mes-0.24.2/mes-0.24.2.kaem index 470be5e..0b460d3 100755 --- a/sysa/mes-0.24.2/mes-0.24.2.kaem +++ b/sysa/mes-0.24.2/mes-0.24.2.kaem @@ -14,6 +14,15 @@ MES_STACK=6000000 MES=${bindir}/mes-m2 libdir=${MES_PREFIX}/lib +if match ${ARCH} x86; then + MES_ARCH=x86 + ARCH_BITS=32 +fi +if match ${ARCH} amd64; then + MES_ARCH=x86_64 + ARCH_BITS=64 +fi + # Check tarball checksums checksum-transcriber sources sha256sum -c sources.SHA256SUM @@ -37,8 +46,8 @@ cp ../files/config.h ${MES_PREFIX}/include/mes cd ${MES_PREFIX} mkdir include/arch -cp include/linux/x86/syscall.h include/arch/syscall.h -cp include/linux/x86/kernel-stat.h include/arch/kernel-stat.h +cp include/linux/${MES_ARCH}/syscall.h include/arch/syscall.h +cp include/linux/${MES_ARCH}/kernel-stat.h include/arch/kernel-stat.h # Remove pregenerated files rm mes/module/mes/psyntax.pp mes/module/mes/psyntax.pp.header @@ -48,9 +57,9 @@ 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 # Fixes to support newer M2-Planet -catm x86_defs.M1 /M2libc/x86/x86_defs.M1 lib/m2/x86/x86_defs.M1 -cp x86_defs.M1 lib/m2/x86/x86_defs.M1 -rm x86_defs.M1 +catm ${MES_ARCH}_defs.M1 /M2libc/${MES_ARCH}/${MES_ARCH}_defs.M1 lib/m2/${MES_ARCH}/${MES_ARCH}_defs.M1 +cp ${MES_ARCH}_defs.M1 lib/m2/${MES_ARCH}/${MES_ARCH}_defs.M1 +rm ${MES_ARCH}_defs.M1 # Build mes-m2 kaem --verbose --strict --file kaem.run @@ -71,28 +80,28 @@ 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/x86 -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/x86-mes-mescc/crt1.c +mescc lib/linux/${MES_ARCH}-mes-mescc/crt1.c # Now for libc-mini.a mescc lib/mes/eputs.c mescc lib/mes/oputs.c mescc lib/mes/globals.c mescc lib/stdlib/exit.c -mescc lib/linux/x86-mes-mescc/_exit.c -mescc lib/linux/x86-mes-mescc/_write.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 mescc lib/mes/mini-write.c -catm ${libdir}/x86-mes/libc-mini.a eputs.o oputs.o globals.o exit.o _exit.o _write.o puts.o strlen.o mini-write.o -catm ${libdir}/x86-mes/libc-mini.s eputs.s oputs.s globals.s exit.s _exit.s _write.s puts.s strlen.s mini-write.s +catm ${libdir}/${MES_ARCH}-mes/libc-mini.a eputs.o oputs.o globals.o exit.o _exit.o _write.o puts.o strlen.o mini-write.o +catm ${libdir}/${MES_ARCH}-mes/libc-mini.s eputs.s oputs.s globals.s exit.s _exit.s _write.s puts.s strlen.s mini-write.s # libmescc.a -mescc lib/linux/x86-mes-mescc/syscall-internal.c -catm ${libdir}/x86-mes/libmescc.a globals.o syscall-internal.o -catm ${libdir}/x86-mes/libmescc.s globals.s syscall-internal.s +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 # libc.a mescc lib/ctype/isnumber.c @@ -166,11 +175,11 @@ mescc lib/linux/_read.c mescc lib/linux/time.c mescc lib/linux/unlink.c mescc lib/linux/waitpid.c -mescc lib/linux/x86-mes-mescc/syscall.c +mescc lib/linux/${MES_ARCH}-mes-mescc/syscall.c mescc lib/linux/getpid.c mescc lib/linux/kill.c -catm ${libdir}/x86-mes/libc.a 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 fgetc.o fputc.o fputs.o getc.o getchar.o putc.o putchar.o ungetc.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 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 time.o unlink.o waitpid.o syscall.o getpid.o kill.o -catm ${libdir}/x86-mes/libc.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 fgetc.s fputc.s fputs.s getc.s getchar.s putc.s putchar.s ungetc.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 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 time.s unlink.s waitpid.s syscall.s getpid.s kill.s +catm ${libdir}/${MES_ARCH}-mes/libc.a 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 fgetc.o fputc.o fputs.o getc.o getchar.o putc.o putchar.o ungetc.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 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 time.o unlink.o waitpid.o syscall.o getpid.o kill.o +catm ${libdir}/${MES_ARCH}-mes/libc.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 fgetc.s fputc.s fputs.s getc.s getchar.s putc.s putchar.s ungetc.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 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 time.s unlink.s waitpid.s syscall.s getpid.s kill.s # libc+tcc.a mescc lib/ctype/islower.c @@ -223,12 +232,12 @@ mescc lib/stub/ldexp.c mescc lib/stub/mprotect.c mescc lib/stub/localtime.c mescc lib/stub/sigemptyset.c -mescc lib/x86-mes-mescc/setjmp.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}/x86-mes/libc+tcc.a ${libdir}/x86-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 calloc.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}/x86-mes/libc+tcc.s ${libdir}/x86-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 calloc.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 ${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 calloc.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 calloc.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 # Build mes itself mescc src/builtins.c @@ -256,20 +265,20 @@ ${MES} -e main ${mescc_scm} -- --base-address 0x08048000 -L ${libdir} -nostdlib # Make directories mkdir ${prefix}/lib/linux ${incdir}/mes ${incdir}/sys ${incdir}/linux ${incdir}/arch -mkdir ${prefix}/lib/x86-mes ${prefix}/lib/linux/x86-mes ${incdir}/linux/x86 +mkdir ${prefix}/lib/${MES_ARCH}-mes ${prefix}/lib/linux/${MES_ARCH}-mes ${incdir}/linux/${MES_ARCH} # Install libraries -cp ${libdir}/x86-mes/libc.a ${prefix}/lib/x86-mes/ -cp ${libdir}/x86-mes/libc+tcc.a ${prefix}/lib/x86-mes/ -cp ${libdir}/x86-mes/libmescc.a ${prefix}/lib/x86-mes/ -cp ${libdir}/x86-mes/libc.s ${prefix}/lib/x86-mes/ -cp ${libdir}/x86-mes/libc+tcc.s ${prefix}/lib/x86-mes/ -cp ${libdir}/x86-mes/libmescc.s ${prefix}/lib/x86-mes/ -cp ${libdir}/x86-mes/x86.M1 ${prefix}/lib/x86-mes/ -cp crt1.o ${prefix}/lib/x86-mes/ -cp crt1.s ${prefix}/lib/x86-mes/ -cp ${libdir}/linux/x86-mes/elf32-footer-single-main.hex2 ${prefix}/lib/linux/x86-mes/ -cp ${libdir}/linux/x86-mes/elf32-header.hex2 ${prefix}/lib/linux/x86-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 crt1.o ${prefix}/lib/${MES_ARCH}-mes/ +cp 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 @@ -313,7 +322,7 @@ cp include/arch/kernel-stat.h ${incdir}/arch/kernel-stat.h cp include/arch/syscall.h ${incdir}/arch/syscall.h cp include/linux/syscall.h ${incdir}/linux/syscall.h -cp include/linux/x86/syscall.h ${incdir}/linux/x86/syscall.h +cp include/linux/${MES_ARCH}/syscall.h ${incdir}/linux/${MES_ARCH}/syscall.h cp include/mes/builtins.h ${incdir}/mes/builtins.h cp include/mes/cc.h ${incdir}/mes/cc.h @@ -349,17 +358,17 @@ if match x${UPDATE_CHECKSUMS} xTrue; then /usr/bin/mes \ /usr/bin/mes-m2 \ /usr/bin/mescc.scm \ - /usr/lib/x86-mes/crt1.s \ - /usr/lib/x86-mes/crt1.o \ - /usr/lib/x86-mes/x86.M1 \ - /usr/lib/x86-mes/libmescc.s \ - /usr/lib/x86-mes/libc+tcc.s \ - /usr/lib/x86-mes/libc.s \ - /usr/lib/x86-mes/libmescc.a \ - /usr/lib/x86-mes/libc+tcc.a \ - /usr/lib/x86-mes/libc.a \ - /usr/lib/linux/x86-mes/elf32-header.hex2 \ - /usr/lib/linux/x86-mes/elf32-footer-single-main.hex2 + /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}.checksums ${srcdir} else