From: Paul Eggert <eggert@cs.ucla.edu>
To: Emacs development discussions <emacs-devel@gnu.org>
Subject: Should Emacs 26 be portable to Glibc 2.28?
Date: Wed, 7 Mar 2018 18:09:49 -0800 [thread overview]
Message-ID: <96913ef6-44d4-cd63-8a37-5080be2d22dc@cs.ucla.edu> (raw)
[-- Attachment #1: Type: text/plain, Size: 685 bytes --]
The attached patch, which I've installed into Emacs master, fixes a
incompatibility between Emacs and the planned 2.28 release of glibc.
Should I install it into the emacs-26 branch? glibc 2.28 is currently
scheduled for August, so this shouldn't be much of an issue until then;
however, as the patch is reasonably conservative and it's likely there
won't be another Emacs release before August, it might make sense to
install this patch into the emacs-26 branch now.
The underlying problem is that Emacs (via gnulib) mucks with glibc
internals that are planned to change in glibc 2.28. For more see the
thread here:
https://lists.gnu.org/r/bug-gnulib/2018-03/msg00000.html
[-- Attachment #2: t.patch --]
[-- Type: text/x-patch, Size: 1326 bytes --]
diff --git a/lib/fpending.c b/lib/fpending.c
index c84e3a5b4e..789f50e4e4 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, Minix 3, Android */
diff --git a/lib/stdio-impl.h b/lib/stdio-impl.h
index 78d896e9f5..05c5752a24 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. */
next reply other threads:[~2018-03-08 2:09 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-03-08 2:09 Paul Eggert [this message]
2018-03-08 13:39 ` Should Emacs 26 be portable to Glibc 2.28? Eli Zaretskii
2018-03-09 1:11 ` Paul Eggert
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=96913ef6-44d4-cd63-8a37-5080be2d22dc@cs.ucla.edu \
--to=eggert@cs.ucla.edu \
--cc=emacs-devel@gnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this external index
https://git.savannah.gnu.org/cgit/emacs.git
https://git.savannah.gnu.org/cgit/emacs/org-mode.git
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.