diff --git a/libtcc.c b/libtcc.c index 4250933..70f0f61 100644 --- a/libtcc.c +++ b/libtcc.c @@ -890,23 +890,22 @@ LIBTCCAPI TCCState *tcc_new(void) # if defined(__FreeBSD__) || defined (__FreeBSD_kernel__) \ || defined(__NetBSD__) || defined(__OpenBSD__) tcc_define_symbol(s, "__WINT_TYPE__", "int"); -# else - tcc_define_symbol(s, "__WINT_TYPE__", "unsigned int"); -# 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 -# if 1 - /* define __GNUC__ to have some useful stuff from sys/cdefs.h */ +# ifdef __FreeBSD__ + /* define __GNUC__ to have some useful stuff from sys/cdefs.h + that are unconditionally used in FreeBSDs other system headers :/ */ 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 +# else + tcc_define_symbol(s, "__WINT_TYPE__", "unsigned int"); + /* 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 #endif /* ndef TCC_TARGET_PE */