From a1c90513131164500f503108a845fee1e8632cc6 Mon Sep 17 00:00:00 2001 From: Steffen Nurpmeso Date: Sat, 30 Sep 2017 00:11:59 +0200 Subject: [PATCH] Adjust va_list to work with musl --- include/stdarg.h | 3 ++- libtcc.c | 6 +++++- 2 files changed, 7 insertions(+), 2 deletions(-) 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