all messages for Emacs-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
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.  */
 

             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.