[Buildroot] [git commit] ncmpc: fix build with gcc 4.9

Peter Korsgaard peter at korsgaard.com
Thu Sep 27 11:57:58 UTC 2018


commit: https://git.buildroot.net/buildroot/commit/?id=1f5bec6fac04276c5ef84f4def70fd2302d8b4c3
branch: https://git.buildroot.net/buildroot/commit/?id=refs/heads/master

Add upstream patch to fix build on gcc 4.9

Fixes:
 - http://autobuild.buildroot.org/results/e3b1b1bdad841c151b70294d517dc75c5305b0fe

Signed-off-by: Fabrice Fontaine <fontaine.fabrice at gmail.com>
Signed-off-by: Peter Korsgaard <peter at korsgaard.com>
---
 ...ings-constructor-to-simplify-initializers.patch | 217 +++++++++++++++++++++
 1 file changed, 217 insertions(+)

diff --git a/package/ncmpc/0002-Global-Bindings-add-KeyBindings-constructor-to-simplify-initializers.patch b/package/ncmpc/0002-Global-Bindings-add-KeyBindings-constructor-to-simplify-initializers.patch
new file mode 100644
index 0000000000..217fa9b55b
--- /dev/null
+++ b/package/ncmpc/0002-Global-Bindings-add-KeyBindings-constructor-to-simplify-initializers.patch
@@ -0,0 +1,217 @@
+From da27fcc39e187671b5e4373848f701a3d910446c Mon Sep 17 00:00:00 2001
+From: Max Kellermann <max at musicpd.org>
+Date: Wed, 26 Sep 2018 09:51:09 +0200
+Subject: [PATCH] {Global,}Bindings: add KeyBindings constructor to simplify
+ initializers
+
+As a side effect, this works around a build failure with GCC 4.9.
+
+Signed-off-by: Fabrice Fontaine <fontaine.fabrice at gmail.com>
+[Retrieved from 
+https://github.com/MusicPlayerDaemon/ncmpc/commit/da27fcc39e187671b5e4373848f701a3d910446c
+and updated for 0.31 (remove NEWS update)]
+---
+ src/Bindings.hxx       |   3 +
+ src/GlobalBindings.cxx | 142 ++++++++++++++++++++---------------------
+ 3 files changed, 75 insertions(+), 71 deletions(-)
+
+diff --git a/src/Bindings.hxx b/src/Bindings.hxx
+index 342d951..0c630dc 100644
+--- a/src/Bindings.hxx
++++ b/src/Bindings.hxx
+@@ -42,6 +42,9 @@ struct KeyBinding {
+ 	bool modified = false;
+ #endif
+ 
++	constexpr KeyBinding(int a, int b=0, int c=0) noexcept
++		:keys{{a, b, c}} {}
++
+ 	gcc_pure
+ 	bool HasKey(int key) const {
+ 		return std::find(keys.begin(), keys.end(), key) != keys.end();
+diff --git a/src/GlobalBindings.cxx b/src/GlobalBindings.cxx
+index b565848..8049ed2 100644
+--- a/src/GlobalBindings.cxx
++++ b/src/GlobalBindings.cxx
+@@ -51,110 +51,110 @@
+ 
+ static KeyBindings global_key_bindings{{{
+ #ifdef ENABLE_KEYDEF_SCREEN
+-	{ {'K', 0, 0 } },
++	{'K'},
+ #endif
+-	{ { 'q', 'Q', C('C') } },
++	{'q', 'Q', C('C')},
+ 
+ 	/* movement */
+-	{ { UP, 'k', 0 } },
+-	{ { DWN, 'j', 0 } },
+-	{ { 'H', 0, 0 } },
+-	{ { 'M', 0, 0 } },
+-	{ { 'L', 0, 0 } },
+-	{ { HOME, C('A'), 0 } },
+-	{ { END, C('E'), 0 } },
+-	{ { PGUP, 0, 0 } },
+-	{ { PGDN, 0, 0 } },
+-	{ { 'v',  0, 0 } },
+-	{ { C('N'),  0, 0 } },
+-	{ { C('B'),  0, 0 } },
+-	{ { 'N',  0, 0 } },
+-	{ { 'B',  0, 0 } },
+-	{ { 'l', 0, 0 } },
++	{UP, 'k'},
++	{DWN, 'j'},
++	{'H'},
++	{'M'},
++	{'L'},
++	{HOME, C('A')},
++	{END, C('E')},
++	{PGUP},
++	{PGDN},
++	{'v',  0},
++	{C('N'),  0},
++	{C('B'),  0},
++	{'N',  0},
++	{'B',  0},
++	{'l'},
+ 
+ 	/* basic screens */
+-	{ { '1', F1, 'h' } },
+-	{ { '2', F2, 0 } },
+-	{ { '3', F3, 0 } },
++	{'1', F1, 'h'},
++	{'2', F2},
++	{'3', F3},
+ 
+ 	/* player commands */
+-	{ { RET, 0, 0 } },
+-	{ { 'P', 0, 0 } },
+-	{ { 's', BS, 0 } },
+-	{ { 'o', 0, 0 } },
+-	{ { '>', 0, 0 } },
+-	{ { '<', 0, 0 } },
+-	{ { 'f', 0, 0 } },
+-	{ { 'b', 0, 0 } },
+-	{ { '+', RGHT, 0 } },
+-	{ { '-', LEFT, 0 } },
+-	{ { ' ', 0, 0 } },
+-	{ { 't', 0, 0 } },
+-	{ { DEL, 'd', 0 } },
+-	{ { 'Z', 0, 0 } },
+-	{ { 'c', 0, 0 } },
+-	{ { 'r', 0, 0 } },
+-	{ { 'z', 0, 0 } },
+-	{ { 'y', 0, 0 } },
+-	{ { 'C', 0, 0 } },
+-	{ { 'x', 0, 0 } },
+-	{ { C('U'), 0, 0 } },
+-	{ { 'S', 0, 0 } },
+-	{ { 'a', 0, 0 } },
+-
+-	{ { '!', 0, 0 } },
+-	{ { '"', 0, 0 } },
+-
+-	{ { 'G', 0, 0 } },
++	{RET},
++	{'P'},
++	{'s', BS},
++	{'o'},
++	{'>'},
++	{'<'},
++	{'f'},
++	{'b'},
++	{'+', RGHT},
++	{'-', LEFT},
++	{' '},
++	{'t'},
++	{DEL, 'd'},
++	{'Z'},
++	{'c'},
++	{'r'},
++	{'z'},
++	{'y'},
++	{'C'},
++	{'x'},
++	{C('U')},
++	{'S'},
++	{'a'},
++
++	{'!'},
++	{'"'},
++
++	{'G'},
+ 
+ 	/* lists */
+-	{ { C('K'), 0, 0 } },
+-	{ { C('J'), 0, 0 } },
+-	{ { C('L'), 0, 0 } },
++	{C('K')},
++	{C('J')},
++	{C('L')},
+ 
+ 
+ 	/* ncmpc options */
+-	{ { 'w', 0, 0 } },
+-	{ { 'U', 0, 0 } },
++	{'w'},
++	{'U'},
+ 
+ 	/* change screen */
+-	{ { TAB, 0, 0 } },
+-	{ { STAB, 0, 0 } },
+-	{ { '`', 0, 0 } },
++	{TAB},
++	{STAB},
++	{'`'},
+ 
+ 
+ 	/* find */
+-	{ { '/', 0, 0 } },
+-	{ { 'n', 0, 0 } },
+-	{ { '?', 0, 0 } },
+-	{ { 'p', 0, 0 } },
+-	{ { '.', 0, 0 } },
++	{'/'},
++	{'n'},
++	{'?'},
++	{'p'},
++	{'.'},
+ 
+ 
+ 	/* extra screens */
+ #ifdef ENABLE_ARTIST_SCREEN
+-	{ {'4', F4, 0 } },
++	{'4', F4},
+ #endif
+ #ifdef ENABLE_SEARCH_SCREEN
+-	{ {'5', F5, 0 } },
+-	{ {'m', 0, 0 } },
++	{'5', F5},
++	{'m'},
+ #endif
+ #ifdef ENABLE_SONG_SCREEN
+-	{ { 'i', 0, 0 } },
++	{'i'},
+ #endif
+ #ifdef ENABLE_LYRICS_SCREEN
+-	{ {'7', F7, 0 } },
+-	{ {ESC, 0, 0 } },
+-	{ {'u', 0, 0 } },
+-	{ {'e', 0, 0 } },
++	{'7', F7},
++	{ESC},
++	{'u'},
++	{'e'},
+ #endif
+ 
+ #ifdef ENABLE_OUTPUTS_SCREEN
+-	{ {'8', F8, 0 } },
++	{'8', F8},
+ #endif
+ 
+ #ifdef ENABLE_CHAT_SCREEN
+-	{ {'9', F9, 0} },
++	{'9', F9},
+ #endif
+ }}};
+ 


More information about the buildroot mailing list