commit: 90cd17e4532af18b5b96703594a7e0403a1ef0cc
parent 238bd677d7edfe9c87d5d4376e6d2df67671ea5e
Author: fosslinux <fosslinux@aussies.space>
Date: Mon, 11 Jan 2021 10:40:25 +1100
Revert "Revert "Add tcc 0.9.27""
This reverts commit 238bd677d7edfe9c87d5d4376e6d2df67671ea5e.
We can just specifiy -static manually.
Diffstat:
5 files changed, 65 insertions(+), 10 deletions(-)
diff --git a/.gitmodules b/.gitmodules
@@ -19,3 +19,6 @@
[submodule "sysa/mescc-tools-patched"]
path = sysa/mescc-tools-patched
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
diff --git a/rootfs.sh b/rootfs.sh
@@ -36,7 +36,6 @@ ln -s . tmp/after/lib/x86-mes
ln -s . tmp/after/lib/linux/x86-mes
mkdir tmp/after/include/{mes,gnu,linux,sys,mach}
mkdir tmp/after/include/linux/{x86,x86_64}
-# put all the kaems for after in
cp after.kaem tmp/
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/
mkdir tmp/after/mes/{bin,m2}
-# tcc 0.9.26
+# tcc
cp tcc.kaem 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
-cp ../../../tcc-0.9.26p1-files/config.h .
ln -s ../mes/module .
ln -s ../mes/mes .
ln -s /after/lib x86-mes
diff --git a/sysa/tcc-0.9.26p1-files/config.h b/sysa/tcc-0.9.26p1-files/config.h
diff --git a/sysa/tcc-0.9.27 b/sysa/tcc-0.9.27
@@ -0,0 +1 @@
+Subproject commit d348a9a51d32cece842b7885d27a411436d7887b
diff --git a/sysa/tcc.kaem b/sysa/tcc.kaem
@@ -83,7 +83,8 @@ mes-tcc -ar cr ${libdir}/libgetopt.a getopt.o
cd ../tcc-0.9.26p1
-# boot0
+# boot0 (ref comments here for all boot*)
+# compile
mes-tcc \
-g \
-v \
@@ -99,7 +100,7 @@ mes-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/lib/include\" \
+ -D CONFIG_TCC_SYSINCLUDEPATHS=\"/after/include\" \
-D TCC_LIBGCC=\"/after/lib/libc.a\" \
-D TCC_LIBTCC1=\"libtcc1.a\" \
-D CONFIG_TCCBOOT=1 \
@@ -111,9 +112,11 @@ mes-tcc \
-L . \
-L /after/lib \
tcc.c
+# Install
cp boot0-tcc /after/bin/
chmod 755 /after/bin/boot0-tcc
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}/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
@@ -146,7 +149,7 @@ boot0-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/lib/include\" \
+ -D CONFIG_TCC_SYSINCLUDEPATHS=\"/after/include\" \
-D TCC_LIBGCC=\"/after/lib/libc.a\" \
-D TCC_LIBTCC1=\"libtcc1.a\" \
-D CONFIG_TCCBOOT=1 \
@@ -193,7 +196,7 @@ boot1-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/lib/include\" \
+ -D CONFIG_TCC_SYSINCLUDEPATHS=\"/after/include\" \
-D TCC_LIBGCC=\"/after/lib/libc.a\" \
-D TCC_LIBTCC1=\"libtcc1.a\" \
-D CONFIG_TCCBOOT=1 \
@@ -240,7 +243,7 @@ boot2-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/lib/include\" \
+ -D CONFIG_TCC_SYSINCLUDEPATHS=\"/after/include\" \
-D TCC_LIBGCC=\"/after/lib/libc.a\" \
-D TCC_LIBTCC1=\"libtcc1.a\" \
-D CONFIG_TCCBOOT=1 \
@@ -287,7 +290,7 @@ boot3-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/lib/include\" \
+ -D CONFIG_TCC_SYSINCLUDEPATHS=\"/after/include\" \
-D TCC_LIBGCC=\"/after/lib/libc.a\" \
-D TCC_LIBTCC1=\"libtcc1.a\" \
-D CONFIG_TCCBOOT=1 \
@@ -334,7 +337,7 @@ boot4-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/lib/include\" \
+ -D CONFIG_TCC_SYSINCLUDEPATHS=\"/after/include\" \
-D TCC_LIBGCC=\"/after/lib/libc.a\" \
-D TCC_LIBTCC1=\"libtcc1.a\" \
-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 -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
+# libtcc1.a
+tcc -c -D HAVE_CONFIG_H=1 lib/libtcc1.c
+tcc -ar cr ${libdir}/tcc/libtcc1.a libtcc1.o
+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
+# 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 ..