mirror of
https://sourceware.org/git/glibc.git
synced 2024-12-17 08:21:07 +00:00
90188e7d1a
When support for long double format with 128-bits (-mlong-double-128) was added for platforms where long double had the same format as double, such as powerpc, compatibility versions for the functions listed in the commit title were missed. Since the older format of long double can still be used (with -mlong-double-64), using these functions with a format string that requests the printing of long double variables will produce wrong outputs. This patch adds the missing compatibility functions and header magic to redirect calls to them when -mlong-double-64 is in use. Tested for powerpc, powerpc64 and powerpc64le.
62 lines
2.2 KiB
C
62 lines
2.2 KiB
C
/* 4.4BSD utility functions for error messages.
|
|
Copyright (C) 1995-2019 Free Software Foundation, Inc.
|
|
This file is part of the GNU C Library.
|
|
|
|
The GNU C Library is free software; you can redistribute it and/or
|
|
modify it under the terms of the GNU Lesser General Public
|
|
License as published by the Free Software Foundation; either
|
|
version 2.1 of the License, or (at your option) any later version.
|
|
|
|
The GNU C Library is distributed in the hope that it will be useful,
|
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|
Lesser General Public License for more details.
|
|
|
|
You should have received a copy of the GNU Lesser General Public
|
|
License along with the GNU C Library; if not, see
|
|
<http://www.gnu.org/licenses/>. */
|
|
|
|
#ifndef _ERR_H
|
|
#define _ERR_H 1
|
|
|
|
#include <features.h>
|
|
|
|
#define __need___va_list
|
|
#include <stdarg.h>
|
|
#ifndef __GNUC_VA_LIST
|
|
# define __gnuc_va_list void *
|
|
#endif
|
|
|
|
__BEGIN_DECLS
|
|
|
|
/* Print "program: ", FORMAT, ": ", the standard error string for errno,
|
|
and a newline, on stderr. */
|
|
extern void warn (const char *__format, ...)
|
|
__attribute__ ((__format__ (__printf__, 1, 2)));
|
|
extern void vwarn (const char *__format, __gnuc_va_list)
|
|
__attribute__ ((__format__ (__printf__, 1, 0)));
|
|
|
|
/* Likewise, but without ": " and the standard error string. */
|
|
extern void warnx (const char *__format, ...)
|
|
__attribute__ ((__format__ (__printf__, 1, 2)));
|
|
extern void vwarnx (const char *__format, __gnuc_va_list)
|
|
__attribute__ ((__format__ (__printf__, 1, 0)));
|
|
|
|
/* Likewise, and then exit with STATUS. */
|
|
extern void err (int __status, const char *__format, ...)
|
|
__attribute__ ((__noreturn__, __format__ (__printf__, 2, 3)));
|
|
extern void verr (int __status, const char *__format, __gnuc_va_list)
|
|
__attribute__ ((__noreturn__, __format__ (__printf__, 2, 0)));
|
|
extern void errx (int __status, const char *__format, ...)
|
|
__attribute__ ((__noreturn__, __format__ (__printf__, 2, 3)));
|
|
extern void verrx (int __status, const char *, __gnuc_va_list)
|
|
__attribute__ ((__noreturn__, __format__ (__printf__, 2, 0)));
|
|
|
|
#ifdef __LDBL_COMPAT
|
|
# include <bits/err-ldbl.h>
|
|
#endif
|
|
|
|
__END_DECLS
|
|
|
|
#endif /* err.h */
|