summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorunknown <vva@eagle.mysql.r18.ru>2004-08-24 19:23:23 +0500
committerunknown <vva@eagle.mysql.r18.ru>2004-08-24 19:23:23 +0500
commitde225e637a65366aab0ad5fd8b08f24af8ee8f67 (patch)
tree9448cab63e74b61a56dbd133d3ef099a5244f068
parent83e3d3f9a3ab6888292b8bcb15e0f77f00249289 (diff)
downloadmariadb-git-de225e637a65366aab0ad5fd8b08f24af8ee8f67.tar.gz
fixed :
Bug #3937 fails to compile with both gcc 3.3.3/icc8 Bug #4728 mysql couldn't be compiled using system readline (readline-4.3) acinclude.m4: 1. added defun MYSQL_CHECK_READLINE_DECLARES_HIST_ENTRY for last versions of readline and libedit 2. added #undef __P in defuns MYSQL_CHECK_LIBEDIT_INTERFACE, MYSQL_CHECK_NEW_RL_INTERFACE client/mysql.cc: 1. added #undef __P before #include "readline/readline.h" because readline-4.2 declares own __P 2. changed !defined(USE_LIBEDIT_INTERFACE) to !defined(HAVE_HIST_ENTRY) before declaring of own hist_entry because latest versions of libedit declare hist_entry too cmd-line-utils/Makefile.am: added copyright header configure.in: 1. added comment for --with-readline/--with-libedit options 2. added define for HAVE_HIST_ENTRY and macro to check it 3. added AC_LANG_CPLUSPLUS before readline/libedit checks
-rw-r--r--acinclude.m423
-rw-r--r--client/mysql.cc3
-rw-r--r--cmd-line-utils/Makefile.am17
-rw-r--r--configure.in19
4 files changed, 61 insertions, 1 deletions
diff --git a/acinclude.m4 b/acinclude.m4
index 11f5d07200a..5007b1e3efb 100644
--- a/acinclude.m4
+++ b/acinclude.m4
@@ -1,10 +1,32 @@
# Local macros for automake & autoconf
+
+AC_DEFUN(MYSQL_CHECK_READLINE_DECLARES_HIST_ENTRY,[
+ AC_CACHE_CHECK([HIST_ENTRY is declared in readline/readline.h], mysql_cv_hist_entry_declared,
+ AC_TRY_COMPILE(
+ [
+ #include "stdio.h"
+ #undef __P // readline-4.2 declares own __P
+ #include "readline/readline.h"
+ ],
+ [
+ HIST_ENTRY entry;
+ ],
+ [
+ mysql_cv_hist_entry_declared=yes
+ AC_DEFINE_UNQUOTED(HAVE_HIST_ENTRY)
+ ],
+ [mysql_cv_libedit_interface=no]
+ )
+ )
+])
+
AC_DEFUN(MYSQL_CHECK_LIBEDIT_INTERFACE,[
AC_CACHE_CHECK([libedit variant of rl_completion_entry_function], mysql_cv_libedit_interface,
AC_TRY_COMPILE(
[
#include "stdio.h"
+ #undef __P // readline-4.2 declares own __P
#include "readline/readline.h"
],
[
@@ -26,6 +48,7 @@ AC_DEFUN(MYSQL_CHECK_NEW_RL_INTERFACE,[
AC_TRY_COMPILE(
[
#include "stdio.h"
+ #undef __P // readline-4.2 declares own __P
#include "readline/readline.h"
],
[
diff --git a/client/mysql.cc b/client/mysql.cc
index 015c168cea7..0f2fd5d1004 100644
--- a/client/mysql.cc
+++ b/client/mysql.cc
@@ -84,6 +84,7 @@ extern "C" {
#if defined( __WIN__) || defined(OS2)
#include <conio.h>
#elif !defined(__NETWARE__)
+#undef __P // readline-4.2 declares own __P
#include <readline/readline.h>
#define HAVE_READLINE
#endif
@@ -294,7 +295,7 @@ static const char *server_default_groups[]=
HIST_ENTRY is defined for libedit, but not for the real readline
Need to redefine it for real readline to find it
*/
-#if !defined(USE_LIBEDIT_INTERFACE)
+#if !defined(HAVE_HIST_ENTRY)
typedef struct _hist_entry {
const char *line;
const char *data;
diff --git a/cmd-line-utils/Makefile.am b/cmd-line-utils/Makefile.am
index 7214d1231f9..88aaedde06d 100644
--- a/cmd-line-utils/Makefile.am
+++ b/cmd-line-utils/Makefile.am
@@ -1,3 +1,20 @@
+# Copyright (C) 2004 MySQL AB
+#
+# This library is free software; you can redistribute it and/or
+# modify it under the terms of the GNU Library General Public
+# License as published by the Free Software Foundation; either
+# version 2 of the License, or (at your option) any later version.
+#
+# This library is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+# Library General Public License for more details.
+#
+# You should have received a copy of the GNU Library General Public
+# License along with this library; if not, write to the Free
+# Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
+# MA 02111-1307, USA
+
## Process this file with automake to create Makefile.in
SUBDIRS= @readline_basedir@
diff --git a/configure.in b/configure.in
index 664ffd2a4a1..288454d2c6c 100644
--- a/configure.in
+++ b/configure.in
@@ -2303,6 +2303,20 @@ AC_ARG_WITH(libedit,
[ with_libedit=undefined ]
)
+#
+# We support next variants of compilation:
+# --with-readline
+# | yes | no | undefined
+# --with-libedit | | |
+# ---------------+----------------+------+----------------------------------
+# yes | ERROR! | use libedit from mysql sources
+# ---------------+----------------+------+----------------------------------
+# no | use readline | use system readline or external libedit
+# | from mysql | according to results of m4 tests
+# ---------------+ sources (if it + +----------------------------------
+# undefined | is presented) | | use libedit from mysql sources
+
+
compile_readline="no"
compile_libedit="no"
@@ -2330,6 +2344,7 @@ then
readline_link="\$(top_builddir)/cmd-line-utils/libedit/liblibedit.a"
readline_h_ln_cmd="\$(LN) -s \$(top_builddir)/cmd-line-utils/libedit/readline readline"
compile_libedit=yes
+ AC_DEFINE_UNQUOTED(HAVE_HIST_ENTRY)
AC_DEFINE_UNQUOTED(USE_LIBEDIT_INTERFACE, 1)
elif test "$with_readline" = "yes"
then
@@ -2341,8 +2356,12 @@ then
compile_readline=yes
AC_DEFINE_UNQUOTED(USE_NEW_READLINE_INTERFACE, 1)
else
+ AC_LANG_SAVE
+ AC_LANG_CPLUSPLUS
MYSQL_CHECK_LIBEDIT_INTERFACE
MYSQL_CHECK_NEW_RL_INTERFACE
+ MYSQL_CHECK_READLINE_DECLARES_HIST_ENTRY
+ AC_LANG_RESTORE
if [test "$mysql_cv_new_rl_interface" = "yes"] || [test "$mysql_cv_libedit_interface" = "no"]
then
readline_link="-lreadline"