summaryrefslogtreecommitdiffstats
path: root/meta/recipes-core/coreutils/coreutils/0001-fflush-adjust-to-glibc-2.28-libio.h-removal.patch
diff options
context:
space:
mode:
Diffstat (limited to 'meta/recipes-core/coreutils/coreutils/0001-fflush-adjust-to-glibc-2.28-libio.h-removal.patch')
-rw-r--r--meta/recipes-core/coreutils/coreutils/0001-fflush-adjust-to-glibc-2.28-libio.h-removal.patch193
1 files changed, 193 insertions, 0 deletions
diff --git a/meta/recipes-core/coreutils/coreutils/0001-fflush-adjust-to-glibc-2.28-libio.h-removal.patch b/meta/recipes-core/coreutils/coreutils/0001-fflush-adjust-to-glibc-2.28-libio.h-removal.patch
new file mode 100644
index 0000000000..110b34372d
--- /dev/null
+++ b/meta/recipes-core/coreutils/coreutils/0001-fflush-adjust-to-glibc-2.28-libio.h-removal.patch
@@ -0,0 +1,193 @@
1From 269a8987224ec62b7a9aa6202772b07d5be424d2 Mon Sep 17 00:00:00 2001
2From: =?UTF-8?q?Stefan=20M=C3=BCller-Klieser?= <s.mueller-klieser@phytec.de>
3Date: Mon, 11 Mar 2019 16:00:33 +0100
4Subject: [PATCH 1/2] fflush: adjust to glibc 2.28 libio.h removal
5MIME-Version: 1.0
6Content-Type: text/plain; charset=UTF-8
7Content-Transfer-Encoding: 8bit
8
9Backport of patch:
104af4a4a71827c0bc5e0ec67af23edef4f15cee8e
11Paul Eggert <eggert@cs.ucla.edu>
12fflush: adjust to glibc 2.28 libio.h removal
13
14Upstream-Status: Backport [master]
15
16Signed-off-by: Stefan Müller-Klieser <s.mueller-klieser@phytec.de>
17---
18 lib/fflush.c | 6 +++---
19 lib/fpending.c | 2 +-
20 lib/fpurge.c | 2 +-
21 lib/freadahead.c | 2 +-
22 lib/freading.c | 2 +-
23 lib/freadptr.c | 2 +-
24 lib/freadseek.c | 2 +-
25 lib/fseeko.c | 4 ++--
26 lib/fseterr.c | 2 +-
27 lib/stdio-impl.h | 6 ++++++
28 10 files changed, 18 insertions(+), 12 deletions(-)
29
30diff --git a/lib/fflush.c b/lib/fflush.c
31index 4e65692644b1..c16da5fdcf23 100644
32--- a/lib/fflush.c
33+++ b/lib/fflush.c
34@@ -33,7 +33,7 @@
35 #undef fflush
36
37
38-#if defined _IO_ftrylockfile || __GNU_LIBRARY__ == 1 /* GNU libc, BeOS, Haiku, Linux libc5 */
39+#if defined _IO_EOF_SEEN || __GNU_LIBRARY__ == 1 /* GNU libc, BeOS, Haiku, Linux libc5 */
40
41 /* Clear the stream's ungetc buffer, preserving the value of ftello (fp). */
42 static void
43@@ -72,7 +72,7 @@ clear_ungetc_buffer (FILE *fp)
44
45 #endif
46
47-#if ! (defined _IO_ftrylockfile || __GNU_LIBRARY__ == 1 /* GNU libc, BeOS, Haiku, Linux libc5 */)
48+#if ! (defined _IO_EOF_SEEN || __GNU_LIBRARY__ == 1 /* GNU libc, BeOS, Haiku, Linux libc5 */)
49
50 # if (defined __sferror || defined __DragonFly__ || defined __ANDROID__) && defined __SNPT
51 /* FreeBSD, NetBSD, OpenBSD, DragonFly, Mac OS X, Cygwin, Minix 3, Android */
52@@ -148,7 +148,7 @@ rpl_fflush (FILE *stream)
53 if (stream == NULL || ! freading (stream))
54 return fflush (stream);
55
56-#if defined _IO_ftrylockfile || __GNU_LIBRARY__ == 1 /* GNU libc, BeOS, Haiku, Linux libc5 */
57+#if defined _IO_EOF_SEEN || __GNU_LIBRARY__ == 1 /* GNU libc, BeOS, Haiku, Linux libc5 */
58
59 clear_ungetc_buffer_preserving_position (stream);
60
61diff --git a/lib/fpending.c b/lib/fpending.c
62index 5811a4a74750..9e21a165e220 100644
63--- a/lib/fpending.c
64+++ b/lib/fpending.c
65@@ -32,7 +32,7 @@ __fpending (FILE *fp)
66 /* Most systems provide FILE as a struct and the necessary bitmask in
67 <stdio.h>, because they need it for implementing getc() and putc() as
68 fast macros. */
69-#if defined _IO_ftrylockfile || __GNU_LIBRARY__ == 1 /* GNU libc, BeOS, Haiku, Linux libc5 */
70+#if defined _IO_EOF_SEEN || __GNU_LIBRARY__ == 1 /* GNU libc, BeOS, Haiku, Linux libc5 */
71 return fp->_IO_write_ptr - fp->_IO_write_base;
72 #elif defined __sferror || defined __DragonFly__ || defined __ANDROID__
73 /* FreeBSD, NetBSD, OpenBSD, DragonFly, Mac OS X, Cygwin, Minix 3, Android */
74diff --git a/lib/fpurge.c b/lib/fpurge.c
75index 408b8fcbb3b8..3a160004d49d 100644
76--- a/lib/fpurge.c
77+++ b/lib/fpurge.c
78@@ -62,7 +62,7 @@ fpurge (FILE *fp)
79 /* Most systems provide FILE as a struct and the necessary bitmask in
80 <stdio.h>, because they need it for implementing getc() and putc() as
81 fast macros. */
82-# if defined _IO_ftrylockfile || __GNU_LIBRARY__ == 1 /* GNU libc, BeOS, Haiku, Linux libc5 */
83+# if defined _IO_EOF_SEEN || __GNU_LIBRARY__ == 1 /* GNU libc, BeOS, Haiku, Linux libc5 */
84 fp->_IO_read_end = fp->_IO_read_ptr;
85 fp->_IO_write_ptr = fp->_IO_write_base;
86 /* Avoid memory leak when there is an active ungetc buffer. */
87diff --git a/lib/freadahead.c b/lib/freadahead.c
88index f335f041ee5e..e7cb77b6722b 100644
89--- a/lib/freadahead.c
90+++ b/lib/freadahead.c
91@@ -30,7 +30,7 @@ extern size_t __sreadahead (FILE *);
92 size_t
93 freadahead (FILE *fp)
94 {
95-#if defined _IO_ftrylockfile || __GNU_LIBRARY__ == 1 /* GNU libc, BeOS, Haiku, Linux libc5 */
96+#if defined _IO_EOF_SEEN || __GNU_LIBRARY__ == 1 /* GNU libc, BeOS, Haiku, Linux libc5 */
97 if (fp->_IO_write_ptr > fp->_IO_write_base)
98 return 0;
99 return (fp->_IO_read_end - fp->_IO_read_ptr)
100diff --git a/lib/freading.c b/lib/freading.c
101index 78140d27bfef..c9d33449e948 100644
102--- a/lib/freading.c
103+++ b/lib/freading.c
104@@ -31,7 +31,7 @@ freading (FILE *fp)
105 /* Most systems provide FILE as a struct and the necessary bitmask in
106 <stdio.h>, because they need it for implementing getc() and putc() as
107 fast macros. */
108-# if defined _IO_ftrylockfile || __GNU_LIBRARY__ == 1 /* GNU libc, BeOS, Haiku, Linux libc5 */
109+# if defined _IO_EOF_SEEN || __GNU_LIBRARY__ == 1 /* GNU libc, BeOS, Haiku, Linux libc5 */
110 return ((fp->_flags & _IO_NO_WRITES) != 0
111 || ((fp->_flags & (_IO_NO_READS | _IO_CURRENTLY_PUTTING)) == 0
112 && fp->_IO_read_base != NULL));
113diff --git a/lib/freadptr.c b/lib/freadptr.c
114index e4cc0b02fba2..aba8dd5964fc 100644
115--- a/lib/freadptr.c
116+++ b/lib/freadptr.c
117@@ -29,7 +29,7 @@ freadptr (FILE *fp, size_t *sizep)
118 size_t size;
119
120 /* Keep this code in sync with freadahead! */
121-#if defined _IO_ftrylockfile || __GNU_LIBRARY__ == 1 /* GNU libc, BeOS, Haiku, Linux libc5 */
122+#if defined _IO_EOF_SEEN || __GNU_LIBRARY__ == 1 /* GNU libc, BeOS, Haiku, Linux libc5 */
123 if (fp->_IO_write_ptr > fp->_IO_write_base)
124 return NULL;
125 size = fp->_IO_read_end - fp->_IO_read_ptr;
126diff --git a/lib/freadseek.c b/lib/freadseek.c
127index fcecba6829c5..98726f845f88 100644
128--- a/lib/freadseek.c
129+++ b/lib/freadseek.c
130@@ -36,7 +36,7 @@ freadptrinc (FILE *fp, size_t increment)
131 /* Keep this code in sync with freadptr! */
132 #if HAVE___FREADPTRINC /* musl libc */
133 __freadptrinc (fp, increment);
134-#elif defined _IO_ftrylockfile || __GNU_LIBRARY__ == 1 /* GNU libc, BeOS, Haiku, Linux libc5 */
135+#elif defined _IO_EOF_SEEN || __GNU_LIBRARY__ == 1 /* GNU libc, BeOS, Haiku, Linux libc5 */
136 fp->_IO_read_ptr += increment;
137 #elif defined __sferror || defined __DragonFly__ || defined __ANDROID__
138 /* FreeBSD, NetBSD, OpenBSD, DragonFly, Mac OS X, Cygwin, Minix 3, Android */
139diff --git a/lib/fseeko.c b/lib/fseeko.c
140index d0f24d8a838f..0ae2b153cff5 100644
141--- a/lib/fseeko.c
142+++ b/lib/fseeko.c
143@@ -47,7 +47,7 @@ fseeko (FILE *fp, off_t offset, int whence)
144 #endif
145
146 /* These tests are based on fpurge.c. */
147-#if defined _IO_ftrylockfile || __GNU_LIBRARY__ == 1 /* GNU libc, BeOS, Haiku, Linux libc5 */
148+#if defined _IO_EOF_SEEN || __GNU_LIBRARY__ == 1 /* GNU libc, BeOS, Haiku, Linux libc5 */
149 if (fp->_IO_read_end == fp->_IO_read_ptr
150 && fp->_IO_write_ptr == fp->_IO_write_base
151 && fp->_IO_save_base == NULL)
152@@ -123,7 +123,7 @@ fseeko (FILE *fp, off_t offset, int whence)
153 return -1;
154 }
155
156-#if defined _IO_ftrylockfile || __GNU_LIBRARY__ == 1 /* GNU libc, BeOS, Haiku, Linux libc5 */
157+#if defined _IO_EOF_SEEN || __GNU_LIBRARY__ == 1 /* GNU libc, BeOS, Haiku, Linux libc5 */
158 fp->_flags &= ~_IO_EOF_SEEN;
159 fp->_offset = pos;
160 #elif defined __sferror || defined __DragonFly__ || defined __ANDROID__
161diff --git a/lib/fseterr.c b/lib/fseterr.c
162index 739e5453d04e..d998619771f3 100644
163--- a/lib/fseterr.c
164+++ b/lib/fseterr.c
165@@ -29,7 +29,7 @@ fseterr (FILE *fp)
166 /* Most systems provide FILE as a struct and the necessary bitmask in
167 <stdio.h>, because they need it for implementing getc() and putc() as
168 fast macros. */
169-#if defined _IO_ftrylockfile || __GNU_LIBRARY__ == 1 /* GNU libc, BeOS, Haiku, Linux libc5 */
170+#if defined _IO_EOF_SEEN || __GNU_LIBRARY__ == 1 /* GNU libc, BeOS, Haiku, Linux libc5 */
171 fp->_flags |= _IO_ERR_SEEN;
172 #elif defined __sferror || defined __DragonFly__ || defined __ANDROID__
173 /* FreeBSD, NetBSD, OpenBSD, DragonFly, Mac OS X, Cygwin, Minix 3, Android */
174diff --git a/lib/stdio-impl.h b/lib/stdio-impl.h
175index 329801ad23b0..eeaabab66b2f 100644
176--- a/lib/stdio-impl.h
177+++ b/lib/stdio-impl.h
178@@ -18,6 +18,12 @@
179 the same implementation of stdio extension API, except that some fields
180 have different naming conventions, or their access requires some casts. */
181
182+/* Glibc 2.28 made _IO_IN_BACKUP private. For now, work around this
183+ problem by defining it ourselves. FIXME: Do not rely on glibc
184+ internals. */
185+#if !defined _IO_IN_BACKUP && defined _IO_EOF_SEEN
186+# define _IO_IN_BACKUP 0x100
187+#endif
188
189 /* BSD stdio derived implementations. */
190
191--
1922.20.1
193