+2019-03-01 Gabriel F. T. Gomes <gabriel@inconstante.eti.br>
+
+ [BZ #23983]
+ * argp/Makefile (headers): Add bits/argp-ldbl.h.
+ * argp/argp.h [defined __LDBL_COMPAT]: Include bits/argp-ldbl.h.
+ * argp/bits/argp-ldbl.h: New file.
+ * include/argp.h: Include stdarg.h. Add prototypes for internal
+ functions: __argp_error_internal and __argp_failure_internal.
+ * include/bits/argp-ldbl.h: New file.
+ * sysdeps/ieee754/ldbl-opt/Versions (libc): Add
+ __nldbl_argp_error and __nldbl_argp_failure.
+ * sysdeps/ieee754/ldbl-opt/nldbl-compat.c: Include argp.h.
+ (__nldbl_argp_error, __nldbl_argp_failure): New functions.
+ * sysdeps/ieee754/ldbl-opt/nldbl-compat.h: Include argp.h.
+ Redirect argp_error and argp_failure calls.
+ * sysdeps/unix/sysv/linux/alpha/libc.abilist: Update.
+ * sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist:
+ Likewise.
+ * sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist:
+ Likewise.
+ * sysdeps/unix/sysv/linux/powerpc/powerpc64/libc-le.abilist:
+ Likewise.
+ * sysdeps/unix/sysv/linux/powerpc/powerpc64/libc.abilist:
+ Likewise.
+ * sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist: Likewise.
+ * sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist: Likewise.
+
2019-03-01 Florian Weimer <fweimer@redhat.com>
[BZ #20419]
include ../Makeconfig
-headers = argp.h
+headers = argp.h bits/argp-ldbl.h
routines = $(addprefix argp-, ba fmtstream fs-xinl help parse pv \
pvh xinl eexst)
# endif
#endif /* Use extern inlines. */
+#ifdef __LDBL_COMPAT
+# include <bits/argp-ldbl.h>
+#endif
+
__END_DECLS
#endif /* argp.h */
--- /dev/null
+/* Redirections for argp functions for -mlong-double-64.
+ Copyright (C) 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 _ARGP_H
+# error "Never include <bits/argp-ldbl.h> directly; use <argp.h> instead."
+#endif
+
+__LDBL_REDIR_DECL (argp_error)
+__LDBL_REDIR_DECL (argp_failure)
#ifndef _ARGP_H
#include <argp/argp.h>
+/* Prototypes for internal argp.h functions. */
+#include <stdarg.h>
+void
+__argp_error_internal (const struct argp_state *state, const char *fmt,
+ va_list ap, unsigned int mode_flags);
+
+void
+__argp_failure_internal (const struct argp_state *state, int status,
+ int errnum, const char *fmt, va_list ap,
+ unsigned int mode_flags);
+
#ifndef _ISOMAC
extern __typeof (__argp_error) __argp_error attribute_hidden;
extern __typeof (__argp_failure) __argp_failure attribute_hidden;
--- /dev/null
+#include <argp/bits/argp-ldbl.h>
__nldbl___dprintf_chk; __nldbl___vdprintf_chk;
__nldbl___obstack_printf_chk; __nldbl___obstack_vprintf_chk;
}
+ GLIBC_2.30 {
+ __nldbl_argp_error; __nldbl_argp_failure;
+ }
}
libm {
NLDBL_VERSION {
#undef __GLIBC_USE_DEPRECATED_SCANF
#define __GLIBC_USE_DEPRECATED_SCANF 1
+#include <argp.h>
#include <stdarg.h>
#include <stdio.h>
#include <libio/strfile.h>
return ret;
}
+void
+__nldbl_argp_error (const struct argp_state *state, const char *fmt, ...)
+{
+ va_list ap;
+ va_start (ap, fmt);
+ __argp_error_internal (state, fmt, ap, PRINTF_LDBL_IS_DBL);
+ va_end (ap);
+}
+
+void
+__nldbl_argp_failure (const struct argp_state *state, int status,
+ int errnum, const char *fmt, ...)
+{
+ va_list ap;
+ va_start (ap, fmt);
+ __argp_failure_internal (state, status, errnum, fmt, ap,
+ PRINTF_LDBL_IS_DBL);
+ va_end (ap);
+}
+
#if LONG_DOUBLE_COMPAT(libc, GLIBC_2_0)
compat_symbol (libc, __nldbl__IO_printf, _IO_printf, GLIBC_2_0);
compat_symbol (libc, __nldbl__IO_sprintf, _IO_sprintf, GLIBC_2_0);
/* Avoid long double prototypes. */
#define __NO_LONG_DOUBLE_MATH 1
+#include <argp.h>
#include <stdarg.h>
#include <stdlib.h>
#include <stdint.h>
NLDBL_DECL (__isoc99_vwscanf);
NLDBL_DECL (__isoc99_vfwscanf);
NLDBL_DECL (__isoc99_vswscanf);
+NLDBL_DECL (argp_error);
+NLDBL_DECL (argp_failure);
/* These do not exist in the normal interface, but must exist in the
__nldbl interface so that they can be called from libnldbl. */
GLIBC_2.3.4 setsourcefilter F
GLIBC_2.3.4 xdr_quad_t F
GLIBC_2.3.4 xdr_u_quad_t F
+GLIBC_2.30 __nldbl_argp_error F
+GLIBC_2.30 __nldbl_argp_failure F
GLIBC_2.30 gettid F
GLIBC_2.4 _IO_fprintf F
GLIBC_2.4 _IO_printf F
GLIBC_2.3.4 swapcontext F
GLIBC_2.3.4 xdr_quad_t F
GLIBC_2.3.4 xdr_u_quad_t F
+GLIBC_2.30 __nldbl_argp_error F
+GLIBC_2.30 __nldbl_argp_failure F
GLIBC_2.30 gettid F
GLIBC_2.4 _IO_fprintf F
GLIBC_2.4 _IO_printf F
GLIBC_2.3.4 swapcontext F
GLIBC_2.3.4 xdr_quad_t F
GLIBC_2.3.4 xdr_u_quad_t F
+GLIBC_2.30 __nldbl_argp_error F
+GLIBC_2.30 __nldbl_argp_failure F
GLIBC_2.30 gettid F
GLIBC_2.4 _IO_fprintf F
GLIBC_2.4 _IO_printf F
GLIBC_2.3.4 swapcontext F
GLIBC_2.3.4 xdr_quad_t F
GLIBC_2.3.4 xdr_u_quad_t F
+GLIBC_2.30 __nldbl_argp_error F
+GLIBC_2.30 __nldbl_argp_failure F
GLIBC_2.30 gettid F
GLIBC_2.4 _IO_fprintf F
GLIBC_2.4 _IO_printf F
GLIBC_2.29 getcpu F
GLIBC_2.29 posix_spawn_file_actions_addchdir_np F
GLIBC_2.29 posix_spawn_file_actions_addfchdir_np F
+GLIBC_2.30 __nldbl_argp_error F
+GLIBC_2.30 __nldbl_argp_failure F
GLIBC_2.30 gettid F
GLIBC_2.3.4 setsourcefilter F
GLIBC_2.3.4 xdr_quad_t F
GLIBC_2.3.4 xdr_u_quad_t F
+GLIBC_2.30 __nldbl_argp_error F
+GLIBC_2.30 __nldbl_argp_failure F
GLIBC_2.30 gettid F
GLIBC_2.4 _IO_fprintf F
GLIBC_2.4 _IO_printf F
GLIBC_2.3.4 setsourcefilter F
GLIBC_2.3.4 xdr_quad_t F
GLIBC_2.3.4 xdr_u_quad_t F
+GLIBC_2.30 __nldbl_argp_error F
+GLIBC_2.30 __nldbl_argp_failure F
GLIBC_2.30 gettid F
GLIBC_2.4 _IO_fprintf F
GLIBC_2.4 _IO_printf F
GLIBC_2.3.4 setsourcefilter F
GLIBC_2.3.4 xdr_quad_t F
GLIBC_2.3.4 xdr_u_quad_t F
+GLIBC_2.30 __nldbl_argp_error F
+GLIBC_2.30 __nldbl_argp_failure F
GLIBC_2.30 gettid F
GLIBC_2.4 _IO_fprintf F
GLIBC_2.4 _IO_printf F