diff options
author | unknown <lenz@mysql.com> | 2002-07-15 13:33:56 +0200 |
---|---|---|
committer | unknown <lenz@mysql.com> | 2002-07-15 13:33:56 +0200 |
commit | 15e3840eba4964f4e3ab9c7b986e147c1760e558 (patch) | |
tree | 6ea8f94adc277510ee95c6b505ea9aaeba4364d1 | |
parent | e7e377652f75e3025cf338020514aa92766d04bf (diff) | |
download | mariadb-git-15e3840eba4964f4e3ab9c7b986e147c1760e558.tar.gz |
Added some patches provided by SuSE to fix build problems on
ppc64 and x86-64, fixed a compile bug when building with TCP wrapper
support on Linux
bdb/dist/acconfig.h:
Added patch for x86_64 (provided by SuSE)
bdb/dist/aclocal/mutex.m4:
Added patch for x86_64 (provided by SuSE)
bdb/include/mutex.h:
Added patch for x86_64 (provided by SuSE)
include/global.h:
Added a SMP-related patch for PPC64 (provided by SuSE)
sql/mysqld.cc:
Compile fix for Linux when compiling with --with-librwap
-rw-r--r-- | bdb/dist/acconfig.h | 1 | ||||
-rw-r--r-- | bdb/dist/aclocal/mutex.m4 | 12 | ||||
-rw-r--r-- | bdb/include/mutex.h | 22 | ||||
-rw-r--r-- | include/global.h | 3 | ||||
-rw-r--r-- | sql/mysqld.cc | 10 |
5 files changed, 42 insertions, 6 deletions
diff --git a/bdb/dist/acconfig.h b/bdb/dist/acconfig.h index e30d0e3d2c2..19f85a460d9 100644 --- a/bdb/dist/acconfig.h +++ b/bdb/dist/acconfig.h @@ -52,6 +52,7 @@ #undef HAVE_MUTEX_WIN16 #undef HAVE_MUTEX_WIN32 #undef HAVE_MUTEX_X86_GCC_ASSEMBLY +#undef HAVE_MUTEX_X86_64_GCC_ASSEMBLY /* Define if building on QNX. */ #undef HAVE_QNX diff --git a/bdb/dist/aclocal/mutex.m4 b/bdb/dist/aclocal/mutex.m4 index 5f16ee0e114..a6b1fa1a053 100644 --- a/bdb/dist/aclocal/mutex.m4 +++ b/bdb/dist/aclocal/mutex.m4 @@ -314,6 +314,18 @@ AC_TRY_RUN([main(){ }], [db_cv_mutex="x86/gcc-assembly"]) fi +dnl x86_64/gcc: FreeBSD, NetBSD, BSD/OS, Linux +if test "$db_cv_mutex" = no; then +AC_TRY_RUN([main(){ +#if defined(x86_64) || defined(__x86_64__) +#if defined(__GNUC__) + exit(0); +#endif +#endif + exit(1); +}], [db_cv_mutex="x86_64/gcc-assembly"]) +fi + dnl ia86/gcc: Linux if test "$db_cv_mutex" = no; then AC_TRY_RUN([main(){ diff --git a/bdb/include/mutex.h b/bdb/include/mutex.h index a8a41451012..4c1b265355d 100644 --- a/bdb/include/mutex.h +++ b/bdb/include/mutex.h @@ -611,6 +611,28 @@ typedef unsigned char tsl_t; #endif #endif +#ifdef HAVE_MUTEX_X86_64_GCC_ASSEMBLY +typedef unsigned char tsl_t; + +#ifdef LOAD_ACTUAL_MUTEX_CODE +/* + * For gcc/x86, 0 is clear, 1 is set. + */ +#define MUTEX_SET(tsl) ({ \ + register tsl_t *__l = (tsl); \ + int __r; \ + asm volatile("mov $1,%%rax; lock; xchgb %1,%%al; xor $1,%%rax"\ + : "=&a" (__r), "=m" (*__l) \ + : "1" (*__l) \ + ); \ + __r & 1; \ +}) + +#define MUTEX_UNSET(tsl) (*(tsl) = 0) +#define MUTEX_INIT(tsl) MUTEX_UNSET(tsl) +#endif +#endif + /* * Mutex alignment defaults to one byte. * diff --git a/include/global.h b/include/global.h index a58179e6759..61e00df375d 100644 --- a/include/global.h +++ b/include/global.h @@ -139,7 +139,7 @@ #endif /* In Linux-ia64 including atomic.h will give us an error */ -#if (defined(HAVE_LINUXTHREADS) && defined(__GNUC__) && defined(__ia64__)) || !defined(THREAD) +#if (defined(HAVE_LINUXTHREADS) && defined(__GNUC__) && (defined(__ia64__) || defined(__powerpc64__))) || !defined(THREAD) #undef HAVE_ATOMIC_ADD #undef HAVE_ATOMIC_SUB #endif @@ -200,6 +200,7 @@ #endif #ifdef HAVE_ATOMIC_ADD #define __SMP__ +#define CONFIG_SMP #include <asm/atomic.h> #endif diff --git a/sql/mysqld.cc b/sql/mysqld.cc index a810219da15..251dda77d34 100644 --- a/sql/mysqld.cc +++ b/sql/mysqld.cc @@ -90,14 +90,14 @@ extern "C" { // Because of SCO 3.2V4.2 int allow_severity = LOG_INFO; int deny_severity = LOG_WARNING; -#ifdef __linux__ -#define my_fromhost(A) fromhost() -#define my_hosts_access(A) hosts_access() -#define my_eval_client(A) eval_client() -#else +#ifdef __STDC__ #define my_fromhost(A) fromhost(A) #define my_hosts_access(A) hosts_access(A) #define my_eval_client(A) eval_client(A) +#else +#define my_fromhost(A) fromhost() +#define my_hosts_access(A) hosts_access() +#define my_eval_client(A) eval_client() #endif #endif /* HAVE_LIBWRAP */ |