mirror of
https://github.com/MariaDB/server.git
synced 2025-07-29 05:21:33 +03:00
Many files:
Put back old code to check stack direction at configure time
This commit is contained in:
@ -450,6 +450,29 @@ AC_DEFINE([HAVE_BOOL], [1], [bool is not defined by all C++ compilators])
|
|||||||
fi
|
fi
|
||||||
])dnl
|
])dnl
|
||||||
|
|
||||||
|
AC_DEFUN([MYSQL_STACK_DIRECTION],
|
||||||
|
[AC_CACHE_CHECK(stack direction for C alloca, ac_cv_c_stack_direction,
|
||||||
|
[AC_TRY_RUN([#include <stdlib.h>
|
||||||
|
int find_stack_direction ()
|
||||||
|
{
|
||||||
|
static char *addr = 0;
|
||||||
|
auto char dummy;
|
||||||
|
if (addr == 0)
|
||||||
|
{
|
||||||
|
addr = &dummy;
|
||||||
|
return find_stack_direction ();
|
||||||
|
}
|
||||||
|
else
|
||||||
|
return (&dummy > addr) ? 1 : -1;
|
||||||
|
}
|
||||||
|
int main ()
|
||||||
|
{
|
||||||
|
exit (find_stack_direction() < 0);
|
||||||
|
}], ac_cv_c_stack_direction=1, ac_cv_c_stack_direction=-1,
|
||||||
|
ac_cv_c_stack_direction=)])
|
||||||
|
AC_DEFINE_UNQUOTED(STACK_DIRECTION, $ac_cv_c_stack_direction)
|
||||||
|
])dnl
|
||||||
|
|
||||||
AC_DEFUN([MYSQL_CHECK_LONGLONG_TO_FLOAT],
|
AC_DEFUN([MYSQL_CHECK_LONGLONG_TO_FLOAT],
|
||||||
[
|
[
|
||||||
AC_MSG_CHECKING(if conversion of longlong to float works)
|
AC_MSG_CHECKING(if conversion of longlong to float works)
|
||||||
|
@ -1792,6 +1792,8 @@ MYSQL_TYPE_ACCEPT
|
|||||||
#---END:
|
#---END:
|
||||||
# Figure out what type of struct rlimit to use with setrlimit
|
# Figure out what type of struct rlimit to use with setrlimit
|
||||||
MYSQL_TYPE_STRUCT_RLIMIT
|
MYSQL_TYPE_STRUCT_RLIMIT
|
||||||
|
# Find where the stack goes
|
||||||
|
MYSQL_STACK_DIRECTION
|
||||||
# We want to skip alloca on irix unconditionally. It may work on some version..
|
# We want to skip alloca on irix unconditionally. It may work on some version..
|
||||||
MYSQL_FUNC_ALLOCA
|
MYSQL_FUNC_ALLOCA
|
||||||
# Do struct timespec have members tv_sec or ts_sec
|
# Do struct timespec have members tv_sec or ts_sec
|
||||||
|
@ -112,6 +112,9 @@ extern "C" {
|
|||||||
/* signal by closing the sockets */
|
/* signal by closing the sockets */
|
||||||
#define SIGNAL_WITH_VIO_CLOSE 1
|
#define SIGNAL_WITH_VIO_CLOSE 1
|
||||||
|
|
||||||
|
/* On NetWare, stack grows towards lower address */
|
||||||
|
#define STACK_DIRECTION -1
|
||||||
|
|
||||||
/* On NetWare, we need to set stack size for threads, otherwise default 16K is used */
|
/* On NetWare, we need to set stack size for threads, otherwise default 16K is used */
|
||||||
#define NW_THD_STACKSIZE 65536
|
#define NW_THD_STACKSIZE 65536
|
||||||
|
|
||||||
|
@ -250,6 +250,8 @@ inline double ulonglong2double(ulonglong value)
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
#define STACK_DIRECTION -1
|
||||||
|
|
||||||
/* Optimized store functions for Intel x86 */
|
/* Optimized store functions for Intel x86 */
|
||||||
|
|
||||||
#ifndef _WIN64
|
#ifndef _WIN64
|
||||||
|
@ -804,6 +804,10 @@ typedef SOCKET_SIZE_TYPE size_socket;
|
|||||||
#define ulong_to_double(X) ((double) (ulong) (X))
|
#define ulong_to_double(X) ((double) (ulong) (X))
|
||||||
#define SET_STACK_SIZE(X) /* Not needed on real machines */
|
#define SET_STACK_SIZE(X) /* Not needed on real machines */
|
||||||
|
|
||||||
|
#ifndef STACK_DIRECTION
|
||||||
|
#error "please add -DSTACK_DIRECTION=1 or -1 to your CPPFLAGS"
|
||||||
|
#endif
|
||||||
|
|
||||||
#if !defined(HAVE_STRTOK_R)
|
#if !defined(HAVE_STRTOK_R)
|
||||||
#define strtok_r(A,B,C) strtok((A),(B))
|
#define strtok_r(A,B,C) strtok((A),(B))
|
||||||
#endif
|
#endif
|
||||||
|
@ -5042,7 +5042,11 @@ bool check_merge_table_access(THD *thd, char *db,
|
|||||||
|
|
||||||
#ifndef EMBEDDED_LIBRARY
|
#ifndef EMBEDDED_LIBRARY
|
||||||
|
|
||||||
#define used_stack(A,B) (long)(A > B ? A - B : B - A)
|
#if STACK_DIRECTION < 0
|
||||||
|
#define used_stack(A,B) (long) (A - B)
|
||||||
|
#else
|
||||||
|
#define used_stack(A,B) (long) (B - A)
|
||||||
|
#endif
|
||||||
|
|
||||||
#ifndef DBUG_OFF
|
#ifndef DBUG_OFF
|
||||||
long max_stack_used;
|
long max_stack_used;
|
||||||
|
Reference in New Issue
Block a user