mirror of
https://github.com/MariaDB/server.git
synced 2025-01-17 20:42:30 +01:00
Portability fixes
This commit is contained in:
parent
f113a7fd64
commit
566f82369c
9 changed files with 131 additions and 49 deletions
|
@ -31600,6 +31600,34 @@ the following configure options:
|
|||
@item CFLAGS=-DUSE_SYMDIR @tab Symbolic links support for Windows.
|
||||
@end multitable
|
||||
|
||||
Note that as Berkeley DB and InnoDB are not available for all platforms,
|
||||
some of the @code{Max} binaries may not have support for both of these.
|
||||
You can check which table types are supported by doing the following
|
||||
query:
|
||||
|
||||
@example
|
||||
mysql> show variables like "have_%";
|
||||
+---------------+-------+
|
||||
| Variable_name | Value |
|
||||
+---------------+-------+
|
||||
| have_bdb | YES |
|
||||
| have_gemini | NO |
|
||||
| have_innodb | NO |
|
||||
| have_isam | YES |
|
||||
| have_raid | YES |
|
||||
| have_ssl | NO |
|
||||
+---------------+-------+
|
||||
@end example
|
||||
|
||||
The meaning of the values are:
|
||||
|
||||
@multitable @columnfractions .3 .7
|
||||
@item @strong{Value} @tab @strong{Meaning}.
|
||||
@item YES @tab The option is activated and usable.
|
||||
@item NO @tab @strong{MySQL} is not compiled with support for this option.
|
||||
@item DISABLED @tab The xxxx option is disabled because one started @code{mysqld} with @code{--skip-xxxx} or because one didn't start @code{mysqld} with all needed options to enable the option. In this case the @code{hostname.err} file should contain a reason for why the option is disabled.
|
||||
@end multitable
|
||||
|
||||
@code{safe_mysqld} will automaticly try to start any @code{mysqld} binary
|
||||
with the @code{-max} prefix. This makes it very easy to test out a
|
||||
another @code{mysqld} binary in an existing installation. Just
|
||||
|
|
|
@ -4,7 +4,7 @@ dnl Process this file with autoconf to produce a configure script.
|
|||
AC_INIT(sql/mysqld.cc)
|
||||
AC_CANONICAL_SYSTEM
|
||||
# The Docs Makefile.am parses this line!
|
||||
AM_INIT_AUTOMAKE(mysql, 3.23.37)
|
||||
AM_INIT_AUTOMAKE(mysql, 3.23.38)
|
||||
AM_CONFIG_HEADER(config.h)
|
||||
|
||||
PROTOCOL_VERSION=10
|
||||
|
|
|
@ -13,9 +13,53 @@ AC_CHECK_FUNCS(sched_yield)
|
|||
AC_C_INLINE
|
||||
AC_C_BIGENDIAN
|
||||
|
||||
# Build optimized or debug version ?
|
||||
# First check for gcc and g++
|
||||
if test "$ac_cv_prog_gcc" = "yes"
|
||||
then
|
||||
DEBUG_CFLAGS="-g"
|
||||
DEBUG_OPTIMIZE_CC="-O"
|
||||
OPTIMIZE_CFLAGS="$MAX_C_OPTIMIZE"
|
||||
else
|
||||
DEBUG_CFLAGS="-g"
|
||||
DEBUG_OPTIMIZE_CC=""
|
||||
OPTIMIZE_CFLAGS="-O"
|
||||
fi
|
||||
if test "$ac_cv_prog_cxx_g" = "yes"
|
||||
then
|
||||
DEBUG_CXXFLAGS="-g"
|
||||
DEBUG_OPTIMIZE_CXX="-O"
|
||||
OPTIMIZE_CXXFLAGS="-O3"
|
||||
else
|
||||
DEBUG_CXXFLAGS="-g"
|
||||
DEBUG_OPTIMIZE_CXX=""
|
||||
OPTIMIZE_CXXFLAGS="-O"
|
||||
fi
|
||||
AC_ARG_WITH(debug,
|
||||
[ --without-debug Build a production version without debugging code],
|
||||
[with_debug=$withval],
|
||||
[with_debug=no])
|
||||
if test "$with_debug" = "yes"
|
||||
then
|
||||
# Medium debug.
|
||||
CFLAGS="$DEBUG_CFLAGS $DEBUG_OPTIMIZE_CC -DDBUG_ON -DSAFE_MUTEX $CFLAGS"
|
||||
CXXFLAGS="$DEBUG_CXXFLAGS $DEBUG_OPTIMIZE_CXX -DSAFE_MUTEX $CXXFLAGS"
|
||||
elif test "$with_debug" = "full"
|
||||
then
|
||||
# Full debug. Very slow in some cases
|
||||
CFLAGS="$DEBUG_CFLAGS -DDBUG_ON -DSAFE_MUTEX -DSAFEMALLOC $CFLAGS"
|
||||
CXXFLAGS="$DEBUG_CXXFLAGS -DSAFE_MUTEX -DSAFEMALLOC $CXXFLAGS"
|
||||
else
|
||||
# Optimized version. No debug
|
||||
CFLAGS="$OPTIMIZE_CFLAGS -DDBUG_OFF $CFLAGS"
|
||||
CXXFLAGS="$OPTIMIZE_CXXFLAGS -DDBUG_OFF $CXXFLAGS"
|
||||
fi
|
||||
|
||||
case "$target_os" in
|
||||
hp*) AC_DEFINE(UNIV_MUST_NOT_INLINE, 1,
|
||||
No inlining because gcc broken on HP-UX);;
|
||||
*sgi-irix*) AC_DEFINE(UNIV_MUST_NOT_INLINE, 1,
|
||||
No inlining because cc broken on irix);;
|
||||
esac
|
||||
|
||||
AC_OUTPUT(Makefile os/Makefile ut/Makefile btr/Makefile
|
||||
|
|
|
@ -11,9 +11,15 @@
|
|||
/* The number of bytes in a int. */
|
||||
#define SIZEOF_INT 4
|
||||
|
||||
/* Define if you have the sched_yield function. */
|
||||
#define HAVE_SCHED_YIELD 1
|
||||
|
||||
/* Define if you have the <aio.h> header file. */
|
||||
#define HAVE_AIO_H 1
|
||||
|
||||
/* Define if you have the <sched.h> header file. */
|
||||
#define HAVE_SCHED_H 1
|
||||
|
||||
/* Name of package */
|
||||
#define PACKAGE "ib"
|
||||
|
||||
|
|
|
@ -10,9 +10,15 @@
|
|||
/* The number of bytes in a int. */
|
||||
#undef SIZEOF_INT
|
||||
|
||||
/* Define if you have the sched_yield function. */
|
||||
#undef HAVE_SCHED_YIELD
|
||||
|
||||
/* Define if you have the <aio.h> header file. */
|
||||
#undef HAVE_AIO_H
|
||||
|
||||
/* Define if you have the <sched.h> header file. */
|
||||
#undef HAVE_SCHED_H
|
||||
|
||||
/* Name of package */
|
||||
#undef PACKAGE
|
||||
|
||||
|
|
|
@ -117,7 +117,6 @@ que_thr_stop(
|
|||
/**************************************************************************
|
||||
Moves a thread from another state to the QUE_THR_RUNNING state. Increments
|
||||
the n_active_thrs counters of the query graph and transaction. */
|
||||
UNIV_INLINE
|
||||
void
|
||||
que_thr_move_to_run_state_for_mysql(
|
||||
/*================================*/
|
||||
|
@ -126,7 +125,6 @@ que_thr_move_to_run_state_for_mysql(
|
|||
/**************************************************************************
|
||||
A patch for MySQL used to 'stop' a dummy query thread used in MySQL
|
||||
select, when there is no error or lock wait. */
|
||||
UNIV_INLINE
|
||||
void
|
||||
que_thr_stop_for_mysql_no_error(
|
||||
/*============================*/
|
||||
|
|
|
@ -256,49 +256,3 @@ que_graph_is_select(
|
|||
|
||||
return(FALSE);
|
||||
}
|
||||
|
||||
/**************************************************************************
|
||||
Moves a thread from another state to the QUE_THR_RUNNING state. Increments
|
||||
the n_active_thrs counters of the query graph and transaction if thr was
|
||||
not active. */
|
||||
UNIV_INLINE
|
||||
void
|
||||
que_thr_move_to_run_state_for_mysql(
|
||||
/*================================*/
|
||||
que_thr_t* thr, /* in: an query thread */
|
||||
trx_t* trx) /* in: transaction */
|
||||
{
|
||||
if (!thr->is_active) {
|
||||
|
||||
(thr->graph)->n_active_thrs++;
|
||||
|
||||
trx->n_active_thrs++;
|
||||
|
||||
thr->is_active = TRUE;
|
||||
|
||||
ut_ad((thr->graph)->n_active_thrs == 1);
|
||||
ut_ad(trx->n_active_thrs == 1);
|
||||
}
|
||||
|
||||
thr->state = QUE_THR_RUNNING;
|
||||
}
|
||||
|
||||
/**************************************************************************
|
||||
A patch for MySQL used to 'stop' a dummy query thread used in MySQL
|
||||
select, when there is no error or lock wait. */
|
||||
UNIV_INLINE
|
||||
void
|
||||
que_thr_stop_for_mysql_no_error(
|
||||
/*============================*/
|
||||
que_thr_t* thr, /* in: query thread */
|
||||
trx_t* trx) /* in: transaction */
|
||||
{
|
||||
ut_ad(thr->state == QUE_THR_RUNNING);
|
||||
|
||||
thr->state = QUE_THR_COMPLETED;
|
||||
|
||||
thr->is_active = FALSE;
|
||||
(thr->graph)->n_active_thrs--;
|
||||
|
||||
trx->n_active_thrs--;
|
||||
}
|
||||
|
|
|
@ -55,6 +55,7 @@ Calling this function is obligatory only if the memory buffer containing
|
|||
the mutex is freed. Removes a mutex object from the mutex list. The mutex
|
||||
is checked to be in the reset state. */
|
||||
|
||||
#undef mutex_free /* Fix for MacOS X */
|
||||
void
|
||||
mutex_free(
|
||||
/*=======*/
|
||||
|
|
|
@ -1068,6 +1068,51 @@ que_thr_stop_for_mysql(
|
|||
mutex_exit(&kernel_mutex);
|
||||
}
|
||||
|
||||
|
||||
/**************************************************************************
|
||||
Moves a thread from another state to the QUE_THR_RUNNING state. Increments
|
||||
the n_active_thrs counters of the query graph and transaction if thr was
|
||||
not active. */
|
||||
void
|
||||
que_thr_move_to_run_state_for_mysql(
|
||||
/*================================*/
|
||||
que_thr_t* thr, /* in: an query thread */
|
||||
trx_t* trx) /* in: transaction */
|
||||
{
|
||||
if (!thr->is_active) {
|
||||
|
||||
(thr->graph)->n_active_thrs++;
|
||||
|
||||
trx->n_active_thrs++;
|
||||
|
||||
thr->is_active = TRUE;
|
||||
|
||||
ut_ad((thr->graph)->n_active_thrs == 1);
|
||||
ut_ad(trx->n_active_thrs == 1);
|
||||
}
|
||||
|
||||
thr->state = QUE_THR_RUNNING;
|
||||
}
|
||||
|
||||
/**************************************************************************
|
||||
A patch for MySQL used to 'stop' a dummy query thread used in MySQL
|
||||
select, when there is no error or lock wait. */
|
||||
void
|
||||
que_thr_stop_for_mysql_no_error(
|
||||
/*============================*/
|
||||
que_thr_t* thr, /* in: query thread */
|
||||
trx_t* trx) /* in: transaction */
|
||||
{
|
||||
ut_ad(thr->state == QUE_THR_RUNNING);
|
||||
|
||||
thr->state = QUE_THR_COMPLETED;
|
||||
|
||||
thr->is_active = FALSE;
|
||||
(thr->graph)->n_active_thrs--;
|
||||
|
||||
trx->n_active_thrs--;
|
||||
}
|
||||
|
||||
/**************************************************************************
|
||||
Prints info of an SQL query graph node. */
|
||||
|
||||
|
|
Loading…
Reference in a new issue