For va_list in gcc 4.4+ and glibc system stdarg.h is always required. For gcc 4.4+ including stdio.h is required because of headers clean up. Patch by Samuli Suominen <ssuominen@gentoo.org> diff -ur libassa-3.5.0.orig/assa/Logger_Impl.cpp libassa-3.5.0/assa/Logger_Impl.cpp --- libassa-3.5.0.orig/assa/Logger_Impl.cpp 2006-07-20 05:30:54.000000000 +0300 +++ libassa-3.5.0/assa/Logger_Impl.cpp 2009-09-04 13:26:26.000000000 +0300 @@ -14,6 +14,7 @@ #include <iostream> #include <iomanip> +#include <stdio.h> // vsnprintf(3) #include <string.h> // strerror(3) #include "assa/TimeVal.h" diff -ur libassa-3.5.0.orig/assa/Logger_Impl.h libassa-3.5.0/assa/Logger_Impl.h --- libassa-3.5.0.orig/assa/Logger_Impl.h 2006-07-20 05:30:54.000000000 +0300 +++ libassa-3.5.0/assa/Logger_Impl.h 2009-09-04 13:29:45.000000000 +0300 @@ -21,7 +21,7 @@ #include <sys/varargs.h> // va_list #endif -#if defined (__CYGWIN32__) || defined (__NetBSD__) || defined (WIN32) +#if defined (__CYGWIN32__) || defined (__NetBSD__) || defined (WIN32) || defined (__GLIBC__) # include <stdarg.h> #endif