-/* We sometimes print in the tracing path, and tracing can occur in
- * signal handlers, so we must use a print method which is signal safe.
- */
-
-#define sigsafe_print_err(fmt, args...) \
-{ \
- /* Can't use dynamic allocation. Limit ourselves to 250 chars. */ \
- char ____buf[250]; \
- int ____saved_errno; \
-\
- /* Save the errno. */ \
- ____saved_errno = errno; \
-\
- snprintf(____buf, sizeof(____buf), fmt, ## args); \
-\
- /* Add end of string in case of buffer overflow. */ \
- ____buf[sizeof(____buf)-1] = 0; \
-\
- patient_write(STDERR_FILENO, ____buf, strlen(____buf)); \
- /* Can't print errors because we are in the error printing code path. */ \
-\
- /* Restore errno, in order to be async-signal safe. */ \
- errno = ____saved_errno; \
+/* A dummy function to force format checking */
+static inline void __attribute__ ((format (printf, 1, 2)))
+ __check_ust_safe_fmt(const char *fmt, ...)
+{