diff options
author | unknown <istruewing@chilla.local> | 2007-01-29 18:47:46 +0100 |
---|---|---|
committer | unknown <istruewing@chilla.local> | 2007-01-29 18:47:46 +0100 |
commit | 1042a25a7fe0ecb94af989524796b4619ba31751 (patch) | |
tree | d5baa9f433ccab67349d65f3e71a37dfb9ef45b2 /include | |
parent | 92a7c1ed9c6dec1fee17a830fdabe9272d6692bd (diff) | |
parent | d308799383bdbcaad568c9844b34708462dd74e7 (diff) | |
download | mariadb-git-1042a25a7fe0ecb94af989524796b4619ba31751.tar.gz |
Merge chilla.local:/home/mydev/mysql-4.1-axmrg
into chilla.local:/home/mydev/mysql-5.0-axmrg
BUILD/SETUP.sh:
Auto merged
configure.in:
Auto merged
include/my_global.h:
Auto merged
include/thr_alarm.h:
Auto merged
mysql-test/mysql-test-run.pl:
Auto merged
mysql-test/r/symlink.result:
Auto merged
mysql-test/t/myisam.test:
Auto merged
mysql-test/t/symlink.test:
Auto merged
mysys/my_pthread.c:
Auto merged
sql/item_func.cc:
Auto merged
include/my_pthread.h:
Manual merged
mysql-test/r/myisam.result:
Manual merged
mysys/thr_alarm.c:
Manual merged
sql/ha_ndbcluster.cc:
Manual merged
sql/mysqld.cc:
Manual merged
Diffstat (limited to 'include')
-rw-r--r-- | include/my_global.h | 5 | ||||
-rw-r--r-- | include/my_global.h.rej | 17 | ||||
-rw-r--r-- | include/my_pthread.h | 9 | ||||
-rw-r--r-- | include/my_pthread.h.rej | 80 | ||||
-rw-r--r-- | include/thr_alarm.h | 5 |
5 files changed, 109 insertions, 7 deletions
diff --git a/include/my_global.h b/include/my_global.h index b91ff8a9e5b..306aabd15fe 100644 --- a/include/my_global.h +++ b/include/my_global.h @@ -454,7 +454,10 @@ int __void__; #endif /* Define some useful general macros */ -#if !defined(max) +#if defined(__cplusplus) && defined(__GNUC__) +#define max(a, b) ((a) >? (b)) +#define min(a, b) ((a) <? (b)) +#elif !defined(max) #define max(a, b) ((a) > (b) ? (a) : (b)) #define min(a, b) ((a) < (b) ? (a) : (b)) #endif diff --git a/include/my_global.h.rej b/include/my_global.h.rej new file mode 100644 index 00000000000..f2953d169e7 --- /dev/null +++ b/include/my_global.h.rej @@ -0,0 +1,17 @@ +*************** +*** 97,103 **** + + + /* Fix problem with S_ISLNK() on Linux */ +! #if defined(HAVE_LINUXTHREADS) + #undef _GNU_SOURCE + #define _GNU_SOURCE 1 + #endif +--- 97,103 ---- + + + /* Fix problem with S_ISLNK() on Linux */ +! #if defined(TARGET_OS_LINUX) || defined(__GLIBC__) + #undef _GNU_SOURCE + #define _GNU_SOURCE 1 + #endif diff --git a/include/my_pthread.h b/include/my_pthread.h index 52e900b5803..cf6ae8cd6a1 100644 --- a/include/my_pthread.h +++ b/include/my_pthread.h @@ -30,6 +30,14 @@ extern "C" { #define EXTERNC #endif /* __cplusplus */ +/* Thread library */ + +#define THD_LIB_OTHER 1 +#define THD_LIB_NPTL 2 +#define THD_LIB_LT 4 + +extern uint thd_lib_detected; + /* BUG#24507: Race conditions inside current NPTL pthread_exit() implementation. @@ -49,7 +57,6 @@ extern "C" { #define NPTL_PTHREAD_EXIT_BUG 1 #endif - #if defined(__WIN__) || defined(OS2) #ifdef OS2 diff --git a/include/my_pthread.h.rej b/include/my_pthread.h.rej new file mode 100644 index 00000000000..1f73655b0bd --- /dev/null +++ b/include/my_pthread.h.rej @@ -0,0 +1,80 @@ +*************** +*** 286,293 **** + #undef HAVE_PTHREAD_RWLOCK_RDLOCK + #undef HAVE_SNPRINTF + +! #define sigset(A,B) pthread_signal((A),(void (*)(int)) (B)) +! #define signal(A,B) pthread_signal((A),(void (*)(int)) (B)) + #define my_pthread_attr_setprio(A,B) + #endif /* defined(PTHREAD_SCOPE_GLOBAL) && !defined(PTHREAD_SCOPE_SYSTEM) */ + +--- 294,301 ---- + #undef HAVE_PTHREAD_RWLOCK_RDLOCK + #undef HAVE_SNPRINTF + +! #define my_sigset(A,B) pthread_signal((A),(void (*)(int)) (B)) +! #define my_signal(A,B) pthread_signal((A),(void (*)(int)) (B)) + #define my_pthread_attr_setprio(A,B) + #endif /* defined(PTHREAD_SCOPE_GLOBAL) && !defined(PTHREAD_SCOPE_SYSTEM) */ + +*************** +*** 324,337 **** + #if !defined(HAVE_SIGWAIT) && !defined(HAVE_mit_thread) && !defined(HAVE_rts_threads) && !defined(sigwait) && !defined(alpha_linux_port) && !defined(HAVE_NONPOSIX_SIGWAIT) && !defined(HAVE_DEC_3_2_THREADS) && !defined(_AIX) + int sigwait(sigset_t *setp, int *sigp); /* Use our implemention */ + #endif +! #if !defined(HAVE_SIGSET) && !defined(HAVE_mit_thread) && !defined(sigset) +! #define sigset(A,B) do { struct sigaction s; sigset_t set; \ +! sigemptyset(&set); \ +! s.sa_handler = (B); \ +! s.sa_mask = set; \ +! s.sa_flags = 0; \ +! sigaction((A), &s, (struct sigaction *) NULL); \ + } while (0) + #endif + + #ifndef my_pthread_setprio +--- 332,358 ---- + #if !defined(HAVE_SIGWAIT) && !defined(HAVE_mit_thread) && !defined(HAVE_rts_threads) && !defined(sigwait) && !defined(alpha_linux_port) && !defined(HAVE_NONPOSIX_SIGWAIT) && !defined(HAVE_DEC_3_2_THREADS) && !defined(_AIX) + int sigwait(sigset_t *setp, int *sigp); /* Use our implemention */ + #endif +! +! /* +! We define my_sigset() and use that instead of the system sigset() so that +! we can favor an implementation based on sigaction(). On some systems, such +! as Mac OS X, sigset() results in flags such as SA_RESTART being set, and +! we want to make sure that no such flags are set. +! */ +! #if defined(HAVE_SIGACTION) && !defined(my_sigset) +! #define my_sigset(A,B) do { struct sigaction s; sigset_t set; int rc; \ +! DBUG_ASSERT((A) != 0); \ +! sigemptyset(&set); \ +! s.sa_handler = (B); \ +! s.sa_mask = set; \ +! s.sa_flags = 0; \ +! rc= sigaction((A), &s, (struct sigaction *) NULL); \ +! DBUG_ASSERT(rc == 0); \ + } while (0) ++ #elif defined(HAVE_SIGSET) && !defined(my_sigset) ++ #define my_sigset(A,B) sigset((A),(B)) ++ #elif !defined(my_sigset) ++ #define my_sigset(A,B) signal((A),(B)) + #endif + + #ifndef my_pthread_setprio +*************** +*** 416,422 **** + #undef pthread_detach_this_thread + #define pthread_detach_this_thread() { pthread_t tmp=pthread_self() ; pthread_detach(tmp); } + #undef sigset +! #define sigset(A,B) pthread_signal((A),(void (*)(int)) (B)) + #endif + + #if ((defined(HAVE_PTHREAD_ATTR_CREATE) && !defined(HAVE_SIGWAIT)) || defined(HAVE_DEC_3_2_THREADS)) && !defined(HAVE_CTHREADS_WRAPPER) +--- 437,443 ---- + #undef pthread_detach_this_thread + #define pthread_detach_this_thread() { pthread_t tmp=pthread_self() ; pthread_detach(tmp); } + #undef sigset +! #define my_sigset(A,B) pthread_signal((A),(void (*)(int)) (B)) + #endif + + #if ((defined(HAVE_PTHREAD_ATTR_CREATE) && !defined(HAVE_SIGWAIT)) || defined(HAVE_DEC_3_2_THREADS)) && !defined(HAVE_CTHREADS_WRAPPER) diff --git a/include/thr_alarm.h b/include/thr_alarm.h index db3091fb8d0..fb7b9762b10 100644 --- a/include/thr_alarm.h +++ b/include/thr_alarm.h @@ -24,11 +24,6 @@ extern "C" { #ifndef USE_ALARM_THREAD #define USE_ONE_SIGNAL_HAND /* One must call process_alarm */ #endif -#ifdef HAVE_LINUXTHREADS -#define THR_CLIENT_ALARM SIGALRM -#else -#define THR_CLIENT_ALARM SIGUSR1 -#endif #ifdef HAVE_rts_threads #undef USE_ONE_SIGNAL_HAND #define USE_ALARM_THREAD |