mirror of
https://github.com/MariaDB/server.git
synced 2025-08-08 11:22:35 +03:00
changed compile order, mysqladmin with ndbcluster extensions needs ndb to be compiled first
added libs variable for ndbmgmclient used by mysqladmin add linkage with @ndb_mgmclient_libs@ additional options for ndbcluster added support for managing the cluster to mysqladmin added DEFINE_CXA_PURE_VIRTUAL flag to CFLAGS to enable linkage with c++ libs use macros for C_MODE_START/END so that define of FIX_GCC_LINKING_PROBLEM works in c-programs
This commit is contained in:
@@ -22,15 +22,15 @@ AUTOMAKE_OPTIONS = foreign
|
|||||||
EXTRA_DIST = INSTALL-SOURCE README COPYING EXCEPTIONS-CLIENT
|
EXTRA_DIST = INSTALL-SOURCE README COPYING EXCEPTIONS-CLIENT
|
||||||
SUBDIRS = . include @docs_dirs@ @zlib_dir@ \
|
SUBDIRS = . include @docs_dirs@ @zlib_dir@ \
|
||||||
@readline_topdir@ sql-common \
|
@readline_topdir@ sql-common \
|
||||||
@thread_dirs@ pstack @sql_client_dirs@ \
|
@thread_dirs@ pstack \
|
||||||
@sql_server_dirs@ scripts man tests \
|
@sql_server_dirs@ @sql_client_dirs@ scripts man tests \
|
||||||
netware @libmysqld_dirs@ \
|
netware @libmysqld_dirs@ \
|
||||||
@bench_dirs@ support-files @fs_dirs@ @tools_dirs@
|
@bench_dirs@ support-files @fs_dirs@ @tools_dirs@
|
||||||
|
|
||||||
DIST_SUBDIRS = . include @docs_dirs@ zlib \
|
DIST_SUBDIRS = . include @docs_dirs@ zlib \
|
||||||
@readline_topdir@ sql-common \
|
@readline_topdir@ sql-common \
|
||||||
@thread_dirs@ pstack @sql_client_dirs@ \
|
@thread_dirs@ pstack \
|
||||||
@sql_server_dirs@ scripts @man_dirs@ tests SSL\
|
@sql_server_dirs@ @sql_client_dirs@ scripts @man_dirs@ tests SSL\
|
||||||
BUILD netware os2 @libmysqld_dirs@ \
|
BUILD netware os2 @libmysqld_dirs@ \
|
||||||
@bench_dirs@ support-files @fs_dirs@ @tools_dirs@
|
@bench_dirs@ support-files @fs_dirs@ @tools_dirs@
|
||||||
|
|
||||||
|
@@ -1678,6 +1678,7 @@ AC_DEFUN([MYSQL_CHECK_NDBCLUSTER], [
|
|||||||
have_ndbcluster=no
|
have_ndbcluster=no
|
||||||
ndbcluster_includes=
|
ndbcluster_includes=
|
||||||
ndbcluster_libs=
|
ndbcluster_libs=
|
||||||
|
ndb_mgmclient_libs=
|
||||||
case "$ndbcluster" in
|
case "$ndbcluster" in
|
||||||
yes )
|
yes )
|
||||||
AC_MSG_RESULT([Using NDB Cluster])
|
AC_MSG_RESULT([Using NDB Cluster])
|
||||||
@@ -1686,6 +1687,7 @@ AC_DEFUN([MYSQL_CHECK_NDBCLUSTER], [
|
|||||||
ndbcluster_includes="-I../ndb/include -I../ndb/include/ndbapi"
|
ndbcluster_includes="-I../ndb/include -I../ndb/include/ndbapi"
|
||||||
ndbcluster_libs="\$(top_builddir)/ndb/src/.libs/libndbclient.a"
|
ndbcluster_libs="\$(top_builddir)/ndb/src/.libs/libndbclient.a"
|
||||||
ndbcluster_system_libs=""
|
ndbcluster_system_libs=""
|
||||||
|
ndb_mgmclient_libs="\$(top_builddir)/ndb/src/mgmclient/libndbmgmclient.la"
|
||||||
MYSQL_CHECK_NDB_OPTIONS
|
MYSQL_CHECK_NDB_OPTIONS
|
||||||
;;
|
;;
|
||||||
* )
|
* )
|
||||||
@@ -1697,6 +1699,7 @@ AC_DEFUN([MYSQL_CHECK_NDBCLUSTER], [
|
|||||||
AC_SUBST(ndbcluster_includes)
|
AC_SUBST(ndbcluster_includes)
|
||||||
AC_SUBST(ndbcluster_libs)
|
AC_SUBST(ndbcluster_libs)
|
||||||
AC_SUBST(ndbcluster_system_libs)
|
AC_SUBST(ndbcluster_system_libs)
|
||||||
|
AC_SUBST(ndb_mgmclient_libs)
|
||||||
])
|
])
|
||||||
|
|
||||||
dnl ---------------------------------------------------------------------------
|
dnl ---------------------------------------------------------------------------
|
||||||
|
@@ -20,7 +20,8 @@
|
|||||||
INCLUDES = -I$(top_srcdir)/include -I$(top_srcdir)/regex \
|
INCLUDES = -I$(top_srcdir)/include -I$(top_srcdir)/regex \
|
||||||
$(openssl_includes)
|
$(openssl_includes)
|
||||||
LIBS = @CLIENT_LIBS@
|
LIBS = @CLIENT_LIBS@
|
||||||
DEPLIB= ../libmysql/libmysqlclient.la
|
DEPLIB= ../libmysql/libmysqlclient.la \
|
||||||
|
@ndb_mgmclient_libs@
|
||||||
LDADD = @CLIENT_EXTRA_LDFLAGS@ $(DEPLIB)
|
LDADD = @CLIENT_EXTRA_LDFLAGS@ $(DEPLIB)
|
||||||
bin_PROGRAMS = mysql mysqladmin mysqlcheck mysqlshow \
|
bin_PROGRAMS = mysql mysqladmin mysqlcheck mysqlshow \
|
||||||
mysqldump mysqlimport mysqltest mysqlbinlog mysqlmanagerc mysqlmanager-pwgen
|
mysqldump mysqlimport mysqltest mysqlbinlog mysqlmanagerc mysqlmanager-pwgen
|
||||||
|
@@ -46,4 +46,7 @@ enum options_client
|
|||||||
OPT_OPEN_FILES_LIMIT, OPT_SET_CHARSET, OPT_CREATE_OPTIONS,
|
OPT_OPEN_FILES_LIMIT, OPT_SET_CHARSET, OPT_CREATE_OPTIONS,
|
||||||
OPT_START_POSITION, OPT_STOP_POSITION, OPT_START_DATETIME, OPT_STOP_DATETIME,
|
OPT_START_POSITION, OPT_STOP_POSITION, OPT_START_DATETIME, OPT_STOP_DATETIME,
|
||||||
OPT_SIGINT_IGNORE, OPT_HEXBLOB
|
OPT_SIGINT_IGNORE, OPT_HEXBLOB
|
||||||
|
#ifdef HAVE_NDBCLUSTER_DB
|
||||||
|
,OPT_NDBCLUSTER,OPT_NDB_CONNECTSTRING
|
||||||
|
#endif
|
||||||
};
|
};
|
||||||
|
@@ -16,7 +16,6 @@
|
|||||||
|
|
||||||
/* maintaince of mysql databases */
|
/* maintaince of mysql databases */
|
||||||
|
|
||||||
|
|
||||||
#include "client_priv.h"
|
#include "client_priv.h"
|
||||||
#include <signal.h>
|
#include <signal.h>
|
||||||
#ifdef THREAD
|
#ifdef THREAD
|
||||||
@@ -25,6 +24,10 @@
|
|||||||
#include <sys/stat.h>
|
#include <sys/stat.h>
|
||||||
#include <mysql.h>
|
#include <mysql.h>
|
||||||
|
|
||||||
|
#ifdef HAVE_NDBCLUSTER_DB
|
||||||
|
#include "../ndb/src/mgmclient/ndb_mgmclient.h"
|
||||||
|
#endif
|
||||||
|
|
||||||
#define ADMIN_VERSION "8.41"
|
#define ADMIN_VERSION "8.41"
|
||||||
#define MAX_MYSQL_VAR 256
|
#define MAX_MYSQL_VAR 256
|
||||||
#define SHUTDOWN_DEF_TIMEOUT 3600 /* Wait for shutdown */
|
#define SHUTDOWN_DEF_TIMEOUT 3600 /* Wait for shutdown */
|
||||||
@@ -42,6 +45,10 @@ static uint tcp_port = 0, option_wait = 0, option_silent=0, nr_iterations,
|
|||||||
opt_count_iterations= 0;
|
opt_count_iterations= 0;
|
||||||
static ulong opt_connect_timeout, opt_shutdown_timeout;
|
static ulong opt_connect_timeout, opt_shutdown_timeout;
|
||||||
static my_string unix_port=0;
|
static my_string unix_port=0;
|
||||||
|
#ifdef HAVE_NDBCLUSTER_DB
|
||||||
|
static my_bool opt_ndbcluster=0;
|
||||||
|
static char *opt_ndb_connectstring=0;
|
||||||
|
#endif
|
||||||
|
|
||||||
#ifdef HAVE_SMEM
|
#ifdef HAVE_SMEM
|
||||||
static char *shared_memory_base_name=0;
|
static char *shared_memory_base_name=0;
|
||||||
@@ -94,6 +101,9 @@ enum commands {
|
|||||||
ADMIN_PING, ADMIN_EXTENDED_STATUS, ADMIN_FLUSH_STATUS,
|
ADMIN_PING, ADMIN_EXTENDED_STATUS, ADMIN_FLUSH_STATUS,
|
||||||
ADMIN_FLUSH_PRIVILEGES, ADMIN_START_SLAVE, ADMIN_STOP_SLAVE,
|
ADMIN_FLUSH_PRIVILEGES, ADMIN_START_SLAVE, ADMIN_STOP_SLAVE,
|
||||||
ADMIN_FLUSH_THREADS, ADMIN_OLD_PASSWORD
|
ADMIN_FLUSH_THREADS, ADMIN_OLD_PASSWORD
|
||||||
|
#ifdef HAVE_NDBCLUSTER_DB
|
||||||
|
,ADMIN_NDB_MGM
|
||||||
|
#endif
|
||||||
};
|
};
|
||||||
static const char *command_names[]= {
|
static const char *command_names[]= {
|
||||||
"create", "drop", "shutdown",
|
"create", "drop", "shutdown",
|
||||||
@@ -104,6 +114,9 @@ static const char *command_names[]= {
|
|||||||
"ping", "extended-status", "flush-status",
|
"ping", "extended-status", "flush-status",
|
||||||
"flush-privileges", "start-slave", "stop-slave",
|
"flush-privileges", "start-slave", "stop-slave",
|
||||||
"flush-threads","old-password",
|
"flush-threads","old-password",
|
||||||
|
#ifdef HAVE_NDBCLUSTER_DB
|
||||||
|
"ndb-mgm",
|
||||||
|
#endif
|
||||||
NullS
|
NullS
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -184,6 +197,14 @@ static struct my_option my_long_options[] =
|
|||||||
{"shutdown_timeout", OPT_SHUTDOWN_TIMEOUT, "", (gptr*) &opt_shutdown_timeout,
|
{"shutdown_timeout", OPT_SHUTDOWN_TIMEOUT, "", (gptr*) &opt_shutdown_timeout,
|
||||||
(gptr*) &opt_shutdown_timeout, 0, GET_ULONG, REQUIRED_ARG,
|
(gptr*) &opt_shutdown_timeout, 0, GET_ULONG, REQUIRED_ARG,
|
||||||
SHUTDOWN_DEF_TIMEOUT, 0, 3600*12, 0, 1, 0},
|
SHUTDOWN_DEF_TIMEOUT, 0, 3600*12, 0, 1, 0},
|
||||||
|
#ifdef HAVE_NDBCLUSTER_DB
|
||||||
|
{"ndbcluster", OPT_NDBCLUSTER, ""
|
||||||
|
"", (gptr*) &opt_ndbcluster,
|
||||||
|
(gptr*) &opt_ndbcluster, 0, GET_BOOL, NO_ARG, 0, 0, 0, 0, 0, 0},
|
||||||
|
{"ndb-connectstring", OPT_NDB_CONNECTSTRING, ""
|
||||||
|
"", (gptr*) &opt_ndb_connectstring,
|
||||||
|
(gptr*) &opt_ndb_connectstring, 0, GET_STR, REQUIRED_ARG, 0, 0, 0, 0, 0, 0},
|
||||||
|
#endif
|
||||||
{ 0, 0, 0, 0, 0, 0, GET_NO_ARG, NO_ARG, 0, 0, 0, 0, 0, 0}
|
{ 0, 0, 0, 0, 0, 0, GET_NO_ARG, NO_ARG, 0, 0, 0, 0, 0, 0}
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -882,6 +903,24 @@ static int execute_commands(MYSQL *mysql,int argc, char **argv)
|
|||||||
}
|
}
|
||||||
mysql->reconnect=1; /* Automatic reconnect is default */
|
mysql->reconnect=1; /* Automatic reconnect is default */
|
||||||
break;
|
break;
|
||||||
|
#ifdef HAVE_NDBCLUSTER_DB
|
||||||
|
case ADMIN_NDB_MGM:
|
||||||
|
{
|
||||||
|
if (argc < 2)
|
||||||
|
{
|
||||||
|
my_printf_error(0,"Too few arguments to ndb-mgm",MYF(ME_BELL));
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
{
|
||||||
|
Ndb_mgmclient_handle cmd=
|
||||||
|
ndb_mgmclient_handle_create(opt_ndb_connectstring);
|
||||||
|
ndb_mgmclient_execute(cmd, --argc, ++argv);
|
||||||
|
ndb_mgmclient_handle_destroy(cmd);
|
||||||
|
}
|
||||||
|
argc= 0;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
#endif
|
||||||
default:
|
default:
|
||||||
my_printf_error(0,"Unknown command: '%-.60s'",MYF(ME_BELL),argv[0]);
|
my_printf_error(0,"Unknown command: '%-.60s'",MYF(ME_BELL),argv[0]);
|
||||||
return 1;
|
return 1;
|
||||||
@@ -1248,3 +1287,9 @@ static my_bool wait_pidfile(char *pidfile, time_t last_modified,
|
|||||||
}
|
}
|
||||||
DBUG_RETURN(error);
|
DBUG_RETURN(error);
|
||||||
}
|
}
|
||||||
|
#ifdef HAVE_NDBCLUSTER_DB
|
||||||
|
/* lib linked in contains c++ code */
|
||||||
|
#ifdef __GNUC__
|
||||||
|
FIX_GCC_LINKING_PROBLEM
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
@@ -399,6 +399,7 @@ then
|
|||||||
then
|
then
|
||||||
if $CXX -v 2>&1 | grep 'version 3' > /dev/null 2>&1
|
if $CXX -v 2>&1 | grep 'version 3' > /dev/null 2>&1
|
||||||
then
|
then
|
||||||
|
CFLAGS="$CFLAGS -DDEFINE_CXA_PURE_VIRTUAL"
|
||||||
CXXFLAGS="$CXXFLAGS -DUSE_MYSYS_NEW -DDEFINE_CXA_PURE_VIRTUAL"
|
CXXFLAGS="$CXXFLAGS -DUSE_MYSYS_NEW -DDEFINE_CXA_PURE_VIRTUAL"
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
@@ -194,10 +194,10 @@ C_MODE_END
|
|||||||
/* Fix problem when linking c++ programs with gcc 3.x */
|
/* Fix problem when linking c++ programs with gcc 3.x */
|
||||||
#ifdef DEFINE_CXA_PURE_VIRTUAL
|
#ifdef DEFINE_CXA_PURE_VIRTUAL
|
||||||
#define FIX_GCC_LINKING_PROBLEM \
|
#define FIX_GCC_LINKING_PROBLEM \
|
||||||
extern "C" { int __cxa_pure_virtual() {\
|
C_MODE_START int __cxa_pure_virtual() {\
|
||||||
DBUG_ASSERT("Pure virtual method called." == "Aborted");\
|
DBUG_ASSERT("Pure virtual method called." == "Aborted");\
|
||||||
return 0;\
|
return 0;\
|
||||||
} }
|
} C_MODE_END
|
||||||
#else
|
#else
|
||||||
#define FIX_GCC_LINKING_PROBLEM
|
#define FIX_GCC_LINKING_PROBLEM
|
||||||
#endif
|
#endif
|
||||||
|
Reference in New Issue
Block a user