1diff -r -U3 coreutils-7.6/lib/freadahead.c coreutils-7.6-patched/lib/freadahead.c
2--- coreutils-7.6/lib/freadahead.c	2009-05-03 23:46:33.000000000 -0600
3+++ coreutils-7.6-patched/lib/freadahead.c	2019-08-01 17:30:54.589238442 -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-7.6/lib/freadptr.c coreutils-7.6-patched/lib/freadptr.c
14--- coreutils-7.6/lib/freadptr.c	2009-05-03 23:46:33.000000000 -0600
15+++ coreutils-7.6-patched/lib/freadptr.c	2019-08-01 17:34:10.692659598 -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-7.6/lib/freadseek.c coreutils-7.6-patched/lib/freadseek.c
26--- coreutils-7.6/lib/freadseek.c	2009-05-03 23:46:33.000000000 -0600
27+++ coreutils-7.6-patched/lib/freadseek.c	2019-08-01 17:34:41.013164702 -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-7.6/lib/fseeko.c coreutils-7.6-patched/lib/fseeko.c
38--- coreutils-7.6/lib/fseeko.c	2009-08-09 10:16:11.000000000 -0600
39+++ coreutils-7.6-patched/lib/fseeko.c	2019-08-01 17:36:11.030633785 -0600
40@@ -44,7 +44,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-7.6/lib/fseterr.c coreutils-7.6-patched/lib/fseterr.c
50--- coreutils-7.6/lib/fseterr.c	2009-05-03 23:46:33.000000000 -0600
51+++ coreutils-7.6-patched/lib/fseterr.c	2019-08-01 17:34:57.285433551 -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-7.6/lib/stdio-impl.h coreutils-7.6-patched/lib/stdio-impl.h
62--- coreutils-7.6/lib/stdio-impl.h	2009-05-03 23:46:34.000000000 -0600
63+++ coreutils-7.6-patched/lib/stdio-impl.h	2019-08-01 17:32:36.431051254 -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