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.
This commit is contained in:
unknown 2007-10-16 17:59:16 +03:00
parent fb84f573ad
commit 7ee391c4da
3 changed files with 10 additions and 8 deletions

View file

@ -35,7 +35,7 @@
#ifdef HAVE_INLINE
#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) \
{ \
make_atomic_add_body(S); \
@ -43,7 +43,7 @@ static inline int ## S my_atomic_add ## 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) \
{ \
make_atomic_swap_body(S); \
@ -51,7 +51,7 @@ static inline int ## S my_atomic_swap ## 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) \
{ \
int8 ret; \
@ -60,7 +60,7 @@ static inline int my_atomic_cas ## S(int ## S volatile *a, \
}
#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; \
make_atomic_load_body(S); \
@ -68,7 +68,7 @@ static inline int ## S my_atomic_load ## S(int ## S volatile *a) \
}
#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) \
{ \
make_atomic_store_body(S); \

View file

@ -2,6 +2,7 @@
Some useful bit functions
*/
C_MODE_START
#ifdef HAVE_INLINE
extern const char _my_bits_nbits[256];
@ -97,11 +98,12 @@ STATIC_INLINE uint32 my_reverse_bits(uint32 key)
_my_bits_reverse_table[(key>>24) ];
}
#else
#else /* HAVE_INLINE */
extern uint my_bit_log2(ulong value);
extern uint32 my_round_up_to_next_power(uint32 v);
uint32 my_clear_highest_bit(uint32 v);
uint32 my_reverse_bits(uint32 key);
extern uint my_count_bits(ulonglong v);
extern uint my_count_bits_ushort(ushort v);
#endif
#endif /* HAVE_INLINE */
C_MODE_END

View file

@ -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
../mysys/thr_mutex.c ../mysys/typelib.c ../vio/vio.c ../vio/viosocket.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)
# approach to thread local storage does not work properly in DLLs.