diff options
Diffstat (limited to 'user/mariadb/libedit.patch')
-rw-r--r-- | user/mariadb/libedit.patch | 57 |
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() |