sys-devel/bison: add patch to fix crash at runtime on Darwin 17, bug #632500
authorFabian Groffen <grobian@gentoo.org>
Sun, 12 Nov 2017 12:20:31 +0000 (13:20 +0100)
committerFabian Groffen <grobian@gentoo.org>
Sun, 12 Nov 2017 12:20:31 +0000 (13:20 +0100)
Package-Manager: Portage-2.3.8, Repoman-2.3.3

sys-devel/bison/bison-3.0.4-r1.ebuild
sys-devel/bison/files/bison-3.0.4-darwin17-printf-n.patch [new file with mode: 0644]

index c20e7436f012c773cdaf5c37c1f98ad361b5a0af..ab8dcc62aa619b19ed3afdf7296df7b6e981faea 100644 (file)
@@ -25,6 +25,7 @@ DOCS=( AUTHORS ChangeLog-2012 NEWS README THANKS TODO ) # ChangeLog-1998 PACKAGI
 
 src_prepare() {
        epatch "${FILESDIR}"/${P}-optional-perl.patch #538300
+       epatch "${FILESDIR}"/${P}-darwin17-printf-n.patch #632500
        # The makefiles make the man page depend on the configure script
        # which we patched above.  Touch it to prevent regeneration.
        touch doc/bison.1 #548778 #538300#9
diff --git a/sys-devel/bison/files/bison-3.0.4-darwin17-printf-n.patch b/sys-devel/bison/files/bison-3.0.4-darwin17-printf-n.patch
new file mode 100644 (file)
index 0000000..1c77ed7
--- /dev/null
@@ -0,0 +1,30 @@
+http://lists.gnu.org/archive/html/bug-gnulib/2017-07/txtmumXtpD69v.txt
+
+extract of only the relevant hunk to avoid irrelevant conflicts
+
+From c41f233c4c38e84023a16339782ee306f03e7f59 Mon Sep 17 00:00:00 2001
+From: Paul Eggert <address@hidden>
+Date: Fri, 7 Jul 2017 14:10:20 -0700
+Subject: [PATCH] vasnprintf: port to macOS 10.13
+
+Problem reported by comex in:
+http://lists.gnu.org/archive/html/bug-gnulib/2017-07/msg00056.html
+* lib/vasnprintf.c (VASNPRINTF): DonĂ¢\80\99t use %n on macOS.
+
+diff --git a/lib/vasnprintf.c b/lib/vasnprintf.c
+index 9c2af0e..fecaf27 100644
+--- a/lib/vasnprintf.c
++++ b/lib/vasnprintf.c
+@@ -4869,7 +4869,11 @@ VASNPRINTF (DCHAR_T *resultbuf, size_t *lengthp,
+ #endif
+                   *fbp = dp->conversion;
+ #if USE_SNPRINTF
+-# if !(((__GLIBC__ > 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 3)) && !defined __UCLIBC__) || ((defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__))
++# if ! (((__GLIBC__ > 2                                                 \
++          || (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 3))                  \
++         && !defined __UCLIBC__)                                        \
++        || (defined __APPLE__ && defined __MACH__)                      \
++        || ((defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__))
+                 fbp[1] = '%';
+                 fbp[2] = 'n';
+                 fbp[3] = '\0';