diff --git a/include/stdarg.h b/include/stdarg.h index 9adfc61..a42acae 100644 --- a/include/stdarg.h +++ b/include/stdarg.h @@ -17,8 +17,9 @@ typedef struct { } __va_list_struct; /* Avoid conflicting definition for va_list on musl libc */ -#ifndef __DEFINED_va_list +#if !defined __DEFINED_va_list || defined __TCC_NEEDS_va_list typedef __va_list_struct va_list[1]; +#undef __DEFINED_va_list #define __DEFINED_va_list #endif diff --git a/libtcc.c b/libtcc.c index 41c814d..dcc398f 100644 --- a/libtcc.c +++ b/libtcc.c @@ -854,7 +854,11 @@ LIBTCCAPI TCCState *tcc_new(void) #endif #if defined(TCC_MUSL) - tcc_define_symbol(s, "__builtin_va_list", "void *"); + tcc_define_symbol(s, "__TCC_NEEDS_va_list", ""); + tcc_define_symbol(s, "__builtin_va_list", "va_list"); + tcc_define_symbol(s, "__DEFINED_va_list", ""); + tcc_define_symbol(s, "__DEFINED___isoc_va_list", ""); + tcc_define_symbol(s, "__isoc_va_list", "void *"); #endif /* TCC_MUSL */ #ifdef TCC_TARGET_PE