5 /* FIXME: define EXIT_FAILURE */
9 #if HAVE_VPRINTF || HAVE_DOPRNT || _LIBC
12 # define VA_START(args, lastarg) va_start(args, lastarg)
15 # define VA_START(args, lastarg) va_start(args)
18 # define va_alist a1, a2, a3, a4, a5, a6, a7, a8
19 # define va_dcl char *a1, *a2, *a3, *a4, *a5, *a6, *a7, *a8;
22 #if STDC_HEADERS || _LIBC
30 # define program_name program_invocation_name
32 /* The calling program should define program_name and set it to the
33 name of the executing program. */
34 extern char *program_name;
38 #include "unlocked-io.h"
40 /* Like error, but always exit with EXIT_FAILURE. */
43 #if defined VA_START && __STDC__
44 fatal (int errnum, const char *message, ...)
46 fatal (errnum, message, va_alist)
56 if (error_print_progname)
57 (*error_print_progname) ();
61 fprintf (stderr, "%s: ", program_name);
65 VA_START (args, message);
66 error (EXIT_FAILURE, errnum, message, args);
69 error (EXIT_FAILURE, errnum, message, a1, a2, a3, a4, a5, a6, a7, a8);