Parcourir la source

package/tmux: fix build

The bump to the latest libevent version exposed a latent bug in tmux,
which tries to re-define a variable exposed by the C library.

This breaks with uClibc-ng which defines it const char*, while glibc and
musl define it as non-const.

Fixes:
    http://autobuild.buildroot.org/results/31d/31d37c95b40d297b90a6181ec79c42ee1e2e5090/
    http://autobuild.buildroot.org/results/ccc/ccc9d2e995ba1eaf19f6b325b0af5ebeb8066e7f/
    http://autobuild.buildroot.org/results/8a2/8a28d43bd0c079c1b49b61b0c6ef7de79eda0549/

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Yann E. MORIN il y a 8 ans
Parent
commit
7d987f16ed

+ 42 - 0
package/tmux/0001-compat-don-t-re-define-program_invocation_short_name.patch

@@ -0,0 +1,42 @@
+From 9b18a98614a9f201b0883c2b15e7c7bde0aa0ff2 Mon Sep 17 00:00:00 2001
+From: "Yann E. MORIN" <yann.morin.1998@free.fr>
+Date: Sun, 5 Feb 2017 17:12:00 +0100
+Subject: [PATCH] compat: don't re-define program_invocation_short_name
+
+program_invocation_short_name is defined in errno.h, and its definition
+can differ between the various C libraries: glibc defines it as:
+    extern char *program_invocation_short_name;
+
+while uClibc defines it as:
+    extern const char *program_invocation_short_name;
+
+So there is not simple solution to know the prototype.
+
+But since it is defined in errno.h, there is no reason to try and define
+it ourselves; let's just trust what the header provides.
+
+Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
+---
+ compat/getprogname.c | 3 +--
+ 1 file changed, 1 insertion(+), 2 deletions(-)
+
+diff --git a/compat/getprogname.c b/compat/getprogname.c
+index 80a496d..ad619fc 100644
+--- a/compat/getprogname.c
++++ b/compat/getprogname.c
+@@ -19,11 +19,10 @@
+ #include "compat.h"
+ 
+ #if defined(HAVE_PROGRAM_INVOCATION_SHORT_NAME)
++#include <errno.h>
+ const char *
+ getprogname(void)
+ {
+-	extern char	*program_invocation_short_name;
+-
+ 	return (program_invocation_short_name);
+ }
+ #elif defined(HAVE___PROGNAME)
+-- 
+2.7.4
+