From 71a7acbd4e8bf6f42e02c04932b3e13a5452b399 Mon Sep 17 00:00:00 2001 From: "Peter S. Mazinger" Date: Wed, 27 Apr 2011 17:07:16 +0200 Subject: linuxthreads.old: cleanup a bit Use __UCLIBC_HAS_TLS__ instead of USE___THREADS (although this LT implementation will never support TLS). Disable unused/unneeded members of the pthread_functions structure. No redirect/forward for _pthread_cleanup_push/pop, it would have not worked anyway due to the fact, that the structure member was not initialized. Disable it's possible internal use in libc-lock.h. Avoid using internals.h in libc_pthread_init.c (moving a prototype to pthread-functions.h). Signed-off-by: Peter S. Mazinger Signed-off-by: Bernhard Reutner-Fischer --- .../linuxthreads.old/sysdeps/pthread/bits/libc-lock.h | 2 ++ .../linuxthreads.old/sysdeps/pthread/pthread-functions.h | 16 ++++++++++++++++ 2 files changed, 18 insertions(+) (limited to 'libpthread/linuxthreads.old/sysdeps') diff --git a/libpthread/linuxthreads.old/sysdeps/pthread/bits/libc-lock.h b/libpthread/linuxthreads.old/sysdeps/pthread/bits/libc-lock.h index 78593ac11..de85f998e 100644 --- a/libpthread/linuxthreads.old/sysdeps/pthread/bits/libc-lock.h +++ b/libpthread/linuxthreads.old/sysdeps/pthread/bits/libc-lock.h @@ -271,6 +271,7 @@ typedef pthread_key_t __libc_key_t; _pthread_cleanup_pop_restore (&_buffer, (DOIT)); \ } +#if 0 #define __libc_cleanup_push(fct, arg) \ { struct _pthread_cleanup_buffer _buffer; \ __libc_maybe_call (_pthread_cleanup_push, (&_buffer, (fct), (arg)), 0) @@ -278,6 +279,7 @@ typedef pthread_key_t __libc_key_t; #define __libc_cleanup_pop(execute) \ __libc_maybe_call (_pthread_cleanup_pop, (&_buffer, execute), 0); \ } +#endif /* Create thread-specific key. */ #define __libc_key_create(KEY, DESTRUCTOR) \ diff --git a/libpthread/linuxthreads.old/sysdeps/pthread/pthread-functions.h b/libpthread/linuxthreads.old/sysdeps/pthread/pthread-functions.h index ce6d10fba..ab5f76795 100644 --- a/libpthread/linuxthreads.old/sysdeps/pthread/pthread-functions.h +++ b/libpthread/linuxthreads.old/sysdeps/pthread/pthread-functions.h @@ -21,17 +21,21 @@ #define _PTHREAD_FUNCTIONS_H 1 #include +#if 0 #include #include struct fork_block; +#endif /* Data type shared with libc. The libc uses it to pass on calls to the thread functions. Wine pokes directly into this structure, so if possible avoid breaking it and append new hooks to the end. */ struct pthread_functions { +#if 0 pid_t (*ptr_pthread_fork) (struct fork_block *); +#endif int (*ptr_pthread_attr_destroy) (pthread_attr_t *); int (*ptr_pthread_attr_init) (pthread_attr_t *); int (*ptr_pthread_attr_getdetachstate) (const pthread_attr_t *, int *); @@ -68,26 +72,36 @@ struct pthread_functions pthread_t (*ptr_pthread_self) (void); int (*ptr_pthread_setcancelstate) (int, int *); int (*ptr_pthread_setcanceltype) (int, int *); +#if 0 void (*ptr_pthread_do_exit) (void *retval, char *currentframe); void (*ptr_pthread_cleanup_upto) (__jmp_buf target, char *targetframe); pthread_descr (*ptr_pthread_thread_self) (void); +#endif +#if !defined __UCLIBC_HAS_TLS__ && defined __UCLIBC_HAS_RPC__ int (*ptr_pthread_internal_tsd_set) (int key, const void *pointer); void * (*ptr_pthread_internal_tsd_get) (int key); void ** __attribute__ ((__const__)) (*ptr_pthread_internal_tsd_address) (int key); +#endif +#if 0 int (*ptr_pthread_sigaction) (int sig, const struct sigaction * act, struct sigaction *oact); int (*ptr_pthread_sigwait) (const sigset_t *set, int *sig); int (*ptr_pthread_raise) (int sig); +#endif int (*ptr_pthread_cond_timedwait) (pthread_cond_t *, pthread_mutex_t *, const struct timespec *); +#if 0 void (*ptr__pthread_cleanup_push) (struct _pthread_cleanup_buffer * buffer, void (*routine)(void *), void * arg); +#endif void (*ptr__pthread_cleanup_push_defer) (struct _pthread_cleanup_buffer * buffer, void (*routine)(void *), void * arg); +#if 0 void (*ptr__pthread_cleanup_pop) (struct _pthread_cleanup_buffer * buffer, int execute); +#endif void (*ptr__pthread_cleanup_pop_restore) (struct _pthread_cleanup_buffer * buffer, int execute); }; @@ -95,4 +109,6 @@ struct pthread_functions /* Variable in libc.so. */ extern struct pthread_functions __libc_pthread_functions attribute_hidden; +extern int * __libc_pthread_init (const struct pthread_functions *functions); + #endif /* pthread-functions.h */ -- cgit v1.2.3