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
);