Using Michael's patch on Gentoo64:
address@hidden ~/src/tinycc $ ./configure --targetcpu=i386 && make
Binary directory /usr/local/bin
TinyCC directory /usr/local/lib/tcc
Library directory /usr/local/lib
Include directory /usr/local/include
Manual directory /usr/local/share/man
Info directory /usr/local/share/info
Doc directory /usr/local/share/doc/tcc
Target root prefix
Source path /home/austin/src/tinycc
C compiler gcc
Build CPU x86_64
Target CPU i386
Target OS Linux
Big Endian no
gprof enabled no
cross compilers yes
use libgcc no
Creating config.mak and config.h
gcc -o i386-linux-gnu-tcc tcc.c -DONE_SOURCE -DTCC_TARGET_I386 -DCONFIG_TCCDIR="\"/usr/local/lib/tcc/i386\"" -I. -Wall -g -O2 -fno-strict-aliasing -Wno-pointer-sign -Wno-sign-compare -Wno-unused-result -lm -ldl
ln -sf i386-linux-gnu-tcc i386-tcc
ar rcs libtcc.a
make -C lib cross TARGET=i386 PROG_CROSS=i386-linux-gnu-tcc
make[1]: Entering directory '/home/austin/src/tinycc/lib'
mkdir -p i386
../i386-linux-gnu-tcc -B.. -c libtcc1.c -o i386/libtcc1.o -I.. -Wall -g -O2 -fno-strict-aliasing -Wno-pointer-sign -Wno-sign-compare -Wno-unused-result -fPIC -DTCC_TARGET_I386
../i386-linux-gnu-tcc -B.. -c alloca86.S -o i386/alloca86.o -I.. -Wall -g -O2 -fno-strict-aliasing -Wno-pointer-sign -Wno-sign-compare -Wno-unused-result -fPIC -DTCC_TARGET_I386
../i386-linux-gnu-tcc -B.. -c alloca86-bt.S -o i386/alloca86-bt.o -I.. -Wall -g -O2 -fno-strict-aliasing -Wno-pointer-sign -Wno-sign-compare -Wno-unused-result -fPIC -DTCC_TARGET_I386
ar rcs i386/libtcc1.a i386/libtcc1.o i386/alloca86.o i386/alloca86-bt.o
make[1]: Leaving directory '/home/austin/src/tinycc/lib'
./
texi2pod.pl tcc-doc.texi tcc.pod
pod2man --section=1 --center="Tiny C Compiler" --release=`cat ./VERSION` tcc.pod > tcc.1
makeinfo --no-split --html --number-sections -o tcc-doc.html tcc-doc.texi
makeinfo tcc-doc.texi
it builds fine, but make test fails:
address@hidden ~/src/tinycc $ make test
make -C tests test 'PROGS_CROSS=i386-linux-gnu-tcc'
make[1]: Entering directory '/home/austin/src/tinycc/tests'
------------ hello-exe ------------
../tcc -B.. -I.. -I.. -I../include ../examples/ex1.c -o hello || (../tcc -vv; exit 1) && ./hello
/bin/sh: ../tcc: No such file or directory
/bin/sh: ../tcc: No such file or directory
Makefile:76: recipe for target 'hello-exe' failed
make[1]: *** [hello-exe] Error 1
make[1]: Leaving directory '/home/austin/src/tinycc/tests'
Makefile:350: recipe for target 'test' failed
make: *** [test] Error 2
not terribly surprising, but let's try symlinking to see if anything works:
address@hidden ~/src/tinycc $ ln -s i386-linux-gnu-tcc tcc
address@hidden ~/src/tinycc $ make test
make -C tests test 'PROGS_CROSS=i386-linux-gnu-tcc'
make[1]: Entering directory '/home/austin/src/tinycc/tests'
------------ hello-exe ------------
../tcc -B.. -I.. -I.. -I../include ../examples/ex1.c -o hello || (../tcc -vv; exit 1) && ./hello
/usr/lib/crt1.o: error: invalid object file
tcc: error: file 'crt1.o' not found
/usr/lib/crti.o: error: invalid object file
tcc: error: file 'crti.o' not found
/lib64/libc.so.6: error: bad architecture
/usr/lib/libc.so:3: error: unrecognized file type
/usr/lib/libc.a: error: invalid object file
tcc: error: file '../libtcc1.a' not found
/usr/lib/crtn.o: error: invalid object file
tcc: error: file 'crtn.o' not found
tcc: error: undefined symbol 'printf'
tcc version 0.9.26 (i386 Linux)
install: /usr/local/lib/tcc/i386/
crt:
/usr/lib
libraries:
/usr/lib
/lib
/usr/local/lib
include:
/usr/local/include
/usr/include
/usr/local/lib/tcc/i386/include
elfinterp:
/lib/ld-linux.so.2
Makefile:76: recipe for target 'hello-exe' failed
make[1]: *** [hello-exe] Error 1
make[1]: Leaving directory '/home/austin/src/tinycc/tests'
Makefile:350: recipe for target 'test' failed
make: *** [test] Error 2