1diff -r -U3 coreutils-8.18/lib/freadahead.c coreutils-8.18-patched/lib/freadahead.c
2--- coreutils-8.18/lib/freadahead.c	2012-07-15 06:26:12.000000000 -0600
3+++ coreutils-8.18-patched/lib/freadahead.c	2019-08-01 19:22:13.169332844 -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.18/lib/freadptr.c coreutils-8.18-patched/lib/freadptr.c
14--- coreutils-8.18/lib/freadptr.c	2012-07-15 06:26:12.000000000 -0600
15+++ coreutils-8.18-patched/lib/freadptr.c	2019-08-01 19:22:13.169332844 -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.18/lib/freadseek.c coreutils-8.18-patched/lib/freadseek.c
26--- coreutils-8.18/lib/freadseek.c	2012-07-15 06:26:12.000000000 -0600
27+++ coreutils-8.18-patched/lib/freadseek.c	2019-08-01 19:23:20.070111747 -0600
28@@ -36,7 +36,7 @@
29   /* Keep this code in sync with freadptr!  */
30 #if HAVE___FREADPTRINC              /* musl libc */
31   __freadptrinc (fp, increment);
32-#elif defined _IO_ftrylockfile || __GNU_LIBRARY__ == 1 /* GNU libc, BeOS, Haiku, Linux libc5 */
33+#elif 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, Mac OS X, Cygwin */
36   fp_->_p += increment;
37diff -r -U3 coreutils-8.18/lib/fseeko.c coreutils-8.18-patched/lib/fseeko.c
38--- coreutils-8.18/lib/fseeko.c	2012-07-13 08:18:33.000000000 -0600
39+++ coreutils-8.18-patched/lib/fseeko.c	2019-08-01 19:22:13.169332844 -0600
40@@ -47,7 +47,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.18/lib/fseterr.c coreutils-8.18-patched/lib/fseterr.c
50--- coreutils-8.18/lib/fseterr.c	2012-07-15 06:26:12.000000000 -0600
51+++ coreutils-8.18-patched/lib/fseterr.c	2019-08-01 19:22:13.169332844 -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, Mac OS X, Cygwin */
60   fp_->_flags |= __SERR;
61diff -r -U3 coreutils-8.18/lib/stdio-impl.h coreutils-8.18-patched/lib/stdio-impl.h
62--- coreutils-8.18/lib/stdio-impl.h	2012-07-15 06:26:12.000000000 -0600
63+++ coreutils-8.18-patched/lib/stdio-impl.h	2019-08-01 19:22:13.169332844 -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.18/lib/stdio.in.h coreutils-8.18-patched/lib/stdio.in.h
78--- coreutils-8.18/lib/stdio.in.h	2012-06-12 14:43:46.000000000 -0600
79+++ coreutils-8.18-patched/lib/stdio.in.h	2019-08-01 19:22:13.169332844 -0600
80@@ -704,7 +704,7 @@
81    removed it.  */
82 #undef gets
83 #if HAVE_RAW_DECL_GETS
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