bug-gnulib
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH] isnan: Add support for TinyCC


From: Bruno Haible
Subject: Re: [PATCH] isnan: Add support for TinyCC
Date: Sat, 16 Oct 2010 03:09:54 +0200
User-agent: KMail/1.9.9

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  <address@hidden>

        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);



reply via email to

[Prev in Thread] Current Thread [Next in Thread]