build: Support building from bootstrap-mes.
This commit is contained in:
parent
46ee3f1847
commit
4489941a8f
6
boot.sh
6
boot.sh
|
@ -23,8 +23,8 @@ GUIX=${GUIX-$(command -v guix||:)}
|
|||
MES_PREFIX=${MES_PREFIX-../mes}
|
||||
##MES_PREFIX=${MES_PREFIX-$(dirname $MESCC)/../share/mes}
|
||||
C_INCLUDE_PATH=${C_INCLUDE_PATH-$MES_PREFIX/include}
|
||||
TINYCC_SEED=${TINYCC_SEED-../tinycc-seed}
|
||||
LIBRARY_PATH=${LIBRARY_PATH-..$TINYCC_SEED}
|
||||
MES_SEED=${MES_SEED-../mes-seed}
|
||||
LIBRARY_PATH=${LIBRARY_PATH-..$MES_SEED}
|
||||
|
||||
if [ -z "$interpreter" -a -n "$GUIX" ]; then
|
||||
interpreter=$($GUIX environment --ad-hoc patchelf -- patchelf --print-interpreter $(guix build --system=i686-linux hello)/bin/hello)
|
||||
|
@ -111,7 +111,7 @@ $TCC\
|
|||
-D CONFIG_TCC_STATIC=1\
|
||||
-D TCC_TARGET_I386=1\
|
||||
-L .\
|
||||
-L $TINYCC_SEED\
|
||||
-L $MES_SEED\
|
||||
tcc.c\
|
||||
$LIBTCC1
|
||||
|
||||
|
|
|
@ -6,7 +6,7 @@ export HEX2=../mescc-tools/bin/hex2
|
|||
export M1=../mescc-tools/bin/M1
|
||||
export MESCC=../mes/guile/mescc.scm
|
||||
export MES_PREFIX=../mes
|
||||
export TINYCC_SEED=../tinycc-seed
|
||||
export MES_SEED=../mes-seed
|
||||
|
||||
sh build.sh
|
||||
sh check.sh
|
||||
|
|
12
build-x86.sh
12
build-x86.sh
|
@ -11,10 +11,10 @@ PREFIX=${PREFIX-usr}
|
|||
GUIX=${GUIX-$(command -v guix||:)}
|
||||
MES_PREFIX=${MES_PREFIX-../mes}
|
||||
MES_PREFIX=${MES_PREFIX-${MESCC%/*}/../share/mes}
|
||||
TINYCC_SEED=${TINYCC_SEED-../tinycc-seed}
|
||||
cp $TINYCC_SEED/x86-mes-gcc/crt1.o crt1.o
|
||||
cp $TINYCC_SEED/x86-mes-gcc/crti.o crti.o
|
||||
cp $TINYCC_SEED/x86-mes-gcc/crtn.o crtn.o
|
||||
MES_SEED=${MES_SEED-../mes-seed}
|
||||
cp $MES_SEED/x86-mes-gcc/crt1.o crt1.o
|
||||
cp $MES_SEED/x86-mes-gcc/crti.o crti.o
|
||||
cp $MES_SEED/x86-mes-gcc/crtn.o crtn.o
|
||||
|
||||
CC=${CC-i686-unknown-linux-gnu-gcc}
|
||||
CFLAGS="
|
||||
|
@ -38,8 +38,8 @@ export interpreter
|
|||
|
||||
mkdir -p $PREFIX/lib
|
||||
ABSPREFIX=$(cd $PREFIX && pwd)
|
||||
cp $TINYCC_SEED/x86-mes-gcc/libc+tcc.o $ABSPREFIX/lib
|
||||
cp $TINYCC_SEED/x86-mes-gcc/libtcc1.o $ABSPREFIX/lib
|
||||
cp $MES_SEED/x86-mes-gcc/libc+tcc.o $ABSPREFIX/lib
|
||||
cp $MES_SEED/x86-mes-gcc/libtcc1.o $ABSPREFIX/lib
|
||||
$CC -g -o i686-unknown-linux-gnu-tcc\
|
||||
$CFLAGS\
|
||||
-I.\
|
||||
|
|
20
build.sh
20
build.sh
|
@ -6,7 +6,7 @@ export BUILD_DEBUG
|
|||
export MES_DEBUG
|
||||
export MES_PREFIX
|
||||
export PREFIX
|
||||
export TINYCC_SEED
|
||||
export MES_SEED
|
||||
export interpreter
|
||||
|
||||
if [ -n "$BUILD_DEBUG" ]; then
|
||||
|
@ -29,10 +29,9 @@ BLOOD_ELF=${BLOOD_ELF-blood-elf}
|
|||
MES_PREFIX=${MES_PREFIX-${MESCC%/*}/../share/mes}
|
||||
#MES_PREFIX=${MES_PREFIX-../mes}
|
||||
MES_SEED=${MES_SEED-../mes-seed}
|
||||
TINYCC_SEED=${TINYCC_SEED-../tinycc-seed}
|
||||
cp $TINYCC_SEED/x86-mes-tcc/crt1.o crt1.o
|
||||
cp $TINYCC_SEED/x86-mes-tcc/crti.o crti.o
|
||||
cp $TINYCC_SEED/x86-mes-tcc/crtn.o crtn.o
|
||||
cp $MES_SEED/x86-mes-gcc/crt1.o crt1.o
|
||||
cp $MES_SEED/x86-mes-gcc/crti.o crti.o
|
||||
cp $MES_SEED/x86-mes-gcc/crtn.o crtn.o
|
||||
|
||||
if [ -z "$interpreter" -a -n "$GUIX" ]; then
|
||||
interpreter=$($GUIX environment --ad-hoc patchelf -- patchelf --print-interpreter $(guix build --system=i686-linux hello)/bin/hello)
|
||||
|
@ -45,7 +44,7 @@ export interpreter
|
|||
|
||||
mkdir -p $PREFIX/lib
|
||||
ABSPREFIX=$(cd $PREFIX && pwd)
|
||||
cp $TINYCC_SEED/x86-mes-tcc/libc+tcc.o $ABSPREFIX/lib
|
||||
cp $MES_SEED/x86-mes-gcc/libc+tcc.o $ABSPREFIX/lib
|
||||
|
||||
|
||||
if [ -n "$ONE_SOURCE" ]; then
|
||||
|
@ -80,11 +79,10 @@ $MESCC\
|
|||
$MESCCFLAGS\
|
||||
-g\
|
||||
-o mes-tcc\
|
||||
-L $TINYCC_SEED\
|
||||
-L $MES_SEED\
|
||||
-l c+tcc\
|
||||
$files\
|
||||
$TINYCC_SEED/x86-mes/libc+tcc.o
|
||||
$MES_SEED/x86-mes/libc+tcc.o
|
||||
|
||||
rm -f libc.a
|
||||
if false; then
|
||||
|
@ -93,12 +91,12 @@ if false; then
|
|||
./mes-tcc -c -I $MES_PREFIX/include -I $MES_PREFIX/lib $MES_PREFIX/lib/libc+gnu.c
|
||||
./mes-tcc -ar rc libc.a libc+gnu.o
|
||||
else
|
||||
##./mes-tcc -ar rc libc.a $TINYCC_SEED/x86-mes-tcc/libc+gnu.o
|
||||
cp -f $TINYCC_SEED/x86-mes-gcc/libc+gnu.o .
|
||||
##./mes-tcc -ar rc libc.a $MES_SEED/x86-mes-gcc/libc+gnu.o
|
||||
cp -f $MES_SEED/x86-mes-gcc/libc+gnu.o .
|
||||
./mes-tcc -ar rc libc.a libc+gnu.o
|
||||
fi
|
||||
rm -f libtcc1.a
|
||||
cp -f $TINYCC_SEED/x86-mes-gcc/libtcc1.o .
|
||||
cp -f $MES_SEED/x86-mes-gcc/libtcc1.o .
|
||||
./mes-tcc -ar rc libtcc1.a libtcc1.o
|
||||
|
||||
sh boot.sh
|
||||
|
|
4
check.sh
4
check.sh
|
@ -304,11 +304,11 @@ mkdir -p scaffold/tinycc
|
|||
|
||||
expect=$(echo $broken | wc -w)
|
||||
for t in $tests; do
|
||||
if [ ! -f $MES_PREFIX/scaffold/tinycc/"$t.c" ]; then
|
||||
if [ ! -f tests/tests2/"$t.c" ]; then
|
||||
echo ' [SKIP]'
|
||||
continue;
|
||||
fi
|
||||
sh test.sh "$MES_PREFIX/scaffold/tinycc/$t" &> scaffold/tinycc/"$t".log
|
||||
sh test.sh tests/tests2/"$t" &> tests/tests2/"$t".log
|
||||
r=$?
|
||||
total=$((total+1))
|
||||
if [ $r = 0 ]; then
|
||||
|
|
|
@ -8,7 +8,7 @@ set -e
|
|||
|
||||
PREFIX=${PREFIX-usr}
|
||||
MES_PREFIX=${MES_PREFIX-${MESCC%/*}}
|
||||
TINYCC_SEED=${TINYCC_SEED-../tinycc-seed}
|
||||
MES_SEED=${MES_SEED-../mes-seed}
|
||||
|
||||
mkdir -p $PREFIX/bin
|
||||
cp tcc $PREFIX/bin
|
||||
|
@ -23,4 +23,6 @@ mkdir -p $PREFIX/lib/tcc
|
|||
cp libc.a $PREFIX/lib
|
||||
cp libtcc1.a $PREFIX/lib/tcc
|
||||
|
||||
tar -C $TINYCC_SEED -cf- . | tar -C $PREFIX/lib -xf-
|
||||
tar -C $MES_SEED -cf- . | tar -C $PREFIX/lib -xf-
|
||||
|
||||
rm -f $PREFIX/lib/linux/x86_64-mes/crt1
|
||||
|
|
6
link.sh
6
link.sh
|
@ -3,7 +3,7 @@ set -ex
|
|||
rm -f 1.a 2.a
|
||||
|
||||
MES_PREFIX=${MES_PREFIX-../mes}
|
||||
TINYCC_SEED=${TINYCC_SEED-../tinycc-seed}
|
||||
MES_SEED=${MES_SEED-../mes-seed}
|
||||
|
||||
# trivial bin
|
||||
###./tcc ../mes/scaffold/main.c
|
||||
|
@ -14,10 +14,10 @@ rm -f "$b".mes-gcc-out
|
|||
rm -f "$b".mes-out
|
||||
|
||||
./i686-unknown-linux-gnu-tcc\
|
||||
-static -g -o "$b".mes-gcc-out -I $MES_PREFIX/include -L $TINYCC_SEED "$c".c 2> "$b".mes-gcc-stderr
|
||||
-static -g -o "$b".mes-gcc-out -I $MES_PREFIX/include -L $MES_SEED "$c".c 2> "$b".mes-gcc-stderr
|
||||
set +e
|
||||
${MES_TCC-./mes-tcc}\
|
||||
-static -g -o "$b".mes-out -I $MES_PREFIX/include -L $TINYCC_SEED "$c".c 2> "$b".mes-stderr
|
||||
-static -g -o "$b".mes-out -I $MES_PREFIX/include -L $MES_SEED "$c".c 2> "$b".mes-stderr
|
||||
objdump -d "$b".mes-gcc-out > "$b".mes-gcc-d
|
||||
objdump -d "$b".mes-out > "$b".mes-d
|
||||
#readelf -a a.i686-unknown-linux-gnu-out > 1.r
|
||||
|
|
6
test.sh
6
test.sh
|
@ -6,7 +6,7 @@ TCC=${TCC-./mes-tcc}
|
|||
MESCC=${MESCC-mescc}
|
||||
MES_PREFIX=${MES_PREFIX-../mes}
|
||||
MES_PREFIX=${MES_PREFIX-${MESCC%/*}}
|
||||
TINYCC_SEED=${TINYCC_SEED-../tinycc-seed}
|
||||
MES_SEED=${MES_SEED-../mes-seed}
|
||||
OBJDUMP=${OBJDUMP-objdump}
|
||||
DIFF=${DIFF-diff}
|
||||
|
||||
|
@ -36,7 +36,7 @@ if [ -x ./i686-unknown-linux-gnu-tcc ]; then
|
|||
-static\
|
||||
-o "$b".mes-gcc-out\
|
||||
-L .\
|
||||
-L $TINYCC_SEED\
|
||||
-L $MES_SEED\
|
||||
"$b".mes-gcc-o &> 1.link
|
||||
set +e
|
||||
"$b".mes-gcc-out arg1 arg2 arg3 arg4 arg5 > "$b".mes-gcc-stdout
|
||||
|
@ -69,7 +69,7 @@ $TCC\
|
|||
-I $MES_PREFIX/include\
|
||||
-I $MES_PREFIX/scaffold/tests\
|
||||
-I $MES_PREFIX/scaffold/tinycc\
|
||||
-L $TINYCC_SEED\
|
||||
-L $MES_SEED\
|
||||
"$t".c &> 2.link
|
||||
set +e
|
||||
"$b".mes-out arg1 arg2 arg3 arg4 arg5 > "$b".mes-stdout
|
||||
|
|
Loading…
Reference in New Issue