Wo hast du den Header her?
Wie bereits vorgeschlagen solltest du mal die Built-Ins versuchen: 
typedef __builtin_va_list	va_list;
#define va_start(ap, X)		__builtin_va_start(ap, X)
#define va_arg(ap, type)	__builtin_va_arg(ap, type)
#define va_end(ap)		__builtin_va_end(ap)
Außerdem ist es natürlich wichtig, dass wenn du printf aufrufst, die Funktion vorher mit der korrekten Signatur deklariert wird.