On a x86_64 glibc system, building a Gnulib testdir with tcc (configured to produce x86 code: './configure --cpu=x86 --triplet=i386-linux-gnu') gives a number of test failures:
FAIL: test-binary-io.sh FAIL: test-canonicalize FAIL: test-chown FAIL: test-closein.sh FAIL: test-fchownat FAIL: test-fclose FAIL: test-fdutimensat FAIL: test-fflush FAIL: test-fflush2.sh FAIL: test-fpurge FAIL: test-freading FAIL: test-freopen-safer FAIL: test-fseek.sh FAIL: test-fseeko.sh FAIL: test-fseeko3.sh FAIL: test-fseeko4.sh FAIL: test-fstatat FAIL: test-ftell3 FAIL: test-ftello.sh FAIL: test-ftello2.sh FAIL: test-ftello3 FAIL: test-ftello4.sh FAIL: test-futimens FAIL: test-get-rusage-as FAIL: test-lchown FAIL: test-linkat FAIL: test-lseek.sh FAIL: test-lstat FAIL: test-pread.sh FAIL: test-pwrite.sh FAIL: test-read-file FAIL: test-rename FAIL: test-renameat FAIL: test-renameatu FAIL: test-stat FAIL: test-statat FAIL: test-supersede FAIL: test-truncate FAIL: test-utime FAIL: test-utimens FAIL: test-utimensat FAIL: test-yesno.sh FAIL: test-fts The standard I/O functions appear to be severely broken in this configuration. (My guess is that tcc does not support the symbol versioning used by glibc.) Bruno