From f3c1ea6c2d7dca7883985820e46ec536e2d7e8cc Mon Sep 17 00:00:00 2001 From: grischka Date: Sat, 15 Oct 2016 16:01:16 +0200 Subject: #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. --- libtcc.c | 25 +++++++++++++++++++------ 1 file changed, 19 insertions(+), 6 deletions(-) (limited to 'libtcc.c') 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; } -- cgit v1.3.1