1diff -r -U3 coreutils-8.13/lib/freadahead.c coreutils-8.13-patched/lib/freadahead.c
2--- coreutils-8.13/lib/freadahead.c	2011-08-19 10:09:37.000000000 -0600
3+++ coreutils-8.13-patched/lib/freadahead.c	2019-08-01 19:02:30.847557265 -0600
4@@ -25,7 +25,7 @@
5 size_t
6 freadahead (FILE *fp)
7 {
8-#if defined _IO_ftrylockfile || __GNU_LIBRARY__ == 1 /* GNU libc, BeOS, Haiku, Linux libc5 */
9+#if defined _IO_EOF_SEEN || defined _IO_ftrylockfile || __GNU_LIBRARY__ == 1 /* GNU libc, BeOS, Haiku, Linux libc5 */
10   if (fp->_IO_write_ptr > fp->_IO_write_base)
11     return 0;
12   return (fp->_IO_read_end - fp->_IO_read_ptr)
13diff -r -U3 coreutils-8.13/lib/freadptr.c coreutils-8.13-patched/lib/freadptr.c
14--- coreutils-8.13/lib/freadptr.c	2011-08-19 10:09:37.000000000 -0600
15+++ coreutils-8.13-patched/lib/freadptr.c	2019-08-01 19:02:30.851557318 -0600
16@@ -29,7 +29,7 @@
17   size_t size;
18
19   /* Keep this code in sync with freadahead!  */
20-#if defined _IO_ftrylockfile || __GNU_LIBRARY__ == 1 /* GNU libc, BeOS, Haiku, Linux libc5 */
21+#if defined _IO_EOF_SEEN || defined _IO_ftrylockfile || __GNU_LIBRARY__ == 1 /* GNU libc, BeOS, Haiku, Linux libc5 */
22   if (fp->_IO_write_ptr > fp->_IO_write_base)
23     return NULL;
24   size = fp->_IO_read_end - fp->_IO_read_ptr;
25diff -r -U3 coreutils-8.13/lib/freadseek.c coreutils-8.13-patched/lib/freadseek.c
26--- coreutils-8.13/lib/freadseek.c	2011-08-19 10:09:37.000000000 -0600
27+++ coreutils-8.13-patched/lib/freadseek.c	2019-08-01 19:02:30.851557318 -0600
28@@ -34,7 +34,7 @@
29 freadptrinc (FILE *fp, size_t increment)
30 {
31   /* Keep this code in sync with freadptr!  */
32-#if defined _IO_ftrylockfile || __GNU_LIBRARY__ == 1 /* GNU libc, BeOS, Haiku, Linux libc5 */
33+#if defined _IO_EOF_SEEN || defined _IO_ftrylockfile || __GNU_LIBRARY__ == 1 /* GNU libc, BeOS, Haiku, Linux libc5 */
34   fp->_IO_read_ptr += increment;
35 #elif defined __sferror || defined __DragonFly__ /* FreeBSD, NetBSD, OpenBSD, DragonFly, MacOS X, Cygwin */
36   fp_->_p += increment;
37diff -r -U3 coreutils-8.13/lib/fseeko.c coreutils-8.13-patched/lib/fseeko.c
38--- coreutils-8.13/lib/fseeko.c	2011-08-12 02:05:46.000000000 -0600
39+++ coreutils-8.13-patched/lib/fseeko.c	2019-08-01 19:02:30.851557318 -0600
40@@ -42,7 +42,7 @@
41 #endif
42
43   /* These tests are based on fpurge.c.  */
44-#if defined _IO_ftrylockfile || __GNU_LIBRARY__ == 1 /* GNU libc, BeOS, Haiku, Linux libc5 */
45+#if defined _IO_EOF_SEEN || defined _IO_ftrylockfile || __GNU_LIBRARY__ == 1 /* GNU libc, BeOS, Haiku, Linux libc5 */
46   if (fp->_IO_read_end == fp->_IO_read_ptr
47       && fp->_IO_write_ptr == fp->_IO_write_base
48       && fp->_IO_save_base == NULL)
49diff -r -U3 coreutils-8.13/lib/fseterr.c coreutils-8.13-patched/lib/fseterr.c
50--- coreutils-8.13/lib/fseterr.c	2011-08-19 10:09:37.000000000 -0600
51+++ coreutils-8.13-patched/lib/fseterr.c	2019-08-01 19:02:30.851557318 -0600
52@@ -29,7 +29,7 @@
53   /* Most systems provide FILE as a struct and the necessary bitmask in
54      <stdio.h>, because they need it for implementing getc() and putc() as
55      fast macros.  */
56-#if defined _IO_ftrylockfile || __GNU_LIBRARY__ == 1 /* GNU libc, BeOS, Haiku, Linux libc5 */
57+#if defined _IO_EOF_SEEN || defined _IO_ftrylockfile || __GNU_LIBRARY__ == 1 /* GNU libc, BeOS, Haiku, Linux libc5 */
58   fp->_flags |= _IO_ERR_SEEN;
59 #elif defined __sferror || defined __DragonFly__ /* FreeBSD, NetBSD, OpenBSD, DragonFly, MacOS X, Cygwin */
60   fp_->_flags |= __SERR;
61diff -r -U3 coreutils-8.13/lib/stdio-impl.h coreutils-8.13-patched/lib/stdio-impl.h
62--- coreutils-8.13/lib/stdio-impl.h	2011-04-24 11:21:45.000000000 -0600
63+++ coreutils-8.13-patched/lib/stdio-impl.h	2019-08-01 19:02:30.851557318 -0600
64@@ -18,6 +18,12 @@
65    the same implementation of stdio extension API, except that some fields
66    have different naming conventions, or their access requires some casts.  */
67
68+/* Glibc 2.28 made _IO_IN_BACKUP private.  For now, work around this
69+ *    problem by defining it ourselves.  FIXME: Do not rely on glibc
70+ *       internals.  */
71+#if !defined _IO_IN_BACKUP && defined _IO_EOF_SEEN
72+# define _IO_IN_BACKUP 0x100
73+#endif
74
75 /* BSD stdio derived implementations.  */
76
77diff -r -U3 coreutils-8.13/lib/stdio.in.h coreutils-8.13-patched/lib/stdio.in.h
78--- coreutils-8.13/lib/stdio.in.h	2011-06-17 02:06:20.000000000 -0600
79+++ coreutils-8.13-patched/lib/stdio.in.h	2019-08-01 19:03:47.484586570 -0600
80@@ -697,7 +697,7 @@
81 /* It is very rare that the developer ever has full control of stdin,
82    so any use of gets warrants an unconditional warning.  Assume it is
83    always declared, since it is required by C89.  */
84-_GL_WARN_ON_USE (gets, "gets is a security hole - use fgets instead");
85+/* _GL_WARN_ON_USE (gets, "gets is a security hole - use fgets instead"); */
86 #endif
87