Hi Ludo, > Tested with tcc 0.9.25 on x86_64-linux-gnu.
With tcc 0.9.25 on i386-linux-gnu (I can't even build it for x86_64) I also get other errors (with a testdir of all posix-modules): 1) In the gltests directory I get this: /arch/x86-linux/gnu-inst-tcc/0.9.25/bin/tcc -DHAVE_CONFIG_H -I. -DGNULIB_STRICT_CHECKING=1 -I. -I. -I.. -I./.. -I../gllib -I./../gllib -c -o test-_Exit.o test-_Exit.c In file included from test-_Exit.c:21: In file included from ../gllib/stdlib.h:35: In file included from ./../gllib/stdlib.h:35: In file included from ./../gllib/stdlib.h:35: In file included from ./../gllib/stdlib.h:35: In file included from ./../gllib/stdlib.h:35: In file included from ./../gllib/stdlib.h:35: In file included from ./../gllib/stdlib.h:35: In file included from ./../gllib/stdlib.h:35: In file included from ./../gllib/stdlib.h:35: In file included from ./../gllib/stdlib.h:35: In file included from ./../gllib/stdlib.h:35: In file included from ./../gllib/stdlib.h:35: In file included from ./../gllib/stdlib.h:35: In file included from ./../gllib/stdlib.h:35: In file included from ./../gllib/stdlib.h:35: In file included from ./../gllib/stdlib.h:35: In file included from ./../gllib/stdlib.h:35: In file included from ./../gllib/stdlib.h:35: In file included from ./../gllib/stdlib.h:35: In file included from ./../gllib/stdlib.h:35: In file included from ./../gllib/stdlib.h:35: In file included from ./../gllib/stdlib.h:35: In file included from ./../gllib/stdlib.h:35: In file included from ./../gllib/stdlib.h:35: In file included from ./../gllib/stdlib.h:35: In file included from ./../gllib/stdlib.h:35: In file included from ./../gllib/stdlib.h:35: In file included from ./../gllib/stdlib.h:35: In file included from ./../gllib/stdlib.h:35: In file included from ./../gllib/stdlib.h:35: In file included from ./../gllib/stdlib.h:35: ./../gllib/stdlib.h:35: #include recursion too deep It's apparently a bug in the #include_next handling, triggered by the use of multiple equivalent -I options (like -I../gllib -I./../gllib). 2) nextafter not supported /arch/x86-linux/gnu-inst-tcc/0.9.25/bin/tcc -o test-nextafter test-nextafter.o ../gllib/libgnu.a tcc: undefined symbol 'nextafter' make[4]: *** [test-nextafter] Error 1 3) bug in the preprocessor /arch/x86-linux/gnu-inst-tcc/0.9.25/bin/tcc -DHAVE_CONFIG_H -I. -DGNULIB_STRICT_CHECKING=1 -I. -I.. -I../gllib -c -o test-sigaction.o test-sigaction.c test-sigaction.c:68: field not found: __sigaction_handler make[4]: *** [test-sigaction.o] Error 1 After #define sa_handler __sigaction_handler.sa_handler (from /usr/include/bits/sigaction.h) the token sa_handler expands to __sigaction_handler.__sigaction_handler.sa_handler instead of __sigaction_handler.sa_handler 4) /arch/x86-linux/gnu-inst-tcc/0.9.25/bin/tcc -DHAVE_CONFIG_H -I. -DGNULIB_STRICT_CHECKING=1 -I. -I.. -I../gllib -c -o test-strstr.o test-strstr.c test-strstr.c:96: '{' expected make[4]: *** [test-strstr.o] Error 1 This can be fixed in the source file, see patch below. 5) 22 test failures: FAIL: test-environ test-fflush2.c:99: assertion failed FAIL: test-fflush2.sh test-freading.c:53: assertion failed FAIL: test-freading test-frexp.c:103: assertion failed FAIL: test-frexp-nolibm test-frexp.c:103: assertion failed FAIL: test-frexp test-frexpl.c:127: assertion failed FAIL: test-frexpl-nolibm test-frexpl.c:127: assertion failed FAIL: test-frexpl test-fseek.c:63: assertion failed FAIL: test-fseek.sh test-fseek.c:63: assertion failed FAIL: test-fseek2.sh test-fseeko.c:67: assertion failed FAIL: test-fseeko.sh test-fseeko.c:67: assertion failed FAIL: test-fseeko2.sh test-ftell.c:91: assertion failed FAIL: test-ftell2.sh test-ftello.c:99: assertion failed FAIL: test-ftello2.sh test-j0.c:37: assertion failed FAIL: test-j0 test-j1.c:37: assertion failed FAIL: test-j1 test-jn.c:37: assertion failed FAIL: test-jn test-ldexpl.c:89: assertion failed FAIL: test-ldexpl test-strtod.c:315: assertion failed FAIL: test-strtod compiler didn't detect verification failure 3 FAIL: test-verify.sh test-y0.c:37: assertion failed FAIL: test-y0 test-y1.c:37: assertion failed FAIL: test-y1 test-yn.c:37: assertion failed FAIL: test-yn If you care about TinyCC, please make sure that these get reported to the TinyCC maintainers and fixed. Bruno 2010-10-15 Bruno Haible <br...@clisp.org> tests: Make them compile with TinyCC. * tests/test-strstr.c (main): Remove parentheses around array initializer. --- tests/test-strstr.c.orig Sat Oct 16 03:03:43 2010 +++ tests/test-strstr.c Sat Oct 16 02:55:29 2010 @@ -93,18 +93,18 @@ /* Check that a long periodic needle does not cause false positives. */ { - const char input[] = ("F_BD_CE_BD_EF_BF_BD_EF_BF_BD_EF_BF_BD_EF_BF_BD" - "_C3_88_20_EF_BF_BD_EF_BF_BD_EF_BF_BD" - "_C3_A7_20_EF_BF_BD"); + const char input[] = "F_BD_CE_BD_EF_BF_BD_EF_BF_BD_EF_BF_BD_EF_BF_BD" + "_C3_88_20_EF_BF_BD_EF_BF_BD_EF_BF_BD" + "_C3_A7_20_EF_BF_BD"; const char need[] = "_EF_BF_BD_EF_BF_BD_EF_BF_BD_EF_BF_BD_EF_BF_BD"; const char *result = strstr (input, need); ASSERT (result == NULL); } { - const char input[] = ("F_BD_CE_BD_EF_BF_BD_EF_BF_BD_EF_BF_BD_EF_BF_BD" - "_C3_88_20_EF_BF_BD_EF_BF_BD_EF_BF_BD" - "_C3_A7_20_EF_BF_BD_DA_B5_C2_A6_20" - "_EF_BF_BD_EF_BF_BD_EF_BF_BD_EF_BF_BD_EF_BF_BD"); + const char input[] = "F_BD_CE_BD_EF_BF_BD_EF_BF_BD_EF_BF_BD_EF_BF_BD" + "_C3_88_20_EF_BF_BD_EF_BF_BD_EF_BF_BD" + "_C3_A7_20_EF_BF_BD_DA_B5_C2_A6_20" + "_EF_BF_BD_EF_BF_BD_EF_BF_BD_EF_BF_BD_EF_BF_BD"; const char need[] = "_EF_BF_BD_EF_BF_BD_EF_BF_BD_EF_BF_BD_EF_BF_BD"; const char *result = strstr (input, need); ASSERT (result == input + 115);