aboutsummaryrefslogtreecommitdiff
path: root/libtcc.c
diff options
context:
space:
mode:
authorgrischka <grischka>2016-10-15 16:01:16 +0200
committergrischka <grischka>2016-10-15 16:01:16 +0200
commitf3c1ea6c2d7dca7883985820e46ec536e2d7e8cc (patch)
treec224b9ac2454e6d024473d1da6afea973fcdd1f7 /libtcc.c
parent4d247c00a3e966a3f9b3139da8307d64a9c48e25 (diff)
downloadtinycc-f3c1ea6c2d7dca7883985820e46ec536e2d7e8cc.tar.gz
tinycc-f3c1ea6c2d7dca7883985820e46ec536e2d7e8cc.tar.bz2
#define __GNUC__ = 2.1
__GNUC__ nowadays as macro seems to mean the "GNU C dialect" rather than the compiler itself. See also http://gcc.gnu.org/ml/gcc/2008-07/msg00026.html This patch will probably cause problems of various kinds but maybe we should try nonetheless.
Diffstat (limited to 'libtcc.c')
-rw-r--r--libtcc.c25
1 files changed, 19 insertions, 6 deletions
diff --git a/libtcc.c b/libtcc.c
index 591fd79..ecb2242 100644
--- a/libtcc.c
+++ b/libtcc.c
@@ -885,15 +885,28 @@ LIBTCCAPI TCCState *tcc_new(void)
/* wint_t is unsigned int by default, but (signed) int on BSDs
and unsigned short on windows. Other OSes might have still
other conventions, sigh. */
-#if defined(__FreeBSD__) || defined (__FreeBSD_kernel__) || defined(__NetBSD__) || defined(__OpenBSD__)
+# if defined(__FreeBSD__) || defined (__FreeBSD_kernel__)
+ || defined(__NetBSD__) || defined(__OpenBSD__)
tcc_define_symbol(s, "__WINT_TYPE__", "int");
-#else
+# else
tcc_define_symbol(s, "__WINT_TYPE__", "unsigned int");
-#endif
+# endif
+# if 0
/* glibc defines */
- tcc_define_symbol(s, "__REDIRECT(name, proto, alias)", "name proto __asm__ (#alias)");
- tcc_define_symbol(s, "__REDIRECT_NTH(name, proto, alias)", "name proto __asm__ (#alias) __THROW");
-#endif
+ tcc_define_symbol(s, "__REDIRECT(name, proto, alias)",
+ "name proto __asm__ (#alias)");
+ tcc_define_symbol(s, "__REDIRECT_NTH(name, proto, alias)",
+ "name proto __asm__ (#alias) __THROW");
+# endif
+# if 1
+ /* define __GNUC__ to have some useful stuff from sys/cdefs.h */
+ tcc_define_symbol(s, "__GNUC__", "2");
+ tcc_define_symbol(s, "__GNUC_MINOR__", "1");
+ tcc_define_symbol(s, "__builtin_alloca", "alloca");
+ tcc_define_symbol(s, "__builtin_memcpy", "memcpy");
+ tcc_define_symbol(s, "__USER_LABEL_PREFIX__", "");
+# endif
+#endif /* ndef TCC_TARGET_PE */
return s;
}