[Buildroot] [PATCH] package/tmux: fix build

Yann E. MORIN yann.morin.1998 at free.fr
Sun Feb 5 16:21:26 UTC 2017


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 wihch 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 at free.fr>
---
 ...t-re-define-program_invocation_short_name.patch | 42 ++++++++++++++++++++++
 1 file changed, 42 insertions(+)
 create mode 100644 package/tmux/0001-compat-don-t-re-define-program_invocation_short_name.patch

diff --git a/package/tmux/0001-compat-don-t-re-define-program_invocation_short_name.patch b/package/tmux/0001-compat-don-t-re-define-program_invocation_short_name.patch
new file mode 100644
index 0000000..bddc2c7
--- /dev/null
+++ b/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 at 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 at 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
+
-- 
2.7.4



More information about the buildroot mailing list