Add tcc 0.9.27

This is the final tcc.
This commit is contained in:
fosslinux 2021-01-10 19:42:58 +11:00
parent a527dae4bd
commit 1ebbd69c79
5 changed files with 65 additions and 10 deletions

3
.gitmodules vendored
View File

@ -19,3 +19,6 @@
[submodule "sysa/mescc-tools-patched"] [submodule "sysa/mescc-tools-patched"]
path = sysa/mescc-tools-patched path = sysa/mescc-tools-patched
url = https://github.com/oriansj/mescc-tools url = https://github.com/oriansj/mescc-tools
[submodule "sysa/tcc-0.9.27"]
path = sysa/tcc-0.9.27
url = git://repo.or.cz/tinycc.git

View File

@ -36,7 +36,6 @@ ln -s . tmp/after/lib/x86-mes
ln -s . tmp/after/lib/linux/x86-mes ln -s . tmp/after/lib/linux/x86-mes
mkdir tmp/after/include/{mes,gnu,linux,sys,mach} mkdir tmp/after/include/{mes,gnu,linux,sys,mach}
mkdir tmp/after/include/linux/{x86,x86_64} mkdir tmp/after/include/linux/{x86,x86_64}
# put all the kaems for after in
cp after.kaem tmp/ cp after.kaem tmp/
cp after.kaem.run tmp/after/kaem.run cp after.kaem.run tmp/after/kaem.run
@ -61,11 +60,13 @@ cp mes-files/config.h tmp/after/mes/include/mes/
cp mes-files/config.h tmp/after/tcc-mes/include/mes/ cp mes-files/config.h tmp/after/tcc-mes/include/mes/
mkdir tmp/after/mes/{bin,m2} mkdir tmp/after/mes/{bin,m2}
# tcc 0.9.26 # tcc
cp tcc.kaem tmp/after/ cp tcc.kaem tmp/after/
cp -r tcc-0.9.26p1 tmp/after/ cp -r tcc-0.9.26p1 tmp/after/
cp -r tcc-0.9.27 tmp/after/
touch tmp/after/tcc-0.9.27/config.h
touch tmp/after/tcc-0.9.26p1/config.h
pushd tmp/after/tcc-0.9.26p1 pushd tmp/after/tcc-0.9.26p1
cp ../../../tcc-0.9.26p1-files/config.h .
ln -s ../mes/module . ln -s ../mes/module .
ln -s ../mes/mes . ln -s ../mes/mes .
ln -s /after/lib x86-mes ln -s /after/lib x86-mes

1
sysa/tcc-0.9.27 Submodule

@ -0,0 +1 @@
Subproject commit d348a9a51d32cece842b7885d27a411436d7887b

View File

@ -83,7 +83,8 @@ mes-tcc -ar cr ${libdir}/libgetopt.a getopt.o
cd ../tcc-0.9.26p1 cd ../tcc-0.9.26p1
# boot0 # boot0 (ref comments here for all boot*)
# compile
mes-tcc \ mes-tcc \
-g \ -g \
-v \ -v \
@ -99,7 +100,7 @@ mes-tcc \
-D CONFIG_TCC_CRTPREFIX=\"/after/lib\" \ -D CONFIG_TCC_CRTPREFIX=\"/after/lib\" \
-D CONFIG_TCC_ELFINTERP=\"/mes/loader\" \ -D CONFIG_TCC_ELFINTERP=\"/mes/loader\" \
-D CONFIG_TCC_LIBPATHS=\"/after/lib:/after/lib/tcc\" \ -D CONFIG_TCC_LIBPATHS=\"/after/lib:/after/lib/tcc\" \
-D CONFIG_TCC_SYSINCLUDEPATHS=\"/after/lib/include\" \ -D CONFIG_TCC_SYSINCLUDEPATHS=\"/after/include\" \
-D TCC_LIBGCC=\"/after/lib/libc.a\" \ -D TCC_LIBGCC=\"/after/lib/libc.a\" \
-D TCC_LIBTCC1=\"libtcc1.a\" \ -D TCC_LIBTCC1=\"libtcc1.a\" \
-D CONFIG_TCCBOOT=1 \ -D CONFIG_TCCBOOT=1 \
@ -111,9 +112,11 @@ mes-tcc \
-L . \ -L . \
-L /after/lib \ -L /after/lib \
tcc.c tcc.c
# Install
cp boot0-tcc /after/bin/ cp boot0-tcc /after/bin/
chmod 755 /after/bin/boot0-tcc chmod 755 /after/bin/boot0-tcc
cd ../tcc-mes cd ../tcc-mes
# Recompile libc: crt{1,n,i}, libtcc.a, libc.a
boot0-tcc -c -D HAVE_CONFIG_H=1 -I include -I include/linux/x86 -o ${libdir}/crt1.o lib/linux/x86-mes-gcc/crt1.c boot0-tcc -c -D HAVE_CONFIG_H=1 -I include -I include/linux/x86 -o ${libdir}/crt1.o lib/linux/x86-mes-gcc/crt1.c
boot0-tcc -c -D HAVE_CONFIG_H=1 -I include -I include/linux/x86 -o ${libdir}/crtn.o lib/linux/x86-mes-gcc/crtn.c boot0-tcc -c -D HAVE_CONFIG_H=1 -I include -I include/linux/x86 -o ${libdir}/crtn.o lib/linux/x86-mes-gcc/crtn.c
boot0-tcc -c -D HAVE_CONFIG_H=1 -I include -I include/linux/x86 -o ${libdir}/crti.o lib/linux/x86-mes-gcc/crti.c boot0-tcc -c -D HAVE_CONFIG_H=1 -I include -I include/linux/x86 -o ${libdir}/crti.o lib/linux/x86-mes-gcc/crti.c
@ -146,7 +149,7 @@ boot0-tcc \
-D CONFIG_TCC_CRTPREFIX=\"/after/lib\" \ -D CONFIG_TCC_CRTPREFIX=\"/after/lib\" \
-D CONFIG_TCC_ELFINTERP=\"/mes/loader\" \ -D CONFIG_TCC_ELFINTERP=\"/mes/loader\" \
-D CONFIG_TCC_LIBPATHS=\"/after/lib:/after/lib/tcc\" \ -D CONFIG_TCC_LIBPATHS=\"/after/lib:/after/lib/tcc\" \
-D CONFIG_TCC_SYSINCLUDEPATHS=\"/after/lib/include\" \ -D CONFIG_TCC_SYSINCLUDEPATHS=\"/after/include\" \
-D TCC_LIBGCC=\"/after/lib/libc.a\" \ -D TCC_LIBGCC=\"/after/lib/libc.a\" \
-D TCC_LIBTCC1=\"libtcc1.a\" \ -D TCC_LIBTCC1=\"libtcc1.a\" \
-D CONFIG_TCCBOOT=1 \ -D CONFIG_TCCBOOT=1 \
@ -193,7 +196,7 @@ boot1-tcc \
-D CONFIG_TCC_CRTPREFIX=\"/after/lib\" \ -D CONFIG_TCC_CRTPREFIX=\"/after/lib\" \
-D CONFIG_TCC_ELFINTERP=\"/mes/loader\" \ -D CONFIG_TCC_ELFINTERP=\"/mes/loader\" \
-D CONFIG_TCC_LIBPATHS=\"/after/lib:/after/lib/tcc\" \ -D CONFIG_TCC_LIBPATHS=\"/after/lib:/after/lib/tcc\" \
-D CONFIG_TCC_SYSINCLUDEPATHS=\"/after/lib/include\" \ -D CONFIG_TCC_SYSINCLUDEPATHS=\"/after/include\" \
-D TCC_LIBGCC=\"/after/lib/libc.a\" \ -D TCC_LIBGCC=\"/after/lib/libc.a\" \
-D TCC_LIBTCC1=\"libtcc1.a\" \ -D TCC_LIBTCC1=\"libtcc1.a\" \
-D CONFIG_TCCBOOT=1 \ -D CONFIG_TCCBOOT=1 \
@ -240,7 +243,7 @@ boot2-tcc \
-D CONFIG_TCC_CRTPREFIX=\"/after/lib\" \ -D CONFIG_TCC_CRTPREFIX=\"/after/lib\" \
-D CONFIG_TCC_ELFINTERP=\"/mes/loader\" \ -D CONFIG_TCC_ELFINTERP=\"/mes/loader\" \
-D CONFIG_TCC_LIBPATHS=\"/after/lib:/after/lib/tcc\" \ -D CONFIG_TCC_LIBPATHS=\"/after/lib:/after/lib/tcc\" \
-D CONFIG_TCC_SYSINCLUDEPATHS=\"/after/lib/include\" \ -D CONFIG_TCC_SYSINCLUDEPATHS=\"/after/include\" \
-D TCC_LIBGCC=\"/after/lib/libc.a\" \ -D TCC_LIBGCC=\"/after/lib/libc.a\" \
-D TCC_LIBTCC1=\"libtcc1.a\" \ -D TCC_LIBTCC1=\"libtcc1.a\" \
-D CONFIG_TCCBOOT=1 \ -D CONFIG_TCCBOOT=1 \
@ -287,7 +290,7 @@ boot3-tcc \
-D CONFIG_TCC_CRTPREFIX=\"/after/lib\" \ -D CONFIG_TCC_CRTPREFIX=\"/after/lib\" \
-D CONFIG_TCC_ELFINTERP=\"/mes/loader\" \ -D CONFIG_TCC_ELFINTERP=\"/mes/loader\" \
-D CONFIG_TCC_LIBPATHS=\"/after/lib:/after/lib/tcc\" \ -D CONFIG_TCC_LIBPATHS=\"/after/lib:/after/lib/tcc\" \
-D CONFIG_TCC_SYSINCLUDEPATHS=\"/after/lib/include\" \ -D CONFIG_TCC_SYSINCLUDEPATHS=\"/after/include\" \
-D TCC_LIBGCC=\"/after/lib/libc.a\" \ -D TCC_LIBGCC=\"/after/lib/libc.a\" \
-D TCC_LIBTCC1=\"libtcc1.a\" \ -D TCC_LIBTCC1=\"libtcc1.a\" \
-D CONFIG_TCCBOOT=1 \ -D CONFIG_TCCBOOT=1 \
@ -334,7 +337,7 @@ boot4-tcc \
-D CONFIG_TCC_CRTPREFIX=\"/after/lib\" \ -D CONFIG_TCC_CRTPREFIX=\"/after/lib\" \
-D CONFIG_TCC_ELFINTERP=\"/mes/loader\" \ -D CONFIG_TCC_ELFINTERP=\"/mes/loader\" \
-D CONFIG_TCC_LIBPATHS=\"/after/lib:/after/lib/tcc\" \ -D CONFIG_TCC_LIBPATHS=\"/after/lib:/after/lib/tcc\" \
-D CONFIG_TCC_SYSINCLUDEPATHS=\"/after/lib/include\" \ -D CONFIG_TCC_SYSINCLUDEPATHS=\"/after/include\" \
-D TCC_LIBGCC=\"/after/lib/libc.a\" \ -D TCC_LIBGCC=\"/after/lib/libc.a\" \
-D TCC_LIBTCC1=\"libtcc1.a\" \ -D TCC_LIBTCC1=\"libtcc1.a\" \
-D CONFIG_TCCBOOT=1 \ -D CONFIG_TCCBOOT=1 \
@ -371,4 +374,51 @@ chmod 755 /after/bin/tcc
tcc -c -D HAVE_CONFIG_H=1 -I include -I include/linux/x86 lib/posix/getopt.c tcc -c -D HAVE_CONFIG_H=1 -I include -I include/linux/x86 lib/posix/getopt.c
tcc -ar cr ${libdir}/libgetopt.a getopt.o tcc -ar cr ${libdir}/libgetopt.a getopt.o
# Now compile tcc 0.9.27
cd ../tcc-0.9.27
# Compile the binary
tcc \
-v \
-static \
-o tcc \
-D TCC_TARGET_I386=1 \
-D CONFIG_TCCDIR=\"/after/lib/tcc\" \
-D CONFIG_TCC_CRTPREFIX=\"/after/lib\" \
-D CONFIG_TCC_ELFINTERP=\"/mes/loader\" \
-D CONFIG_TCC_LIBPATHS=\"/after/lib:/after/lib/tcc\" \
-D CONFIG_TCC_SYSINCLUDEPATHS=\"/after/include\" \
-D TCC_LIBGCC=\"/after/lib/libc.a\" \
-D CONFIG_TCC_STATIC=1 \
-D CONFIG_USE_LIBGCC=1 \
-D TCC_VERSION=\"0.9.27\" \
-D ONE_SOURCE=1 \
tcc.c
# Install the binary
cp tcc /after/bin/tcc
chmod 755 /after/bin/tcc
# Test
tcc -version
# Recompile libc
cd ../tcc-mes
# crt{1,n,i}.o
tcc -c -D HAVE_CONFIG_H=1 -I include -I include/linux/x86 -o ${libdir}/crt1.o lib/linux/x86-mes-gcc/crt1.c
tcc -c -D HAVE_CONFIG_H=1 -I include -I include/linux/x86 -o ${libdir}/crtn.o lib/linux/x86-mes-gcc/crtn.c
tcc -c -D HAVE_CONFIG_H=1 -I include -I include/linux/x86 -o ${libdir}/crti.o lib/linux/x86-mes-gcc/crti.c
# libtcc1.a
tcc -c -D HAVE_CONFIG_H=1 -D HAVE_FLOAT=1 -D HAVE_LONG_LONG=1 -I include -I include/linux/x86 lib/libtcc1.c
tcc -ar cr ${libdir}/tcc/libtcc1.a libtcc1.o
# libc.a
tcc -c -D HAVE_CONFIG_H=1 -I include -I include/linux/x86 -o unified-libc-1.o unified-libc-1.c
tcc -c -D HAVE_CONFIG_H=1 -I include -I include/linux/x86 -o unified-libc-2.o unified-libc-2.c
tcc -c -D HAVE_CONFIG_H=1 -I include -I include/linux/x86 -o unified-libc-3.o unified-libc-3.c
tcc -ar cr ${libdir}/libc+gnu.a unified-libc-1.o unified-libc-2.o unified-libc-3.o
cp ${libdir}/libc+gnu.a ${libdir}/libc.a
# libgetopt.a
tcc -c -D HAVE_CONFIG_H=1 -I include -I include/linux/x86 lib/posix/getopt.c
tcc -ar cr ${libdir}/libgetopt.a getopt.o
cd .. cd ..