mirror of
https://github.com/fosslinux/live-bootstrap.git
synced 2026-03-04 10:25:25 +01:00
Remove the notion of "sys*"
- This idea originates from very early in the project and was, at the
time, a very easy way to categorise things.
- Now, it doesn't really make much sense - it is fairly arbitary, often
occuring when there is a change in kernel, but not from builder-hex0
to fiwix, and sysb is in reality completely unnecessary.
- In short, the sys* stuff is a bit of a mess that makes the project
more difficult to understand.
- This puts everything down into one folder and has a manifest file that
is used to generate the build scripts on the fly rather than using
coded scripts.
- This is created in the "seed" stage.
stage0-posix -- (calls) --> seed -- (generates) --> main steps
Alongside this change there are a variety of other smaller fixups to the
general structure of the live-bootstrap rootfs.
- Creating a rootfs has become much simpler and is defined as code in
go.sh. The new structure, for an about-to-be booted system, is
/
-- /steps (direct copy of steps/)
-- /distfiles (direct copy of distfiles/)
-- all files from seed/*
-- all files from seed/stage0-posix/*
- There is no longer such a thing as /usr/include/musl, this didn't
really make any sense, as musl is the final libc used. Rather, to
separate musl and mes, we have /usr/include/mes, which is much easier
to work with.
- This also makes mes easier to blow away later.
- A few things that weren't properly in packages have been changed;
checksum-transcriber, simple-patch, kexec-fiwix have all been given
fully qualified package names.
- Highly breaking change, scripts now exist in their package directory
but NOT WITH THE packagename.sh. Rather, they use pass1.sh, pass2.sh,
etc. This avoids manual definition of passes.
- Ditto with patches; default directory is patches, but then any patch
series specific to a pass are named patches-passX.
This commit is contained in:
parent
0907cfd073
commit
6ed2e09f3a
546 changed files with 700 additions and 1299 deletions
333
steps/tcc-0.9.26/pass1.kaem
Executable file
333
steps/tcc-0.9.26/pass1.kaem
Executable file
|
|
@ -0,0 +1,333 @@
|
|||
#!/bin/sh
|
||||
|
||||
# SPDX-FileCopyrightText: 2021-22 fosslinux <fosslinux@aussies.space>
|
||||
#
|
||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||
|
||||
set -ex
|
||||
|
||||
# Vars
|
||||
MES_STACK=15000000
|
||||
MES_ARENA=30000000
|
||||
MES_MAX_ARENA=30000000
|
||||
MES_LIB=${MES_PREFIX}/lib
|
||||
MES_SOURCE=${MES_PREFIX}
|
||||
MES=${BINDIR}/mes
|
||||
|
||||
TCC_TAR=tcc-0.9.26
|
||||
TCC_PKG=tcc-0.9.26-1147-gee75a10c
|
||||
|
||||
# Check tarball checksums
|
||||
checksum-transcriber sources
|
||||
sha256sum -c sources.SHA256SUM
|
||||
|
||||
# Unpack
|
||||
mkdir src build
|
||||
|
||||
cd src
|
||||
ungz --file ${DISTFILES}/${TCC_TAR}.tar.gz --output ${TCC_TAR}.tar
|
||||
ungz --file ${DISTFILES}/${MES_PKG}.tar.gz --output ${MES_PKG}.tar
|
||||
cd ..
|
||||
|
||||
cd build
|
||||
untar --non-strict --file ../src/${TCC_TAR}.tar
|
||||
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
|
||||
|
||||
untar --non-strict --file ../src/${MES_PKG}.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
|
||||
TCC_TARGET_ARCH=I386
|
||||
MES_LIBC_SUFFIX=gcc
|
||||
HAVE_LONG_LONG=0
|
||||
fi
|
||||
if match ${ARCH} amd64; then
|
||||
MES_ARCH=x86_64
|
||||
TCC_TARGET_ARCH=X86_64
|
||||
MES_LIBC_SUFFIX=gcc
|
||||
HAVE_LONG_LONG=1
|
||||
fi
|
||||
if match ${ARCH} riscv64; then
|
||||
MES_ARCH=riscv64
|
||||
TCC_TARGET_ARCH=RISCV64
|
||||
MES_LIBC_SUFFIX=tcc
|
||||
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
|
||||
|
||||
# Recompile the mes C library
|
||||
cd ../${MES_PKG}
|
||||
|
||||
# Create unified libc file
|
||||
cd lib
|
||||
catm ../unified-libc.c ctype/isalnum.c ctype/isalpha.c ctype/isascii.c ctype/iscntrl.c ctype/isdigit.c ctype/isgraph.c ctype/islower.c ctype/isnumber.c ctype/isprint.c ctype/ispunct.c ctype/isspace.c ctype/isupper.c ctype/isxdigit.c ctype/tolower.c ctype/toupper.c dirent/closedir.c dirent/__getdirentries.c dirent/opendir.c dirent/readdir.c linux/access.c linux/brk.c linux/chdir.c linux/chmod.c linux/clock_gettime.c linux/close.c linux/dup2.c linux/dup.c linux/execve.c linux/fcntl.c linux/fork.c linux/fsync.c linux/fstat.c linux/_getcwd.c linux/getdents.c linux/getegid.c linux/geteuid.c linux/getgid.c linux/getpid.c linux/getppid.c linux/getrusage.c linux/gettimeofday.c linux/getuid.c linux/ioctl.c linux/ioctl3.c linux/kill.c linux/link.c linux/lseek.c linux/lstat.c linux/malloc.c linux/mkdir.c linux/mknod.c linux/nanosleep.c linux/_open3.c linux/pipe.c linux/_read.c linux/readlink.c linux/rename.c linux/rmdir.c linux/setgid.c linux/settimer.c linux/setuid.c linux/signal.c linux/sigprogmask.c linux/symlink.c linux/stat.c linux/time.c linux/unlink.c linux/waitpid.c linux/wait4.c linux/${MES_ARCH}-mes-${MES_LIBC_SUFFIX}/_exit.c linux/${MES_ARCH}-mes-${MES_LIBC_SUFFIX}/syscall.c linux/${MES_ARCH}-mes-${MES_LIBC_SUFFIX}/_write.c math/ceil.c math/fabs.c math/floor.c mes/abtod.c mes/abtol.c mes/__assert_fail.c mes/assert_msg.c mes/__buffered_read.c mes/__init_io.c mes/cast.c mes/dtoab.c mes/eputc.c mes/eputs.c mes/fdgetc.c mes/fdgets.c mes/fdputc.c mes/fdputs.c mes/fdungetc.c mes/globals.c mes/itoa.c mes/ltoab.c mes/ltoa.c mes/__mes_debug.c mes/mes_open.c mes/ntoab.c mes/oputc.c mes/oputs.c mes/search-path.c mes/ultoa.c mes/utoa.c posix/alarm.c posix/buffered-read.c posix/execl.c posix/execlp.c posix/execv.c posix/execvp.c posix/getcwd.c posix/getenv.c posix/isatty.c posix/mktemp.c posix/open.c posix/raise.c posix/sbrk.c posix/setenv.c posix/sleep.c posix/unsetenv.c posix/wait.c posix/write.c stdio/clearerr.c stdio/fclose.c stdio/fdopen.c stdio/feof.c stdio/ferror.c stdio/fflush.c stdio/fgetc.c stdio/fgets.c stdio/fileno.c stdio/fopen.c stdio/fprintf.c stdio/fputc.c stdio/fputs.c stdio/fread.c stdio/freopen.c stdio/fscanf.c stdio/fseek.c stdio/ftell.c stdio/fwrite.c stdio/getc.c stdio/getchar.c stdio/perror.c stdio/printf.c stdio/putc.c stdio/putchar.c stdio/remove.c stdio/snprintf.c stdio/sprintf.c stdio/sscanf.c stdio/ungetc.c stdio/vfprintf.c stdio/vfscanf.c stdio/vprintf.c stdio/vsnprintf.c stdio/vsprintf.c stdio/vsscanf.c stdlib/abort.c stdlib/abs.c stdlib/alloca.c stdlib/atexit.c stdlib/atof.c stdlib/atoi.c stdlib/atol.c stdlib/calloc.c stdlib/__exit.c stdlib/exit.c stdlib/free.c stdlib/mbstowcs.c stdlib/puts.c stdlib/qsort.c stdlib/realloc.c stdlib/strtod.c stdlib/strtof.c stdlib/strtol.c stdlib/strtold.c stdlib/strtoll.c stdlib/strtoul.c stdlib/strtoull.c string/bcmp.c string/bcopy.c string/bzero.c string/index.c string/memchr.c string/memcmp.c string/memcpy.c string/memmem.c string/memmove.c string/memset.c string/rindex.c string/strcat.c string/strchr.c string/strcmp.c string/strcpy.c string/strcspn.c string/strdup.c string/strerror.c string/strlen.c string/strlwr.c string/strncat.c string/strncmp.c string/strncpy.c string/strpbrk.c string/strrchr.c string/strspn.c string/strstr.c string/strupr.c stub/atan2.c stub/bsearch.c stub/chown.c stub/__cleanup.c stub/cos.c stub/ctime.c stub/exp.c stub/fpurge.c stub/freadahead.c stub/frexp.c stub/getgrgid.c stub/getgrnam.c stub/getlogin.c stub/getpgid.c stub/getpgrp.c stub/getpwnam.c stub/getpwuid.c stub/gmtime.c stub/ldexp.c stub/localtime.c stub/log.c stub/mktime.c stub/modf.c stub/mprotect.c stub/pclose.c stub/popen.c stub/pow.c stub/rand.c stub/rewind.c stub/setbuf.c stub/setgrent.c stub/setlocale.c stub/setvbuf.c stub/sigaction.c stub/sigaddset.c stub/sigblock.c stub/sigdelset.c stub/sigemptyset.c stub/sigsetmask.c stub/sin.c stub/sys_siglist.c stub/system.c stub/sqrt.c stub/strftime.c stub/times.c stub/ttyname.c stub/umask.c stub/utime.c ${MES_ARCH}-mes-${MES_LIBC_SUFFIX}/setjmp.c
|
||||
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-${MES_LIBC_SUFFIX}/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
|
||||
|
||||
# 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
|
||||
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
|
||||
|
||||
# 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
|
||||
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
|
||||
else
|
||||
tcc-mes -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
|
||||
|
||||
cd ../${TCC_PKG}
|
||||
|
||||
# boot0 (ref comments here for all boot*)
|
||||
# compile
|
||||
tcc-mes \
|
||||
-g \
|
||||
-v \
|
||||
-static \
|
||||
-o tcc-boot0 \
|
||||
-D BOOTSTRAP=1 \
|
||||
-D HAVE_FLOAT=1 \
|
||||
-D HAVE_BITFIELD=1 \
|
||||
-D HAVE_LONG_LONG=1 \
|
||||
-D HAVE_SETJMP=1 \
|
||||
-I . \
|
||||
-I ${PREFIX}/include/mes \
|
||||
-D TCC_TARGET_${TCC_TARGET_ARCH}=1 \
|
||||
-D CONFIG_TCCDIR=\"${LIBDIR}/tcc\" \
|
||||
-D CONFIG_TCC_CRTPREFIX=\"${LIBDIR}\" \
|
||||
-D CONFIG_TCC_ELFINTERP=\"/mes/loader\" \
|
||||
-D CONFIG_TCC_LIBPATHS=\"${LIBDIR}:${LIBDIR}/tcc\" \
|
||||
-D CONFIG_TCC_SYSINCLUDEPATHS=\"${PREFIX}/include/mes\" \
|
||||
-D TCC_LIBGCC=\"${LIBDIR}/libc.a\" \
|
||||
-D TCC_LIBTCC1=\"libtcc1.a\" \
|
||||
-D CONFIG_TCCBOOT=1 \
|
||||
-D CONFIG_TCC_STATIC=1 \
|
||||
-D CONFIG_USE_LIBGCC=1 \
|
||||
-D TCC_VERSION=\"0.9.26\" \
|
||||
-D ONE_SOURCE=1 \
|
||||
-L . \
|
||||
-L ${LIBDIR} \
|
||||
tcc.c
|
||||
# Install
|
||||
cp tcc-boot0 ${BINDIR}/
|
||||
chmod 755 ${BINDIR}/tcc-boot0
|
||||
cd ../${MES_PKG}
|
||||
# Recompile libc: crt{1,n,i}, libtcc.a, libc.a
|
||||
tcc-boot0 -c -D HAVE_CONFIG_H=1 -I include -I include/linux/${MES_ARCH} -o ${LIBDIR}/crt1.o lib/linux/${MES_ARCH}-mes-${MES_LIBC_SUFFIX}/crt1.c
|
||||
if match ${ARCH} x86; then
|
||||
tcc-boot0 -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-boot0 -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
|
||||
|
||||
tcc-boot0 -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-boot0 -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-boot0 -ar cr ${LIBDIR}/tcc/libtcc1.a libtcc1.o lib-arm64.o
|
||||
else
|
||||
tcc-boot0 -ar cr ${LIBDIR}/tcc/libtcc1.a libtcc1.o
|
||||
fi
|
||||
|
||||
tcc-boot0 -c -D HAVE_CONFIG_H=1 -I include -I include/linux/${MES_ARCH} -o unified-libc.o unified-libc.c
|
||||
tcc-boot0 -ar cr ${LIBDIR}/libc.a unified-libc.o
|
||||
cd ../${TCC_PKG}
|
||||
|
||||
# Test boot0
|
||||
tcc-boot0 -version
|
||||
|
||||
# boot1
|
||||
tcc-boot0 \
|
||||
-g \
|
||||
-v \
|
||||
-static \
|
||||
-o tcc-boot1 \
|
||||
-D BOOTSTRAP=1 \
|
||||
-D HAVE_FLOAT=1 \
|
||||
-D HAVE_BITFIELD=1 \
|
||||
-D HAVE_LONG_LONG=1 \
|
||||
-D HAVE_SETJMP=1 \
|
||||
-I . \
|
||||
-I ${PREFIX}/include/mes \
|
||||
-D TCC_TARGET_${TCC_TARGET_ARCH}=1 \
|
||||
-D CONFIG_TCCDIR=\"${LIBDIR}/tcc\" \
|
||||
-D CONFIG_TCC_CRTPREFIX=\"${LIBDIR}\" \
|
||||
-D CONFIG_TCC_ELFINTERP=\"/mes/loader\" \
|
||||
-D CONFIG_TCC_LIBPATHS=\"${LIBDIR}:${LIBDIR}/tcc\" \
|
||||
-D CONFIG_TCC_SYSINCLUDEPATHS=\"${PREFIX}/include/mes\" \
|
||||
-D TCC_LIBGCC=\"${LIBDIR}/libc.a\" \
|
||||
-D TCC_LIBTCC1=\"libtcc1.a\" \
|
||||
-D CONFIG_TCCBOOT=1 \
|
||||
-D CONFIG_TCC_STATIC=1 \
|
||||
-D CONFIG_USE_LIBGCC=1 \
|
||||
-D TCC_VERSION=\"0.9.26\" \
|
||||
-D ONE_SOURCE=1 \
|
||||
-L . \
|
||||
tcc.c
|
||||
cp tcc-boot1 ${BINDIR}
|
||||
chmod 755 ${BINDIR}/tcc-boot1
|
||||
cd ../${MES_PKG}
|
||||
tcc-boot1 -c -D HAVE_CONFIG_H=1 -I include -I include/linux/${MES_ARCH} -o ${LIBDIR}/crt1.o lib/linux/${MES_ARCH}-mes-${MES_LIBC_SUFFIX}/crt1.c
|
||||
if match ${ARCH} x86; then
|
||||
tcc-boot1 -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-boot1 -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
|
||||
|
||||
tcc-boot1 -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-boot1 -c -D HAVE_CONFIG_H=1 -I include -I include/linux/${MES_ARCH} -o lib-arm64.o ../${TCC_PKG}/lib/lib-arm64.c
|
||||
tcc-boot1 -ar cr ${LIBDIR}/tcc/libtcc1.a libtcc1.o lib-arm64.o
|
||||
else
|
||||
tcc-boot1 -ar cr ${LIBDIR}/tcc/libtcc1.a libtcc1.o
|
||||
fi
|
||||
|
||||
tcc-boot1 -c -D HAVE_CONFIG_H=1 -I include -I include/linux/${MES_ARCH} -o unified-libc.o unified-libc.c
|
||||
tcc-boot1 -ar cr ${LIBDIR}/libc.a unified-libc.o
|
||||
cd ../${TCC_PKG}
|
||||
|
||||
# Test boot1
|
||||
tcc-boot1 -version
|
||||
|
||||
# boot2
|
||||
tcc-boot1 \
|
||||
-g \
|
||||
-v \
|
||||
-static \
|
||||
-o tcc-boot2 \
|
||||
-D BOOTSTRAP=1 \
|
||||
-D HAVE_BITFIELD=1 \
|
||||
-D HAVE_FLOAT=1 \
|
||||
-D HAVE_LONG_LONG=1 \
|
||||
-D HAVE_SETJMP=1 \
|
||||
-I . \
|
||||
-I ${PREFIX}/include/mes \
|
||||
-D TCC_TARGET_${TCC_TARGET_ARCH}=1 \
|
||||
-D CONFIG_TCCDIR=\"${LIBDIR}/tcc\" \
|
||||
-D CONFIG_TCC_CRTPREFIX=\"${LIBDIR}\" \
|
||||
-D CONFIG_TCC_ELFINTERP=\"/mes/loader\" \
|
||||
-D CONFIG_TCC_LIBPATHS=\"${LIBDIR}:${LIBDIR}/tcc\" \
|
||||
-D CONFIG_TCC_SYSINCLUDEPATHS=\"${PREFIX}/include/mes\" \
|
||||
-D TCC_LIBGCC=\"${LIBDIR}/libc.a\" \
|
||||
-D TCC_LIBTCC1=\"libtcc1.a\" \
|
||||
-D CONFIG_TCCBOOT=1 \
|
||||
-D CONFIG_TCC_STATIC=1 \
|
||||
-D CONFIG_USE_LIBGCC=1 \
|
||||
-D TCC_VERSION=\"0.9.26\" \
|
||||
-D ONE_SOURCE=1 \
|
||||
-L . \
|
||||
tcc.c
|
||||
cp tcc-boot2 ${BINDIR}
|
||||
chmod 755 ${BINDIR}/tcc-boot2
|
||||
cd ../${MES_PKG}
|
||||
tcc-boot2 -c -D HAVE_CONFIG_H=1 -I include -I include/linux/${MES_ARCH} -o ${LIBDIR}/crt1.o lib/linux/${MES_ARCH}-mes-${MES_LIBC_SUFFIX}/crt1.c
|
||||
if match ${ARCH} x86; then
|
||||
tcc-boot2 -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-boot2 -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
|
||||
|
||||
tcc-boot2 -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-boot2 -c -D HAVE_CONFIG_H=1 -I include -I include/linux/${MES_ARCH} -o lib-arm64.o ../${TCC_PKG}/lib/lib-arm64.c
|
||||
tcc-boot2 -ar cr ${LIBDIR}/tcc/libtcc1.a libtcc1.o lib-arm64.o
|
||||
else
|
||||
tcc-boot2 -ar cr ${LIBDIR}/tcc/libtcc1.a libtcc1.o
|
||||
fi
|
||||
|
||||
tcc-boot2 -c -D HAVE_CONFIG_H=1 -I include -I include/linux/${MES_ARCH} -o unified-libc.o unified-libc.c
|
||||
tcc-boot2 -ar cr ${LIBDIR}/libc.a unified-libc.o
|
||||
cd ../${TCC_PKG}
|
||||
|
||||
# Test boot2
|
||||
tcc-boot2 -version
|
||||
|
||||
# We have our final tcc 0.9.26!
|
||||
cp ${BINDIR}/tcc-boot2 ${BINDIR}/tcc
|
||||
chmod 755 ${BINDIR}/tcc
|
||||
rm ${BINDIR}/tcc-boot2
|
||||
cp ${BINDIR}/tcc ${BINDIR}/tcc-0.9.26
|
||||
chmod 755 ${BINDIR}/tcc-0.9.26
|
||||
|
||||
# Also recompile getopt, we don't need to do this during the boot* stages
|
||||
# because nothing is linked against it
|
||||
cd ../${MES_PKG}
|
||||
tcc -c -D HAVE_CONFIG_H=1 -I include -I include/linux/${MES_ARCH} lib/posix/getopt.c
|
||||
tcc -ar cr ${LIBDIR}/libgetopt.a getopt.o
|
||||
|
||||
cd ../..
|
||||
|
||||
# Checksums
|
||||
if match x${UPDATE_CHECKSUMS} xTrue; then
|
||||
sha256sum -o ${pkg}.checksums \
|
||||
/usr/bin/tcc-mes \
|
||||
/usr/bin/tcc-boot0 \
|
||||
/usr/bin/tcc-boot1 \
|
||||
/usr/bin/tcc \
|
||||
/usr/lib/mes/libc.a \
|
||||
/usr/lib/mes/libgetopt.a \
|
||||
/usr/lib/mes/crt1.o \
|
||||
/usr/lib/mes/crti.o \
|
||||
/usr/lib/mes/crtn.o \
|
||||
/usr/lib/mes/tcc/libtcc1.a
|
||||
|
||||
cp ${pkg}.checksums ${SRCDIR}
|
||||
else
|
||||
sha256sum -c ${pkg}.${ARCH}.checksums
|
||||
fi
|
||||
7
steps/tcc-0.9.26/simple-patches/addback-fileopen.after
Normal file
7
steps/tcc-0.9.26/simple-patches/addback-fileopen.after
Normal file
|
|
@ -0,0 +1,7 @@
|
|||
if ((fh = fopen(argv[i_lib], "wb")) == NULL)
|
||||
{
|
||||
fprintf(stderr, "tcc: ar: can't open file %s \n", argv[i_lib]);
|
||||
goto the_end;
|
||||
}
|
||||
|
||||
// write header
|
||||
1
steps/tcc-0.9.26/simple-patches/addback-fileopen.before
Normal file
1
steps/tcc-0.9.26/simple-patches/addback-fileopen.before
Normal file
|
|
@ -0,0 +1 @@
|
|||
// write header
|
||||
2
steps/tcc-0.9.26/simple-patches/remove-fileopen.after
Normal file
2
steps/tcc-0.9.26/simple-patches/remove-fileopen.after
Normal file
|
|
@ -0,0 +1,2 @@
|
|||
if (ret == 1)
|
||||
return ar_usage(ret);
|
||||
8
steps/tcc-0.9.26/simple-patches/remove-fileopen.before
Normal file
8
steps/tcc-0.9.26/simple-patches/remove-fileopen.before
Normal file
|
|
@ -0,0 +1,8 @@
|
|||
if (ret == 1)
|
||||
return ar_usage(ret);
|
||||
|
||||
if ((fh = fopen(argv[i_lib], "wb")) == NULL)
|
||||
{
|
||||
fprintf(stderr, "tcc: ar: can't open file %s \n", argv[i_lib]);
|
||||
goto the_end;
|
||||
}
|
||||
1
steps/tcc-0.9.26/sources
Normal file
1
steps/tcc-0.9.26/sources
Normal file
|
|
@ -0,0 +1 @@
|
|||
https://lilypond.org/janneke/tcc/tcc-0.9.26-1147-gee75a10c.tar.gz 6b8cbd0a5fed0636d4f0f763a603247bc1935e206e1cc5bda6a2818bab6e819f tcc-0.9.26.tar.gz
|
||||
10
steps/tcc-0.9.26/tcc-0.9.26.riscv64.checksums
Normal file
10
steps/tcc-0.9.26/tcc-0.9.26.riscv64.checksums
Normal file
|
|
@ -0,0 +1,10 @@
|
|||
22c74eec2ee1694247fae2958979c2326bab41ecbf5ba279b38417f63bf8892d /usr/bin/tcc-mes
|
||||
4aff7e61488c03322a682a086405831aa4d99681b2761ddc8b0a76888395a11b /usr/bin/tcc-boot0
|
||||
9973b5e730c0b9d65aa0ad2332a51adbb247546478d2e86697bba6de4f2f03fc /usr/bin/tcc-boot1
|
||||
5b5b131cc6bb7f62b11bc99092a1e48c2975af00c7d22fb52de5f561dbdc749a /usr/bin/tcc
|
||||
93fbb5473bfaf2abaf6598a21dd5f0ac3c6237bfa15bc0c85328608233de55bc /usr/lib/mes/libc.a
|
||||
98e2d2d543a113c82c8de39f32d4d43b1fe7f3159c5956c5e3224e7f4162601f /usr/lib/mes/libgetopt.a
|
||||
c05ad094fbadc8914806566c4ee512c6deb92b2b8d33325a607c3577826b8a54 /usr/lib/mes/crt1.o
|
||||
e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 /usr/lib/mes/crti.o
|
||||
e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 /usr/lib/mes/crtn.o
|
||||
ec63d619a871831066e028e63a5b9e48ceeeffee91d9556bfcc41724d59bd3f8 /usr/lib/mes/tcc/libtcc1.a
|
||||
10
steps/tcc-0.9.26/tcc-0.9.26.x86.checksums
Normal file
10
steps/tcc-0.9.26/tcc-0.9.26.x86.checksums
Normal file
|
|
@ -0,0 +1,10 @@
|
|||
df26fbd23970aabf234c4788079a48f12b6ca371edf35108d91b6a48df6123e1 /usr/bin/tcc-mes
|
||||
bf1740e71fc255b9debb5dc8211ea640c7a7fcf46b20c81657dcfa4fb4de3d07 /usr/bin/tcc-boot0
|
||||
627e9263fb7746a0356937d514cf4eb2fb688b36c8a4101a35f62c55e246c3a1 /usr/bin/tcc-boot1
|
||||
dca963a46a4b9828bb279201486a90b2f6db8aa6ff2cbb270f2c9838f8af9fdd /usr/bin/tcc
|
||||
3bfd10dfe347c4fb40fbf5f2f705cd806c77e0f80cf4ad1ecfd4beddada2937c /usr/lib/mes/libc.a
|
||||
12c07ae103e7e3b390150a79e5c600d88de14e9bb73a066f6342582729ef5a3f /usr/lib/mes/libgetopt.a
|
||||
76d280e0733f2c84aad180968167d789a825ac56526bddba4f100d6d74851027 /usr/lib/mes/crt1.o
|
||||
09d4f9821a2566f7e56381a19259c41bd97f3c5ed83f490705acbfd1139a7736 /usr/lib/mes/crti.o
|
||||
461ca1494737fab86fe1c1d3addeaf9d0ece413e353abcdea8674db3f700cda3 /usr/lib/mes/crtn.o
|
||||
136f97c356445ef95c35ae1b6fb2f7a0546e3cf47b45cb4ee79d0a8f29cd04b4 /usr/lib/mes/tcc/libtcc1.a
|
||||
Loading…
Add table
Add a link
Reference in a new issue