Last active
February 2, 2022 16:52
-
-
Save hutson/500cc2a6b3dd6033b783da2ade90750f to your computer and use it in GitHub Desktop.
m4 1.4.18
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
From c79aedf13fe693da0fc5c4ff727aed5bd43526dc Mon Sep 17 00:00:00 2001 | |
From: Hutson Betts <[email protected]> | |
Date: Thu, 10 Dec 2020 21:13:54 -0600 | |
Subject: [PATCH] glibc 2.28 | |
diff --git a/lib/fflush.c b/lib/fflush.c | |
index ef2a7f1..787790d 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, 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/fpending.c b/lib/fpending.c | |
index ce93604..9fe7ffb 100644 | |
--- a/lib/fpending.c | |
+++ b/lib/fpending.c | |
@@ -32,7 +32,7 @@ __fpending (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->_IO_write_ptr - fp->_IO_write_base; | |
#elif defined __sferror || defined __DragonFly__ || defined __ANDROID__ | |
/* FreeBSD, NetBSD, OpenBSD, DragonFly, Mac OS X, Cygwin, Android */ | |
diff --git a/lib/fpurge.c b/lib/fpurge.c | |
index 53ee68c..7cba3a3 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/freadahead.c b/lib/freadahead.c | |
index cfc969b..5e43e13 100644 | |
--- a/lib/freadahead.c | |
+++ b/lib/freadahead.c | |
@@ -25,7 +25,7 @@ | |
size_t | |
freadahead (FILE *fp) | |
{ | |
-#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_write_ptr > fp->_IO_write_base) | |
return 0; | |
return (fp->_IO_read_end - fp->_IO_read_ptr) | |
diff --git a/lib/freading.c b/lib/freading.c | |
index 05cb0b8..f1da5b9 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 0c01c4f..0601619 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/stdio-impl.h b/lib/stdio-impl.h | |
index 766d693..75fe3ad 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.25.1 | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment