unofficial mirror of emacs-devel@gnu.org 
 help / color / mirror / code / Atom feed
* Should Emacs 26 be portable to Glibc 2.28?
@ 2018-03-08  2:09 Paul Eggert
  2018-03-08 13:39 ` Eli Zaretskii
  0 siblings, 1 reply; 3+ messages in thread
From: Paul Eggert @ 2018-03-08  2:09 UTC (permalink / raw)
  To: Emacs development discussions

[-- 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.  */
 

^ permalink raw reply related	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2018-03-09  1:11 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2018-03-08  2:09 Should Emacs 26 be portable to Glibc 2.28? Paul Eggert
2018-03-08 13:39 ` Eli Zaretskii
2018-03-09  1:11   ` Paul Eggert

Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).