Relevant excerpt from Changelog as per https://savannah.gnu.org/forum/forum.php?forum_id=9339:
NEWS
* Noteworthy changes in release 1.10 (2018-12-29) [stable]
** Changes in behavior
Compressed gzip output no longer contains the current time as a timestamp when the input is not a regular file. Instead, the output contains a null (zero) timestamp. This makes gzip's behavior more reproducible when used as part of a pipeline. (As a reminder, even regular files will use null timestamps after the year 2106, due to a limitation in the gzip format.)
** Bug fixes
A use of uninitialized memory on some malformed inputs has been fixed. [bug present since the beginning]
A few theoretical race conditions in signal handers have been fixed. These bugs most likely do not happen on practical platforms. [bugs present since the beginning]
In addition, gzip 1.10 comes with the GNU library patch applied, so there is no need to carry this file around any more.
Signed-off-by: Peter Müller peter.mueller@ipfire.org --- lfs/gzip | 7 +- src/patches/gzip-1.9-gnulib.patch | 189 ------------------------------ 2 files changed, 3 insertions(+), 193 deletions(-) delete mode 100644 src/patches/gzip-1.9-gnulib.patch
diff --git a/lfs/gzip b/lfs/gzip index eeea99dbe..ae8bee05f 100644 --- a/lfs/gzip +++ b/lfs/gzip @@ -1,7 +1,7 @@ ############################################################################### # # # IPFire.org - A linux based firewall # -# Copyright (C) 2007-2018 IPFire Team info@ipfire.org # +# Copyright (C) 2007-2021 IPFire Team info@ipfire.org # # # # This program is free software: you can redistribute it and/or modify # # it under the terms of the GNU General Public License as published by # @@ -24,7 +24,7 @@
include Config
-VER = 1.9 +VER = 1.10
THISAPP = gzip-$(VER) DL_FILE = $(THISAPP).tar.xz @@ -54,7 +54,7 @@ objects = $(DL_FILE)
$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
-$(DL_FILE)_MD5 = 9492c6ccb2239ff679a5475a7bb543ed +$(DL_FILE)_MD5 = 691b1221694c3394f1c537df4eee39d3
install : $(TARGET)
@@ -84,7 +84,6 @@ $(subst %,%_MD5,$(objects)) : $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) @$(PREBUILD) @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar axf $(DIR_DL)/$(DL_FILE) - cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/gzip-1.9-gnulib.patch cd $(DIR_APP) && ./configure $(EXTRA_CONFIG) cd $(DIR_APP) && make $(MAKETUNING) cd $(DIR_APP) && make install diff --git a/src/patches/gzip-1.9-gnulib.patch b/src/patches/gzip-1.9-gnulib.patch deleted file mode 100644 index 68e8d518a..000000000 --- a/src/patches/gzip-1.9-gnulib.patch +++ /dev/null @@ -1,189 +0,0 @@ -From 1831628c0630ae96a43586b2a25ca51cbdba3e53 Mon Sep 17 00:00:00 2001 -From: Paul Eggert address@hidden -Date: Mon, 5 Mar 2018 10:56:29 -0800 -Subject: [PATCH] fflush: adjust to glibc 2.28 libio.h removal -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -Problem reported by Daniel P. Berrangé in: -https://lists.gnu.org/r/bug-gnulib/2018-03/msg00000.html -* lib/fbufmode.c (fbufmode): -* lib/fflush.c (clear_ungetc_buffer_preserving_position) -(disable_seek_optimization, rpl_fflush): -* lib/fpending.c (__fpending): -* lib/fpurge.c (fpurge): -* lib/freadable.c (freadable): -* lib/freadahead.c (freadahead): -* lib/freading.c (freading): -* lib/freadptr.c (freadptr): -* lib/freadseek.c (freadptrinc): -* lib/fseeko.c (fseeko): -* lib/fseterr.c (fseterr): -* lib/fwritable.c (fwritable): -* lib/fwriting.c (fwriting): -Check _IO_EOF_SEEN instead of _IO_ftrylockfile. -* lib/stdio-impl.h (_IO_IN_BACKUP) [_IO_EOF_SEEN]: -Define if not already defined. ---- - ChangeLog | 23 +++++++++++++++++++++++ - lib/fbufmode.c | 2 +- - lib/fflush.c | 6 +++--- - lib/fpending.c | 2 +- - lib/fpurge.c | 2 +- - lib/freadable.c | 2 +- - lib/freadahead.c | 2 +- - lib/freading.c | 2 +- - lib/freadptr.c | 2 +- - lib/freadseek.c | 2 +- - lib/fseeko.c | 4 ++-- - lib/fseterr.c | 2 +- - lib/fwritable.c | 2 +- - lib/fwriting.c | 2 +- - lib/stdio-impl.h | 6 ++++++ - 15 files changed, 45 insertions(+), 16 deletions(-) - -diff --git a/ChangeLog b/ChangeLog -index 667f91663..beb835670 100644 ---- a/ChangeLog -+++ b/ChangeLog -@@ -1,3 +1,26 @@ -+2018-03-05 Paul Eggert address@hidden -+ -+ fflush: adjust to glibc 2.28 libio.h removal -+ Problem reported by Daniel P. Berrangé in: -+ https://lists.gnu.org/r/bug-gnulib/2018-03/msg00000.html -+ * lib/fbufmode.c (fbufmode): -+ * lib/fflush.c (clear_ungetc_buffer_preserving_position) -+ (disable_seek_optimization, rpl_fflush): -+ * lib/fpending.c (__fpending): -+ * lib/fpurge.c (fpurge): -+ * lib/freadable.c (freadable): -+ * lib/freadahead.c (freadahead): -+ * lib/freading.c (freading): -+ * lib/freadptr.c (freadptr): -+ * lib/freadseek.c (freadptrinc): -+ * lib/fseeko.c (fseeko): -+ * lib/fseterr.c (fseterr): -+ * lib/fwritable.c (fwritable): -+ * lib/fwriting.c (fwriting): -+ Check _IO_EOF_SEEN instead of _IO_ftrylockfile. -+ * lib/stdio-impl.h (_IO_IN_BACKUP) [_IO_EOF_SEEN]: -+ Define if not already defined. -+ - 2018-01-07 Jim Meyering meyering@fb.com - - version 1.9 - * NEWS: Record release date. -diff --git a/lib/fflush.c b/lib/fflush.c -index 983ade0ff..a6edfa105 100644 ---- a/lib/fflush.c -+++ b/lib/fflush.c -@@ -33,7 +33,7 @@ - #undef fflush - - --#if defined _IO_ftrylockfile || __GNU_LIBRARY__ == 1 /* GNU libc, BeOS, Haiku, Linux libc5 */ -+#if defined _IO_EOF_SEEN || __GNU_LIBRARY__ == 1 /* GNU libc, BeOS, Haiku, Linux libc5 */ - - /* Clear the stream's ungetc buffer, preserving the value of ftello (fp). */ - static void -@@ -72,7 +72,7 @@ clear_ungetc_buffer (FILE *fp) - - #endif - --#if ! (defined _IO_ftrylockfile || __GNU_LIBRARY__ == 1 /* GNU libc, BeOS, Haiku, Linux libc5 */) -+#if ! (defined _IO_EOF_SEEN || __GNU_LIBRARY__ == 1 /* GNU libc, BeOS, Haiku, Linux libc5 */) - - # if (defined __sferror || defined __DragonFly__ || defined __ANDROID__) && defined __SNPT - /* FreeBSD, NetBSD, OpenBSD, DragonFly, Mac OS X, Cygwin, Minix 3, Android */ -@@ -148,7 +148,7 @@ rpl_fflush (FILE *stream) - if (stream == NULL || ! freading (stream)) - return fflush (stream); - --#if defined _IO_ftrylockfile || __GNU_LIBRARY__ == 1 /* GNU libc, BeOS, Haiku, Linux libc5 */ -+#if defined _IO_EOF_SEEN || __GNU_LIBRARY__ == 1 /* GNU libc, BeOS, Haiku, Linux libc5 */ - - clear_ungetc_buffer_preserving_position (stream); - -diff --git a/lib/fpurge.c b/lib/fpurge.c -index b1d417c7a..3aedcc373 100644 ---- a/lib/fpurge.c -+++ b/lib/fpurge.c -@@ -62,7 +62,7 @@ fpurge (FILE *fp) - /* Most systems provide FILE as a struct and the necessary bitmask in - <stdio.h>, because they need it for implementing getc() and putc() as - fast macros. */ --# if defined _IO_ftrylockfile || __GNU_LIBRARY__ == 1 /* GNU libc, BeOS, Haiku, Linux libc5 */ -+# if defined _IO_EOF_SEEN || __GNU_LIBRARY__ == 1 /* GNU libc, BeOS, Haiku, Linux libc5 */ - fp->_IO_read_end = fp->_IO_read_ptr; - fp->_IO_write_ptr = fp->_IO_write_base; - /* Avoid memory leak when there is an active ungetc buffer. */ -diff --git a/lib/freading.c b/lib/freading.c -index 73c28acdd..c24d0c88a 100644 ---- a/lib/freading.c -+++ b/lib/freading.c -@@ -31,7 +31,7 @@ freading (FILE *fp) - /* Most systems provide FILE as a struct and the necessary bitmask in - <stdio.h>, because they need it for implementing getc() and putc() as - fast macros. */ --# if defined _IO_ftrylockfile || __GNU_LIBRARY__ == 1 /* GNU libc, BeOS, Haiku, Linux libc5 */ -+# if defined _IO_EOF_SEEN || __GNU_LIBRARY__ == 1 /* GNU libc, BeOS, Haiku, Linux libc5 */ - return ((fp->_flags & _IO_NO_WRITES) != 0 - || ((fp->_flags & (_IO_NO_READS | _IO_CURRENTLY_PUTTING)) == 0 - && fp->_IO_read_base != NULL)); -diff --git a/lib/fseeko.c b/lib/fseeko.c -index 0101ab55f..193f4e8ce 100644 ---- a/lib/fseeko.c -+++ b/lib/fseeko.c -@@ -47,7 +47,7 @@ fseeko (FILE *fp, off_t offset, int whence) - #endif - - /* These tests are based on fpurge.c. */ --#if defined _IO_ftrylockfile || __GNU_LIBRARY__ == 1 /* GNU libc, BeOS, Haiku, Linux libc5 */ -+#if defined _IO_EOF_SEEN || __GNU_LIBRARY__ == 1 /* GNU libc, BeOS, Haiku, Linux libc5 */ - if (fp->_IO_read_end == fp->_IO_read_ptr - && fp->_IO_write_ptr == fp->_IO_write_base - && fp->_IO_save_base == NULL) -@@ -123,7 +123,7 @@ fseeko (FILE *fp, off_t offset, int whence) - return -1; - } - --#if defined _IO_ftrylockfile || __GNU_LIBRARY__ == 1 /* GNU libc, BeOS, Haiku, Linux libc5 */ -+#if defined _IO_EOF_SEEN || __GNU_LIBRARY__ == 1 /* GNU libc, BeOS, Haiku, Linux libc5 */ - fp->_flags &= ~_IO_EOF_SEEN; - fp->_offset = pos; - #elif defined __sferror || defined __DragonFly__ || defined __ANDROID__ -diff --git a/lib/fseterr.c b/lib/fseterr.c -index 82649c3ac..adb637256 100644 ---- a/lib/fseterr.c -+++ b/lib/fseterr.c -@@ -29,7 +29,7 @@ fseterr (FILE *fp) - /* Most systems provide FILE as a struct and the necessary bitmask in - <stdio.h>, because they need it for implementing getc() and putc() as - fast macros. */ --#if defined _IO_ftrylockfile || __GNU_LIBRARY__ == 1 /* GNU libc, BeOS, Haiku, Linux libc5 */ -+#if defined _IO_EOF_SEEN || __GNU_LIBRARY__ == 1 /* GNU libc, BeOS, Haiku, Linux libc5 */ - fp->_flags |= _IO_ERR_SEEN; - #elif defined __sferror || defined __DragonFly__ || defined __ANDROID__ - /* FreeBSD, NetBSD, OpenBSD, DragonFly, Mac OS X, Cygwin, Minix 3, Android */ -diff --git a/lib/stdio-impl.h b/lib/stdio-impl.h -index 78d896e9f..05c5752a2 100644 ---- a/lib/stdio-impl.h -+++ b/lib/stdio-impl.h -@@ -18,6 +18,12 @@ - the same implementation of stdio extension API, except that some fields - have different naming conventions, or their access requires some casts. */ - -+/* Glibc 2.28 made _IO_IN_BACKUP private. For now, work around this -+ problem by defining it ourselves. FIXME: Do not rely on glibc -+ internals. */ -+#if !defined _IO_IN_BACKUP && defined _IO_EOF_SEEN -+# define _IO_IN_BACKUP 0x100 -+#endif - - /* BSD stdio derived implementations. */ - --- -2.14.3 -
Reviewed-by Adolf Belka adolf.belka@ipfire.org
On 02/06/2021 19:53, Peter Müller wrote:
Relevant excerpt from Changelog as per https://savannah.gnu.org/forum/forum.php?forum_id=9339:
NEWS
- Noteworthy changes in release 1.10 (2018-12-29) [stable]
** Changes in behavior
Compressed gzip output no longer contains the current time as a timestamp when the input is not a regular file. Instead, the output contains a null (zero) timestamp. This makes gzip's behavior more reproducible when used as part of a pipeline. (As a reminder, even regular files will use null timestamps after the year 2106, due to a limitation in the gzip format.)
** Bug fixes
A use of uninitialized memory on some malformed inputs has been fixed. [bug present since the beginning]
A few theoretical race conditions in signal handers have been fixed. These bugs most likely do not happen on practical platforms. [bugs present since the beginning]
In addition, gzip 1.10 comes with the GNU library patch applied, so there is no need to carry this file around any more.
Signed-off-by: Peter Müller peter.mueller@ipfire.org
lfs/gzip | 7 +- src/patches/gzip-1.9-gnulib.patch | 189 ------------------------------ 2 files changed, 3 insertions(+), 193 deletions(-) delete mode 100644 src/patches/gzip-1.9-gnulib.patch
diff --git a/lfs/gzip b/lfs/gzip index eeea99dbe..ae8bee05f 100644 --- a/lfs/gzip +++ b/lfs/gzip @@ -1,7 +1,7 @@ ############################################################################### # # # IPFire.org - A linux based firewall # -# Copyright (C) 2007-2018 IPFire Team info@ipfire.org # +# Copyright (C) 2007-2021 IPFire Team info@ipfire.org # # # # This program is free software: you can redistribute it and/or modify # # it under the terms of the GNU General Public License as published by # @@ -24,7 +24,7 @@
include Config
-VER = 1.9 +VER = 1.10
THISAPP = gzip-$(VER) DL_FILE = $(THISAPP).tar.xz @@ -54,7 +54,7 @@ objects = $(DL_FILE)
$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
-$(DL_FILE)_MD5 = 9492c6ccb2239ff679a5475a7bb543ed +$(DL_FILE)_MD5 = 691b1221694c3394f1c537df4eee39d3
install : $(TARGET)
@@ -84,7 +84,6 @@ $(subst %,%_MD5,$(objects)) : $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) @$(PREBUILD) @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar axf $(DIR_DL)/$(DL_FILE)
- cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/gzip-1.9-gnulib.patch cd $(DIR_APP) && ./configure $(EXTRA_CONFIG) cd $(DIR_APP) && make $(MAKETUNING) cd $(DIR_APP) && make install
diff --git a/src/patches/gzip-1.9-gnulib.patch b/src/patches/gzip-1.9-gnulib.patch deleted file mode 100644 index 68e8d518a..000000000 --- a/src/patches/gzip-1.9-gnulib.patch +++ /dev/null @@ -1,189 +0,0 @@ -From 1831628c0630ae96a43586b2a25ca51cbdba3e53 Mon Sep 17 00:00:00 2001 -From: Paul Eggert address@hidden -Date: Mon, 5 Mar 2018 10:56:29 -0800 -Subject: [PATCH] fflush: adjust to glibc 2.28 libio.h removal -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit
-Problem reported by Daniel P. Berrangé in: -https://lists.gnu.org/r/bug-gnulib/2018-03/msg00000.html -* lib/fbufmode.c (fbufmode): -* lib/fflush.c (clear_ungetc_buffer_preserving_position) -(disable_seek_optimization, rpl_fflush): -* lib/fpending.c (__fpending): -* lib/fpurge.c (fpurge): -* lib/freadable.c (freadable): -* lib/freadahead.c (freadahead): -* lib/freading.c (freading): -* lib/freadptr.c (freadptr): -* lib/freadseek.c (freadptrinc): -* lib/fseeko.c (fseeko): -* lib/fseterr.c (fseterr): -* lib/fwritable.c (fwritable): -* lib/fwriting.c (fwriting): -Check _IO_EOF_SEEN instead of _IO_ftrylockfile. -* lib/stdio-impl.h (_IO_IN_BACKUP) [_IO_EOF_SEEN]:
-Define if not already defined.
- ChangeLog | 23 +++++++++++++++++++++++
- lib/fbufmode.c | 2 +-
- lib/fflush.c | 6 +++---
- lib/fpending.c | 2 +-
- lib/fpurge.c | 2 +-
- lib/freadable.c | 2 +-
- lib/freadahead.c | 2 +-
- lib/freading.c | 2 +-
- lib/freadptr.c | 2 +-
- lib/freadseek.c | 2 +-
- lib/fseeko.c | 4 ++--
- lib/fseterr.c | 2 +-
- lib/fwritable.c | 2 +-
- lib/fwriting.c | 2 +-
- lib/stdio-impl.h | 6 ++++++
- 15 files changed, 45 insertions(+), 16 deletions(-)
-diff --git a/ChangeLog b/ChangeLog -index 667f91663..beb835670 100644 ---- a/ChangeLog -+++ b/ChangeLog -@@ -1,3 +1,26 @@ -+2018-03-05 Paul Eggert address@hidden -+ -+ fflush: adjust to glibc 2.28 libio.h removal -+ Problem reported by Daniel P. Berrangé in: -+ https://lists.gnu.org/r/bug-gnulib/2018-03/msg00000.html -+ * lib/fbufmode.c (fbufmode): -+ * lib/fflush.c (clear_ungetc_buffer_preserving_position) -+ (disable_seek_optimization, rpl_fflush): -+ * lib/fpending.c (__fpending): -+ * lib/fpurge.c (fpurge): -+ * lib/freadable.c (freadable): -+ * lib/freadahead.c (freadahead): -+ * lib/freading.c (freading): -+ * lib/freadptr.c (freadptr): -+ * lib/freadseek.c (freadptrinc): -+ * lib/fseeko.c (fseeko): -+ * lib/fseterr.c (fseterr): -+ * lib/fwritable.c (fwritable): -+ * lib/fwriting.c (fwriting): -+ Check _IO_EOF_SEEN instead of _IO_ftrylockfile. -+ * lib/stdio-impl.h (_IO_IN_BACKUP) [_IO_EOF_SEEN]: -+ Define if not already defined. -+
- 2018-01-07 Jim Meyering meyering@fb.com
- version 1.9
- NEWS: Record release date.
-diff --git a/lib/fflush.c b/lib/fflush.c -index 983ade0ff..a6edfa105 100644 ---- a/lib/fflush.c -+++ b/lib/fflush.c -@@ -33,7 +33,7 @@
- #undef fflush
--#if defined _IO_ftrylockfile || __GNU_LIBRARY__ == 1 /* GNU libc, BeOS, Haiku, Linux libc5 */ -+#if defined _IO_EOF_SEEN || __GNU_LIBRARY__ == 1 /* GNU libc, BeOS, Haiku, Linux libc5 */
- /* Clear the stream's ungetc buffer, preserving the value of ftello (fp). */
- static void
-@@ -72,7 +72,7 @@ clear_ungetc_buffer (FILE *fp)
- #endif
--#if ! (defined _IO_ftrylockfile || __GNU_LIBRARY__ == 1 /* GNU libc, BeOS, Haiku, Linux libc5 */) -+#if ! (defined _IO_EOF_SEEN || __GNU_LIBRARY__ == 1 /* GNU libc, BeOS, Haiku, Linux libc5 */)
- # if (defined __sferror || defined __DragonFly__ || defined __ANDROID__) && defined __SNPT
- /* FreeBSD, NetBSD, OpenBSD, DragonFly, Mac OS X, Cygwin, Minix 3, Android */
-@@ -148,7 +148,7 @@ rpl_fflush (FILE *stream)
- if (stream == NULL || ! freading (stream))
return fflush (stream);
--#if defined _IO_ftrylockfile || __GNU_LIBRARY__ == 1 /* GNU libc, BeOS, Haiku, Linux libc5 */ -+#if defined _IO_EOF_SEEN || __GNU_LIBRARY__ == 1 /* GNU libc, BeOS, Haiku, Linux libc5 */
- clear_ungetc_buffer_preserving_position (stream);
-diff --git a/lib/fpurge.c b/lib/fpurge.c -index b1d417c7a..3aedcc373 100644 ---- a/lib/fpurge.c -+++ b/lib/fpurge.c -@@ -62,7 +62,7 @@ fpurge (FILE *fp)
- /* Most systems provide FILE as a struct and the necessary bitmask in
<stdio.h>, because they need it for implementing getc() and putc() as
fast macros. */
--# if defined _IO_ftrylockfile || __GNU_LIBRARY__ == 1 /* GNU libc, BeOS, Haiku, Linux libc5 */ -+# if defined _IO_EOF_SEEN || __GNU_LIBRARY__ == 1 /* GNU libc, BeOS, Haiku, Linux libc5 */
- fp->_IO_read_end = fp->_IO_read_ptr;
- fp->_IO_write_ptr = fp->_IO_write_base;
- /* Avoid memory leak when there is an active ungetc buffer. */
-diff --git a/lib/freading.c b/lib/freading.c -index 73c28acdd..c24d0c88a 100644 ---- a/lib/freading.c -+++ b/lib/freading.c -@@ -31,7 +31,7 @@ freading (FILE *fp)
- /* Most systems provide FILE as a struct and the necessary bitmask in
<stdio.h>, because they need it for implementing getc() and putc() as
fast macros. */
--# if defined _IO_ftrylockfile || __GNU_LIBRARY__ == 1 /* GNU libc, BeOS, Haiku, Linux libc5 */ -+# if defined _IO_EOF_SEEN || __GNU_LIBRARY__ == 1 /* GNU libc, BeOS, Haiku, Linux libc5 */
- return ((fp->_flags & _IO_NO_WRITES) != 0
|| ((fp->_flags & (_IO_NO_READS | _IO_CURRENTLY_PUTTING)) == 0
&& fp->_IO_read_base != NULL));
-diff --git a/lib/fseeko.c b/lib/fseeko.c -index 0101ab55f..193f4e8ce 100644 ---- a/lib/fseeko.c -+++ b/lib/fseeko.c -@@ -47,7 +47,7 @@ fseeko (FILE *fp, off_t offset, int whence)
- #endif
- /* These tests are based on fpurge.c. */
--#if defined _IO_ftrylockfile || __GNU_LIBRARY__ == 1 /* GNU libc, BeOS, Haiku, Linux libc5 */ -+#if defined _IO_EOF_SEEN || __GNU_LIBRARY__ == 1 /* GNU libc, BeOS, Haiku, Linux libc5 */
- if (fp->_IO_read_end == fp->_IO_read_ptr
&& fp->_IO_write_ptr == fp->_IO_write_base
&& fp->_IO_save_base == NULL)
-@@ -123,7 +123,7 @@ fseeko (FILE *fp, off_t offset, int whence)
return -1;
}
--#if defined _IO_ftrylockfile || __GNU_LIBRARY__ == 1 /* GNU libc, BeOS, Haiku, Linux libc5 */ -+#if defined _IO_EOF_SEEN || __GNU_LIBRARY__ == 1 /* GNU libc, BeOS, Haiku, Linux libc5 */
fp->_flags &= ~_IO_EOF_SEEN;
fp->_offset = pos;
- #elif defined __sferror || defined __DragonFly__ || defined __ANDROID__
-diff --git a/lib/fseterr.c b/lib/fseterr.c -index 82649c3ac..adb637256 100644 ---- a/lib/fseterr.c -+++ b/lib/fseterr.c -@@ -29,7 +29,7 @@ fseterr (FILE *fp)
- /* Most systems provide FILE as a struct and the necessary bitmask in
<stdio.h>, because they need it for implementing getc() and putc() as
fast macros. */
--#if defined _IO_ftrylockfile || __GNU_LIBRARY__ == 1 /* GNU libc, BeOS, Haiku, Linux libc5 */ -+#if defined _IO_EOF_SEEN || __GNU_LIBRARY__ == 1 /* GNU libc, BeOS, Haiku, Linux libc5 */
- fp->_flags |= _IO_ERR_SEEN;
- #elif defined __sferror || defined __DragonFly__ || defined __ANDROID__
- /* FreeBSD, NetBSD, OpenBSD, DragonFly, Mac OS X, Cygwin, Minix 3, Android */
-diff --git a/lib/stdio-impl.h b/lib/stdio-impl.h -index 78d896e9f..05c5752a2 100644 ---- a/lib/stdio-impl.h -+++ b/lib/stdio-impl.h -@@ -18,6 +18,12 @@
- the same implementation of stdio extension API, except that some fields
- have different naming conventions, or their access requires some casts. */
-+/* Glibc 2.28 made _IO_IN_BACKUP private. For now, work around this -+ problem by defining it ourselves. FIXME: Do not rely on glibc -+ internals. */ -+#if !defined _IO_IN_BACKUP && defined _IO_EOF_SEEN -+# define _IO_IN_BACKUP 0x100 -+#endif
- /* BSD stdio derived implementations. */
-2.14.3