We get away with it on Linux, not on Solaris.
#include <ccan/asprintf/asprintf.h>
/* Include the C files directly. */
#include <ccan/asprintf/asprintf.h>
/* Include the C files directly. */
/* Override vasprintf for testing. */
#if HAVE_ASPRINTF
#define vasprintf my_vasprintf
static int my_vasprintf(char **strp, const char *fmt, va_list ap);
#else
#include <stdio.h>
/* Override vasprintf for testing. */
#if HAVE_ASPRINTF
#define vasprintf my_vasprintf
static int my_vasprintf(char **strp, const char *fmt, va_list ap);
#else
#include <stdio.h>
#define vsnprintf my_vsnprintf
static int my_vsnprintf(char *str, size_t size, const char *format, va_list ap);
#endif
#define vsnprintf my_vsnprintf
static int my_vsnprintf(char *str, size_t size, const char *format, va_list ap);
#endif