Merge from mysql-5.0.80-release
This commit is contained in:
commit
8a219e395c
@ -66,7 +66,7 @@ typedef KEYMAP_ENTRY *Keymap;
|
|||||||
|
|
||||||
#ifndef CTRL
|
#ifndef CTRL
|
||||||
#include <sys/ioctl.h>
|
#include <sys/ioctl.h>
|
||||||
#if !defined(__sun) && !defined(__hpux) && !defined(_AIX)
|
#if !defined(__sun) && !defined(__hpux) && !defined(_AIX) && !defined(__QNXNTO__) && !defined(__USLC__)
|
||||||
#include <sys/ttydefaults.h>
|
#include <sys/ttydefaults.h>
|
||||||
#endif
|
#endif
|
||||||
#ifndef CTRL
|
#ifndef CTRL
|
||||||
|
@ -45,7 +45,7 @@ extern "C" {
|
|||||||
#undef HAVE_SYS_MMAN_H
|
#undef HAVE_SYS_MMAN_H
|
||||||
#undef HAVE_SYNCH_H
|
#undef HAVE_SYNCH_H
|
||||||
#undef HAVE_MMAP
|
#undef HAVE_MMAP
|
||||||
#undef HAVE_RINT
|
#undef HAVE_FESETROUND
|
||||||
|
|
||||||
#define HAVE_PTHREAD_ATTR_SETSTACKSIZE 1
|
#define HAVE_PTHREAD_ATTR_SETSTACKSIZE 1
|
||||||
#define HAVE_PTHREAD_SIGMASK 1
|
#define HAVE_PTHREAD_SIGMASK 1
|
||||||
|
@ -486,40 +486,6 @@ typedef unsigned short ushort;
|
|||||||
#define test_all_bits(a,b) (((a) & (b)) == (b))
|
#define test_all_bits(a,b) (((a) & (b)) == (b))
|
||||||
#define set_bits(type, bit_count) (sizeof(type)*8 <= (bit_count) ? ~(type) 0 : ((((type) 1) << (bit_count)) - (type) 1))
|
#define set_bits(type, bit_count) (sizeof(type)*8 <= (bit_count) ? ~(type) 0 : ((((type) 1) << (bit_count)) - (type) 1))
|
||||||
#define array_elements(A) ((uint) (sizeof(A)/sizeof(A[0])))
|
#define array_elements(A) ((uint) (sizeof(A)/sizeof(A[0])))
|
||||||
#ifndef HAVE_RINT
|
|
||||||
/**
|
|
||||||
All integers up to this number can be represented exactly as double precision
|
|
||||||
values (DBL_MANT_DIG == 53 for IEEE 754 hardware).
|
|
||||||
*/
|
|
||||||
#define MAX_EXACT_INTEGER ((1LL << DBL_MANT_DIG) - 1)
|
|
||||||
|
|
||||||
/**
|
|
||||||
rint(3) implementation for platforms that do not have it.
|
|
||||||
Always rounds to the nearest integer with ties being rounded to the nearest
|
|
||||||
even integer to mimic glibc's rint() behavior in the "round-to-nearest"
|
|
||||||
FPU mode. Hardware-specific optimizations are possible (frndint on x86).
|
|
||||||
Unlike this implementation, hardware will also honor the FPU rounding mode.
|
|
||||||
*/
|
|
||||||
|
|
||||||
static inline double rint(double x)
|
|
||||||
{
|
|
||||||
double f, i;
|
|
||||||
f = modf(x, &i);
|
|
||||||
/*
|
|
||||||
All doubles with absolute values > MAX_EXACT_INTEGER are even anyway,
|
|
||||||
no need to check it.
|
|
||||||
*/
|
|
||||||
if (x > 0.0)
|
|
||||||
i += (double) ((f > 0.5) || (f == 0.5 &&
|
|
||||||
i <= (double) MAX_EXACT_INTEGER &&
|
|
||||||
(longlong) i % 2));
|
|
||||||
else
|
|
||||||
i -= (double) ((f < -0.5) || (f == -0.5 &&
|
|
||||||
i >= (double) -MAX_EXACT_INTEGER &&
|
|
||||||
(longlong) i % 2));
|
|
||||||
return i;
|
|
||||||
}
|
|
||||||
#endif /* HAVE_RINT */
|
|
||||||
|
|
||||||
/* Define some general constants */
|
/* Define some general constants */
|
||||||
#ifndef TRUE
|
#ifndef TRUE
|
||||||
@ -1391,4 +1357,39 @@ do { doubleget_union _tmp; \
|
|||||||
|
|
||||||
#define MY_INT64_NUM_DECIMAL_DIGITS 21
|
#define MY_INT64_NUM_DECIMAL_DIGITS 21
|
||||||
|
|
||||||
|
#ifndef HAVE_RINT
|
||||||
|
/**
|
||||||
|
All integers up to this number can be represented exactly as double precision
|
||||||
|
values (DBL_MANT_DIG == 53 for IEEE 754 hardware).
|
||||||
|
*/
|
||||||
|
#define MAX_EXACT_INTEGER ((1LL << DBL_MANT_DIG) - 1)
|
||||||
|
|
||||||
|
/**
|
||||||
|
rint(3) implementation for platforms that do not have it.
|
||||||
|
Always rounds to the nearest integer with ties being rounded to the nearest
|
||||||
|
even integer to mimic glibc's rint() behavior in the "round-to-nearest"
|
||||||
|
FPU mode. Hardware-specific optimizations are possible (frndint on x86).
|
||||||
|
Unlike this implementation, hardware will also honor the FPU rounding mode.
|
||||||
|
*/
|
||||||
|
|
||||||
|
static inline double rint(double x)
|
||||||
|
{
|
||||||
|
double f, i;
|
||||||
|
f = modf(x, &i);
|
||||||
|
/*
|
||||||
|
All doubles with absolute values > MAX_EXACT_INTEGER are even anyway,
|
||||||
|
no need to check it.
|
||||||
|
*/
|
||||||
|
if (x > 0.0)
|
||||||
|
i += (double) ((f > 0.5) || (f == 0.5 &&
|
||||||
|
i <= (double) MAX_EXACT_INTEGER &&
|
||||||
|
(longlong) i % 2));
|
||||||
|
else
|
||||||
|
i -= (double) ((f < -0.5) || (f == -0.5 &&
|
||||||
|
i >= (double) -MAX_EXACT_INTEGER &&
|
||||||
|
(longlong) i % 2));
|
||||||
|
return i;
|
||||||
|
}
|
||||||
|
#endif /* HAVE_RINT */
|
||||||
|
|
||||||
#endif /* my_global_h */
|
#endif /* my_global_h */
|
||||||
|
Loading…
x
Reference in New Issue
Block a user