Commit 965ecb95 authored by unknown's avatar unknown

Fixes to merge between 5.1-main and 5.1-marvel


include/my_atomic.h:
  To avoid compiler problems on some platforms, static inline
  should be a macro here.
include/my_bit.h:
  To avoid compiler problems on windows and solaris
libmysql/CMakeLists.txt:
  Added missing library on Windows.
parent d685c483
...@@ -35,7 +35,7 @@ ...@@ -35,7 +35,7 @@
#ifdef HAVE_INLINE #ifdef HAVE_INLINE
#define make_atomic_add(S) \ #define make_atomic_add(S) \
static inline int ## S my_atomic_add ## S( \ STATIC_INLINE int ## S my_atomic_add ## S( \
int ## S volatile *a, int ## S v) \ int ## S volatile *a, int ## S v) \
{ \ { \
make_atomic_add_body(S); \ make_atomic_add_body(S); \
...@@ -43,7 +43,7 @@ static inline int ## S my_atomic_add ## S( \ ...@@ -43,7 +43,7 @@ static inline int ## S my_atomic_add ## S( \
} }
#define make_atomic_swap(S) \ #define make_atomic_swap(S) \
static inline int ## S my_atomic_swap ## S( \ STATIC_INLINE int ## S my_atomic_swap ## S( \
int ## S volatile *a, int ## S v) \ int ## S volatile *a, int ## S v) \
{ \ { \
make_atomic_swap_body(S); \ make_atomic_swap_body(S); \
...@@ -51,7 +51,7 @@ static inline int ## S my_atomic_swap ## S( \ ...@@ -51,7 +51,7 @@ static inline int ## S my_atomic_swap ## S( \
} }
#define make_atomic_cas(S) \ #define make_atomic_cas(S) \
static inline int my_atomic_cas ## S(int ## S volatile *a, \ STATIC_INLINE int my_atomic_cas ## S(int ## S volatile *a, \
int ## S *cmp, int ## S set) \ int ## S *cmp, int ## S set) \
{ \ { \
int8 ret; \ int8 ret; \
...@@ -60,7 +60,7 @@ static inline int my_atomic_cas ## S(int ## S volatile *a, \ ...@@ -60,7 +60,7 @@ static inline int my_atomic_cas ## S(int ## S volatile *a, \
} }
#define make_atomic_load(S) \ #define make_atomic_load(S) \
static inline int ## S my_atomic_load ## S(int ## S volatile *a) \ STATIC_INLINE int ## S my_atomic_load ## S(int ## S volatile *a) \
{ \ { \
int ## S ret; \ int ## S ret; \
make_atomic_load_body(S); \ make_atomic_load_body(S); \
...@@ -68,7 +68,7 @@ static inline int ## S my_atomic_load ## S(int ## S volatile *a) \ ...@@ -68,7 +68,7 @@ static inline int ## S my_atomic_load ## S(int ## S volatile *a) \
} }
#define make_atomic_store(S) \ #define make_atomic_store(S) \
static inline void my_atomic_store ## S( \ STATIC_INLINE void my_atomic_store ## S( \
int ## S volatile *a, int ## S v) \ int ## S volatile *a, int ## S v) \
{ \ { \
make_atomic_store_body(S); \ make_atomic_store_body(S); \
......
...@@ -2,6 +2,7 @@ ...@@ -2,6 +2,7 @@
Some useful bit functions Some useful bit functions
*/ */
C_MODE_START
#ifdef HAVE_INLINE #ifdef HAVE_INLINE
extern const char _my_bits_nbits[256]; extern const char _my_bits_nbits[256];
...@@ -97,11 +98,12 @@ STATIC_INLINE uint32 my_reverse_bits(uint32 key) ...@@ -97,11 +98,12 @@ STATIC_INLINE uint32 my_reverse_bits(uint32 key)
_my_bits_reverse_table[(key>>24) ]; _my_bits_reverse_table[(key>>24) ];
} }
#else #else /* HAVE_INLINE */
extern uint my_bit_log2(ulong value); extern uint my_bit_log2(ulong value);
extern uint32 my_round_up_to_next_power(uint32 v); extern uint32 my_round_up_to_next_power(uint32 v);
uint32 my_clear_highest_bit(uint32 v); uint32 my_clear_highest_bit(uint32 v);
uint32 my_reverse_bits(uint32 key); uint32 my_reverse_bits(uint32 key);
extern uint my_count_bits(ulonglong v); extern uint my_count_bits(ulonglong v);
extern uint my_count_bits_ushort(ushort v); extern uint my_count_bits_ushort(ushort v);
#endif #endif /* HAVE_INLINE */
C_MODE_END
...@@ -98,7 +98,7 @@ SET(CLIENT_SOURCES ../mysys/array.c ../strings/bchange.c ../strings/bmove.c ...@@ -98,7 +98,7 @@ SET(CLIENT_SOURCES ../mysys/array.c ../strings/bchange.c ../strings/bmove.c
../strings/strtoll.c ../strings/strtoull.c ../strings/strxmov.c ../strings/strxnmov.c ../strings/strtoll.c ../strings/strtoull.c ../strings/strxmov.c ../strings/strxnmov.c
../mysys/thr_mutex.c ../mysys/typelib.c ../vio/vio.c ../vio/viosocket.c ../mysys/thr_mutex.c ../mysys/typelib.c ../vio/vio.c ../vio/viosocket.c
../vio/viossl.c ../vio/viosslfactories.c ../strings/xml.c ../vio/viossl.c ../vio/viosslfactories.c ../strings/xml.c
../mysys/my_getsystime.c ${LIB_SOURCES}) ../mysys/my_getsystime.c ../mysys/my_sync.c ${LIB_SOURCES})
# Need to set USE_TLS for building the DLL, since __declspec(thread) # Need to set USE_TLS for building the DLL, since __declspec(thread)
# approach to thread local storage does not work properly in DLLs. # approach to thread local storage does not work properly in DLLs.
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment