aboutsummaryrefslogtreecommitdiffstats
path: root/lib
diff options
context:
space:
mode:
authorPaul Eggert <[email protected]>2013-01-03 18:17:49 -0800
committerPaul Eggert <[email protected]>2013-01-03 18:17:49 -0800
commitee0d39381afabe6ca81701e786fa506239e261d2 (patch)
tree7f04c7ae2157f42b11f9f718cfdff1de458a4242 /lib
parent342532db2bf1f9d9efcd2073b6f4395db548df5a (diff)
Merge from gnulib.
This incorporates: 2013-01-04 stdio: remove now-unnecessary stdio.c 2013-01-04 fprintftime: depend on stdio, not ignore-value 2013-01-04 fwrite: silence __wur only for older glibc versions 2013-01-04 fwrite: silence __wur without using inline * lib/stdio.c: Remove. * lib/stdio.in.h, lib/strftime.c: Update from gnulib. * lib/gnulib.mk, m4/gnulib-comp.m4: Regenerate.
Diffstat (limited to 'lib')
-rw-r--r--lib/gnulib.mk1
-rw-r--r--lib/stdio.c3
-rw-r--r--lib/stdio.in.h27
-rw-r--r--lib/strftime.c11
4 files changed, 9 insertions, 33 deletions
diff --git a/lib/gnulib.mk b/lib/gnulib.mk
index ca628a28da..2347d84448 100644
--- a/lib/gnulib.mk
+++ b/lib/gnulib.mk
@@ -774,7 +774,6 @@ EXTRA_DIST += stdint.in.h
## begin gnulib module stdio
BUILT_SOURCES += stdio.h
-libgnu_a_SOURCES += stdio.c
# We need the following in order to create <stdio.h> when the system
# doesn't have one that works with the given compiler.
diff --git a/lib/stdio.c b/lib/stdio.c
deleted file mode 100644
index e6ed82996b..0000000000
--- a/lib/stdio.c
+++ /dev/null
@@ -1,3 +0,0 @@
-#include <config.h>
-#define _GL_STDIO_INLINE _GL_EXTERN_INLINE
-#include "stdio.h"
diff --git a/lib/stdio.in.h b/lib/stdio.in.h
index d9a67dc4d4..d6af99ca77 100644
--- a/lib/stdio.in.h
+++ b/lib/stdio.in.h
@@ -46,11 +46,6 @@
#ifndef _@GUARD_PREFIX@_STDIO_H
#define _@GUARD_PREFIX@_STDIO_H
-_GL_INLINE_HEADER_BEGIN
-#ifndef _GL_STDIO_INLINE
-# define _GL_STDIO_INLINE _GL_INLINE
-#endif
-
/* Get va_list. Needed on many systems, including glibc 2.8. */
#include <stdarg.h>
@@ -580,21 +575,17 @@ _GL_CXXALIAS_RPL (fwrite, size_t,
_GL_CXXALIAS_SYS (fwrite, size_t,
(const void *ptr, size_t s, size_t n, FILE *stream));
-/* Work around glibc bug 11959
+/* Work around bug 11959 when fortifying glibc 2.4 through 2.15
<http://sources.redhat.com/bugzilla/show_bug.cgi?id=11959>,
which sometimes causes an unwanted diagnostic for fwrite calls.
- This affects only function declaration attributes, so it's not
- needed for C++. */
-# if !defined __cplusplus && 0 < __USE_FORTIFY_LEVEL
-_GL_STDIO_INLINE size_t _GL_ARG_NONNULL ((1, 4))
-rpl_fwrite (const void *ptr, size_t s, size_t n, FILE *stream)
-{
- size_t r = fwrite (ptr, s, n, stream);
- (void) r;
- return r;
-}
+ This affects only function declaration attributes under certain
+ versions of gcc, and is not needed for C++. */
+# if (0 < __USE_FORTIFY_LEVEL \
+ && __GLIBC__ == 2 && 4 <= __GLIBC_MINOR__ && __GLIBC_MINOR__ <= 15 \
+ && 3 < __GNUC__ + (4 <= __GNUC_MINOR__) \
+ && !defined __cplusplus)
# undef fwrite
-# define fwrite rpl_fwrite
+# define fwrite(a, b, c, d) ({size_t __r = fwrite (a, b, c, d); __r; })
# endif
# endif
_GL_CXXALIASWARN (fwrite);
@@ -1338,8 +1329,6 @@ _GL_WARN_ON_USE (vsprintf, "vsprintf is not always POSIX compliant - "
"POSIX compliance");
#endif
-_GL_INLINE_HEADER_END
-
#endif /* _@GUARD_PREFIX@_STDIO_H */
#endif /* _@GUARD_PREFIX@_STDIO_H */
#endif
diff --git a/lib/strftime.c b/lib/strftime.c
index 1d58f2a160..213ced860d 100644
--- a/lib/strftime.c
+++ b/lib/strftime.c
@@ -26,7 +26,6 @@
#else
# include <config.h>
# if FPRINTFTIME
-# include "ignore-value.h"
# include "fprintftime.h"
# else
# include "strftime.h"
@@ -209,15 +208,7 @@ extern char *tzname[];
else if (to_uppcase) \
fwrite_uppcase (p, (s), _n); \
else \
- { \
- /* We are ignoring the value of fwrite here, in spite of the \
- fact that technically, that may not be valid: the fwrite \
- specification in POSIX 2008 defers to that of fputc, which \
- is intended to be consistent with the one from ISO C, \
- which permits failure due to ENOMEM *without* setting the \
- stream's error indicator. */ \
- ignore_value (fwrite ((s), _n, 1, p)); \
- } \
+ fwrite (s, _n, 1, p); \
} \
while (0) \
)