summaryrefslogtreecommitdiff
path: root/user/mariadb/libedit.patch
diff options
context:
space:
mode:
Diffstat (limited to 'user/mariadb/libedit.patch')
-rw-r--r--user/mariadb/libedit.patch57
1 files changed, 57 insertions, 0 deletions
diff --git a/user/mariadb/libedit.patch b/user/mariadb/libedit.patch
new file mode 100644
index 000000000..14dc9db49
--- /dev/null
+++ b/user/mariadb/libedit.patch
@@ -0,0 +1,57 @@
+From d9342e88289fa588ea2f1a094dbfc32f0693e23d Mon Sep 17 00:00:00 2001
+From: Sebastian Kemper <sebastian_ml@gmx.net>
+Date: Tue, 9 Apr 2019 22:28:10 +0200
+Subject: [PATCH] cmake: support new libedit interface
+
+libedit changed it's interface a while ago. MariaDB's cmake file doesn't
+recognize the new interface, the compile test fails:
+
+/mariadb-10.2.19/CMakeFiles/CMakeTmp/src.cxx: In function 'int main(int, char**)':
+/mariadb-10.2.19/CMakeFiles/CMakeTmp/src.cxx:6:47: error: invalid conversion from 'char*' to 'int' [-fpermissive]
+ int res= (*rl_completion_entry_function)(0,0);
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~
+
+Fix this by adding a detection for the new interface as well.
+
+Run-tested on a MIPS machine.
+
+Signed-off-by: Sebastian Kemper <sebastian_ml@gmx.net>
+---
+ cmake/readline.cmake | 17 +++++++++++++++--
+ 1 file changed, 15 insertions(+), 2 deletions(-)
+
+diff --git a/cmake/readline.cmake b/cmake/readline.cmake
+index 12a8980b6a90..a2b2cc4c241f 100644
+--- a/cmake/readline.cmake
++++ b/cmake/readline.cmake
+@@ -160,8 +160,20 @@ MACRO (MYSQL_FIND_SYSTEM_LIBEDIT)
+ int res= (*rl_completion_entry_function)(0,0);
+ completion_matches(0,0);
+ }"
+- LIBEDIT_INTERFACE)
+- SET(USE_LIBEDIT_INTERFACE ${LIBEDIT_INTERFACE})
++ LIBEDIT_HAVE_COMPLETION_INT)
++
++ CHECK_CXX_SOURCE_COMPILES("
++ #include <stdio.h>
++ #include <readline.h>
++ int main(int argc, char **argv)
++ {
++ char res= *(*rl_completion_entry_function)(0,0);
++ completion_matches(0,0);
++ }"
++ LIBEDIT_HAVE_COMPLETION_CHAR)
++ IF(LIBEDIT_HAVE_COMPLETION_INT OR LIBEDIT_HAVE_COMPLETION_CHAR)
++ SET(USE_LIBEDIT_INTERFACE 1)
++ ENDIF()
+ ENDIF()
+ ENDMACRO()
+
+@@ -187,6 +199,7 @@ MACRO (MYSQL_CHECK_READLINE)
+ IF(USE_LIBEDIT_INTERFACE)
+ SET(MY_READLINE_INCLUDE_DIR ${LIBEDIT_INCLUDE_DIR})
+ SET(MY_READLINE_LIBRARY ${LIBEDIT_LIBRARY} ${CURSES_LIBRARY})
++ SET(USE_NEW_READLINE_INTERFACE ${LIBEDIT_HAVE_COMPLETION_CHAR})
+ ELSE()
+ MYSQL_USE_BUNDLED_READLINE()
+ ENDIF()