mirror of
https://github.com/MariaDB/server.git
synced 2026-04-23 08:45:33 +02:00
Fix compile issues in Intel C/C++ compiler (Bug #9063)
acinclude.m4: Use AC_LANG_PUSH/POP instead of _SAVE/RESTORE Add test to get type of 'struct rlimit' Switch order of including stdlib.h and declaration being tested to match how it will be used in regular code. configure.in: Call MYSQL_TYPE_STRUCT_RLIMIT macro sql/mysqld.cc: Use STRUCT_RLIMIT for getting type of struct rlimit.
This commit is contained in:
parent
20cf8f82ee
commit
ccfcfce6db
3 changed files with 37 additions and 6 deletions
39
acinclude.m4
39
acinclude.m4
|
|
@ -97,10 +97,10 @@ undefine([AC_CV_NAME])dnl
|
|||
AC_DEFUN([MYSQL_TYPE_ACCEPT],
|
||||
[ac_save_CXXFLAGS="$CXXFLAGS"
|
||||
AC_CACHE_CHECK([base type of last arg to accept], mysql_cv_btype_last_arg_accept,
|
||||
AC_LANG_SAVE
|
||||
AC_LANG_CPLUSPLUS
|
||||
AC_LANG_PUSH(C++)
|
||||
if test "$ac_cv_prog_gxx" = "yes"
|
||||
then
|
||||
# Add -Werror, remove -fbranch-probabilities (Bug #268)
|
||||
CXXFLAGS=`echo $CXXFLAGS -Werror | sed 's/-fbranch-probabilities//'`
|
||||
fi
|
||||
mysql_cv_btype_last_arg_accept=none
|
||||
|
|
@ -127,7 +127,7 @@ fi
|
|||
if test "$mysql_cv_btype_last_arg_accept" = "none"; then
|
||||
mysql_cv_btype_last_arg_accept=int
|
||||
fi)
|
||||
AC_LANG_RESTORE
|
||||
AC_LANG_POP(C++)
|
||||
AC_DEFINE_UNQUOTED([SOCKET_SIZE_TYPE], [$mysql_cv_btype_last_arg_accept],
|
||||
[The base type of the last arg to accept])
|
||||
CXXFLAGS="$ac_save_CXXFLAGS"
|
||||
|
|
@ -153,6 +153,35 @@ then
|
|||
fi
|
||||
])
|
||||
|
||||
#---START: Figure out whether to use 'struct rlimit' or 'struct rlimit64'
|
||||
AC_DEFUN([MYSQL_TYPE_STRUCT_RLIMIT],
|
||||
[ac_save_CXXFLAGS="$CXXFLAGS"
|
||||
AC_CACHE_CHECK([struct type to use with setrlimit], mysql_cv_btype_struct_rlimit,
|
||||
AC_LANG_PUSH(C++)
|
||||
if test "$ac_cv_prog_gxx" = "yes"
|
||||
then
|
||||
# Add -Werror, remove -fbranch-probabilities (Bug #268)
|
||||
CXXFLAGS=`echo $CXXFLAGS -Werror | sed 's/-fbranch-probabilities//'`
|
||||
fi
|
||||
mysql_cv_btype_struct_rlimit=none
|
||||
[AC_TRY_COMPILE([#if defined(inline)
|
||||
#undef inline
|
||||
#endif
|
||||
#include <stdlib.h>
|
||||
#include <sys/resources.h>
|
||||
],
|
||||
[struct rlimit64 rl; setrlimit(RLIMIT_CORE, &rl);],
|
||||
mysql_cv_btype_struct_rlimit="struct rlimit64")]
|
||||
if test "$mysql_cv_btype_struct_rlimit" = "none"; then
|
||||
mysql_cv_btype_struct_rlimit="struct rlimit"
|
||||
fi)
|
||||
AC_LANG_POP(C++)
|
||||
AC_DEFINE_UNQUOTED([STRUCT_RLIMIT], [$mysql_cv_btype_struct_rlimit],
|
||||
[The struct rlimit type to use with setrlimit])
|
||||
CXXFLAGS="$ac_save_CXXFLAGS"
|
||||
])
|
||||
#---END:
|
||||
|
||||
AC_DEFUN([MYSQL_TIMESPEC_TS],
|
||||
[AC_CACHE_CHECK([if struct timespec has a ts_sec member], mysql_cv_timespec_ts,
|
||||
[AC_TRY_COMPILE([#include <pthread.h>
|
||||
|
|
@ -1940,8 +1969,8 @@ m4_define([_AC_PROG_CXX_EXIT_DECLARATION],
|
|||
'void exit (int);' \
|
||||
'#include <stdlib.h>'
|
||||
do
|
||||
_AC_COMPILE_IFELSE([AC_LANG_PROGRAM([@%:@include <stdlib.h>
|
||||
$ac_declaration],
|
||||
_AC_COMPILE_IFELSE([AC_LANG_PROGRAM([$ac_declaration
|
||||
@%:@include <stdlib.h>],
|
||||
[exit (42);])],
|
||||
[],
|
||||
[continue])
|
||||
|
|
|
|||
|
|
@ -1795,6 +1795,8 @@ AC_C_BIGENDIAN
|
|||
MYSQL_TYPE_ACCEPT
|
||||
|
||||
#---END:
|
||||
# Figure out what type of struct rlimit to use with setrlimit
|
||||
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..
|
||||
|
|
|
|||
|
|
@ -2000,7 +2000,7 @@ static void init_signals(void)
|
|||
if (test_flags & TEST_CORE_ON_SIGNAL)
|
||||
{
|
||||
/* Change limits so that we will get a core file */
|
||||
struct rlimit rl;
|
||||
STRUCT_RLIMIT rl;
|
||||
rl.rlim_cur = rl.rlim_max = RLIM_INFINITY;
|
||||
if (setrlimit(RLIMIT_CORE, &rl) && global_system_variables.log_warnings)
|
||||
sql_print_warning("setrlimit could not change the size of core files to 'infinity'; We may not be able to generate a core file on signals");
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue