mirror of
https://github.com/MariaDB/server.git
synced 2025-01-19 21:42:35 +01:00
c182f70115
option doesn't affect innodb_plugin. Currently it works as following: * configure without relevant options producing two dynamic plugins * configure --with-plugin-innodb (or legacy --with-innodb) producing static standard InnoDB * configure --without-plugin-innodb (or legacy --without-innodb) disabling standard InnoDB * configure --with-plugin-innodb_plugin producing dynamic innodb_plugin * configure --without-plugin-innodb_plugin disabling innodb_plugin storage/innodb_plugin/plug.in: Removed legacy name for innodb_plugin SE.
128 lines
3.7 KiB
Text
128 lines
3.7 KiB
Text
#
|
|
# Copyright (c) 2006, 2009, Innobase Oy. All Rights Reserved.
|
|
#
|
|
# This program is free software; you can redistribute it and/or modify it under
|
|
# the terms of the GNU General Public License as published by the Free Software
|
|
# Foundation; version 2 of the License.
|
|
#
|
|
# This program 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 General Public License for more details.
|
|
#
|
|
# You should have received a copy of the GNU General Public License along with
|
|
# this program; if not, write to the Free Software Foundation, Inc., 59 Temple
|
|
# Place, Suite 330, Boston, MA 02111-1307 USA
|
|
#
|
|
|
|
MYSQL_STORAGE_ENGINE(innodb_plugin,, [InnoDB Storage Engine],
|
|
[Transactional Tables using InnoDB], [max,max-no-ndb])
|
|
MYSQL_PLUGIN_DIRECTORY(innodb_plugin, [storage/innodb_plugin])
|
|
#MYSQL_PLUGIN_STATIC(innobase, [libinnobase.a])
|
|
MYSQL_PLUGIN_DYNAMIC(innodb_plugin, [ha_innodb_plugin.la])
|
|
MYSQL_PLUGIN_ACTIONS(innodb_plugin, [
|
|
AC_CHECK_HEADERS(sched.h)
|
|
AC_CHECK_SIZEOF(int, 4)
|
|
AC_CHECK_SIZEOF(long, 4)
|
|
AC_CHECK_SIZEOF(void*, 4)
|
|
AC_CHECK_FUNCS(sched_yield fdatasync localtime_r)
|
|
AC_C_BIGENDIAN
|
|
case "$target_os" in
|
|
lin*)
|
|
CFLAGS="$CFLAGS -DUNIV_LINUX";;
|
|
hpux10*)
|
|
CFLAGS="$CFLAGS -DUNIV_MUST_NOT_INLINE -DUNIV_HPUX -DUNIV_HPUX10";;
|
|
hp*)
|
|
CFLAGS="$CFLAGS -DUNIV_MUST_NOT_INLINE -DUNIV_HPUX";;
|
|
aix*)
|
|
CFLAGS="$CFLAGS -DUNIV_AIX";;
|
|
irix*|osf*|sysv5uw7*|openbsd*)
|
|
CFLAGS="$CFLAGS -DUNIV_MUST_NOT_INLINE";;
|
|
*solaris*|*SunOS*)
|
|
# Begin Solaris atomic function checks
|
|
AC_CHECK_FUNCS(atomic_cas_ulong atomic_cas_32 \
|
|
atomic_cas_64 atomic_add_long,
|
|
AC_DEFINE(
|
|
[HAVE_SOLARIS_ATOMICS],
|
|
[1],
|
|
[Define to 1 if Solaris supports \
|
|
atomic functions.]))
|
|
### End Solaris atomic function checks
|
|
|
|
CFLAGS="$CFLAGS -DUNIV_SOLARIS";;
|
|
esac
|
|
INNODB_DYNAMIC_CFLAGS="-DMYSQL_DYNAMIC_PLUGIN"
|
|
case "$target_cpu" in
|
|
x86_64)
|
|
# The AMD64 ABI forbids absolute addresses in shared libraries
|
|
;;
|
|
*86)
|
|
# Use absolute addresses on IA-32
|
|
INNODB_DYNAMIC_CFLAGS="$INNODB_DYNAMIC_CFLAGS -prefer-non-pic"
|
|
;;
|
|
esac
|
|
AC_SUBST(INNODB_DYNAMIC_CFLAGS)
|
|
AC_MSG_CHECKING(whether pthread_t can be used by GCC atomic builtins)
|
|
AC_TRY_RUN(
|
|
[
|
|
#include <pthread.h>
|
|
#include <string.h>
|
|
|
|
int main(int argc, char** argv) {
|
|
pthread_t x1;
|
|
pthread_t x2;
|
|
pthread_t x3;
|
|
|
|
memset(&x1, 0x0, sizeof(x1));
|
|
memset(&x2, 0x0, sizeof(x2));
|
|
memset(&x3, 0x0, sizeof(x3));
|
|
|
|
__sync_bool_compare_and_swap(&x1, x2, x3);
|
|
|
|
return(0);
|
|
}
|
|
],
|
|
[
|
|
AC_DEFINE([HAVE_ATOMIC_PTHREAD_T], [1],
|
|
[pthread_t can be used by GCC atomic builtins])
|
|
AC_MSG_RESULT(yes)
|
|
],
|
|
[
|
|
AC_MSG_RESULT(no)
|
|
]
|
|
)
|
|
|
|
# Try using solaris atomics on SunOS if GCC atomics are not available
|
|
AC_CHECK_DECLS(
|
|
[HAVE_ATOMIC_PTHREAD_T],
|
|
[
|
|
AC_MSG_NOTICE(no need to check pthread_t size)
|
|
],
|
|
[
|
|
AC_CHECK_DECLS(
|
|
[HAVE_SOLARIS_ATOMICS],
|
|
[
|
|
AC_MSG_CHECKING(checking if pthread_t size is integral)
|
|
AC_TRY_RUN(
|
|
[
|
|
#include <pthread.h>
|
|
int main()
|
|
{
|
|
pthread_t x = 0;
|
|
return(0);
|
|
}
|
|
],
|
|
[
|
|
AC_DEFINE([HAVE_ATOMIC_PTHREAD_T], [1],
|
|
[pthread_t can be used by solaris atomics])
|
|
AC_MSG_RESULT(yes)
|
|
# size of pthread_t is needed for typed solaris atomics
|
|
AC_CHECK_SIZEOF([pthread_t], [], [#include <pthread.h>])
|
|
],
|
|
[
|
|
AC_MSG_RESULT(no)
|
|
])
|
|
])
|
|
])
|
|
])
|
|
|
|
# vim: set ft=config:
|