diff options
Diffstat (limited to 'main/uclibc/pthread-new-aliasing-fix.diff')
-rw-r--r-- | main/uclibc/pthread-new-aliasing-fix.diff | 147 |
1 files changed, 0 insertions, 147 deletions
diff --git a/main/uclibc/pthread-new-aliasing-fix.diff b/main/uclibc/pthread-new-aliasing-fix.diff deleted file mode 100644 index 2b2b37723a..0000000000 --- a/main/uclibc/pthread-new-aliasing-fix.diff +++ /dev/null @@ -1,147 +0,0 @@ -diff --git a/libpthread/linuxthreads/cancel.c b/libpthread/linuxthreads/cancel.c -index 3435680..1412b57 100644 ---- a/libpthread/linuxthreads/cancel.c -+++ b/libpthread/linuxthreads/cancel.c -@@ -152,8 +152,8 @@ void pthread_testcancel(void) - __pthread_do_exit(PTHREAD_CANCELED, CURRENT_STACK_FRAME); - } - --void _pthread_cleanup_push(struct _pthread_cleanup_buffer * buffer, -- void (*routine)(void *), void * arg) -+void __pthread_cleanup_push(struct _pthread_cleanup_buffer * buffer, -+ void (*routine)(void *), void * arg) - { - pthread_descr self = thread_self(); - buffer->__routine = routine; -@@ -163,17 +163,19 @@ void _pthread_cleanup_push(struct _pthread_cleanup_buffer * buffer, - buffer->__prev = NULL; - THREAD_SETMEM(self, p_cleanup, buffer); - } -+strong_alias(__pthread_cleanup_push, _pthread_cleanup_push); - --void _pthread_cleanup_pop(struct _pthread_cleanup_buffer * buffer, -- int execute) -+void __pthread_cleanup_pop(struct _pthread_cleanup_buffer * buffer, -+ int execute) - { - pthread_descr self = thread_self(); - if (execute) buffer->__routine(buffer->__arg); - THREAD_SETMEM(self, p_cleanup, buffer->__prev); - } -+strong_alias(__pthread_cleanup_pop, _pthread_cleanup_pop); - --void _pthread_cleanup_push_defer(struct _pthread_cleanup_buffer * buffer, -- void (*routine)(void *), void * arg) -+void __pthread_cleanup_push_defer(struct _pthread_cleanup_buffer * buffer, -+ void (*routine)(void *), void * arg) - { - pthread_descr self = thread_self(); - buffer->__routine = routine; -@@ -185,9 +187,10 @@ void _pthread_cleanup_push_defer(struct _pthread_cleanup_buffer * buffer, - THREAD_SETMEM(self, p_canceltype, PTHREAD_CANCEL_DEFERRED); - THREAD_SETMEM(self, p_cleanup, buffer); - } -+strong_alias(__pthread_cleanup_push_defer, _pthread_cleanup_push_defer); - --void _pthread_cleanup_pop_restore(struct _pthread_cleanup_buffer * buffer, -- int execute) -+void __pthread_cleanup_pop_restore(struct _pthread_cleanup_buffer * buffer, -+ int execute) - { - pthread_descr self = thread_self(); - if (execute) buffer->__routine(buffer->__arg); -@@ -198,6 +201,7 @@ void _pthread_cleanup_pop_restore(struct _pthread_cleanup_buffer * buffer, - THREAD_GETMEM(self, p_canceltype) == PTHREAD_CANCEL_ASYNCHRONOUS) - __pthread_do_exit(PTHREAD_CANCELED, CURRENT_STACK_FRAME); - } -+strong_alias(__pthread_cleanup_pop_restore, _pthread_cleanup_pop_restore); - - extern void __rpc_thread_destroy(void); - void __pthread_perform_cleanup(char *currentframe) -diff --git a/libpthread/linuxthreads/forward.c b/libpthread/linuxthreads/forward.c -index f9f8ea1..385e79f 100644 ---- a/libpthread/linuxthreads/forward.c -+++ b/libpthread/linuxthreads/forward.c -@@ -24,6 +24,10 @@ - /* psm: keep this before internals.h */ - /* libc_hidden_proto(exit) */ - -+#define hidden_strong_alias(name, aliasname) \ -+ extern __typeof (name) aliasname __attribute__ ((alias (#name), \ -+ visibility ("hidden"))); -+ - #include "internals.h" - - /* Pointers to the libc functions. */ -@@ -104,8 +108,7 @@ FORWARD (pthread_equal, (pthread_t thread1, pthread_t thread2), - - /* Use an alias to avoid warning, as pthread_exit is declared noreturn. */ - FORWARD2 (__pthread_exit, void, (void *retval), (retval), exit (EXIT_SUCCESS)) --strong_alias (__pthread_exit, pthread_exit) -- -+hidden_strong_alias (__pthread_exit, pthread_exit) - - FORWARD (pthread_getschedparam, - (pthread_t target_thread, int *policy, struct sched_param *param), -@@ -120,16 +123,16 @@ FORWARD (pthread_mutex_destroy, (pthread_mutex_t *mutex), (mutex), 0) - FORWARD (pthread_mutex_init, - (pthread_mutex_t *mutex, const pthread_mutexattr_t *mutexattr), - (mutex, mutexattr), 0) --strong_alias(pthread_mutex_init, __pthread_mutex_init) -+hidden_strong_alias(pthread_mutex_init, __pthread_mutex_init) - - FORWARD (pthread_mutex_lock, (pthread_mutex_t *mutex), (mutex), 0) --strong_alias(pthread_mutex_lock, __pthread_mutex_lock) -+hidden_strong_alias(pthread_mutex_lock, __pthread_mutex_lock) - - FORWARD (pthread_mutex_trylock, (pthread_mutex_t *mutex), (mutex), 0) --strong_alias(pthread_mutex_trylock, __pthread_mutex_trylock) -+hidden_strong_alias(pthread_mutex_trylock, __pthread_mutex_trylock) - - FORWARD (pthread_mutex_unlock, (pthread_mutex_t *mutex), (mutex), 0) --strong_alias(pthread_mutex_unlock, __pthread_mutex_unlock) -+hidden_strong_alias(pthread_mutex_unlock, __pthread_mutex_unlock) - - FORWARD2 (pthread_self, pthread_t, (void), (), return 0) - -diff --git a/libpthread/linuxthreads/internals.h b/libpthread/linuxthreads/internals.h -index eb0a519..4ad6a0d 100644 ---- a/libpthread/linuxthreads/internals.h -+++ b/libpthread/linuxthreads/internals.h -@@ -380,6 +380,17 @@ extern int __pthread_setschedparam (pthread_t thread, int policy, - extern int __pthread_setcancelstate (int state, int * oldstate); - extern int __pthread_setcanceltype (int type, int * oldtype); - -+extern void __pthread_cleanup_push (struct _pthread_cleanup_buffer *__buffer, -+ void (*__routine) (void *), -+ void *__arg) __THROW; -+extern void __pthread_cleanup_pop (struct _pthread_cleanup_buffer *__buffer, -+ int __execute) __THROW; -+extern void __pthread_cleanup_push_defer (struct _pthread_cleanup_buffer *__buffer, -+ void (*__routine) (void *), -+ void *__arg) __THROW; -+extern void __pthread_cleanup_pop_restore (struct _pthread_cleanup_buffer *__buffer, -+ int __execute) __THROW; -+ - extern void __pthread_restart_old(pthread_descr th); - extern void __pthread_suspend_old(pthread_descr self); - extern int __pthread_timedsuspend_old(pthread_descr self, const struct timespec *abstime); -diff --git a/libpthread/linuxthreads/pthread.c b/libpthread/linuxthreads/pthread.c -index 4d1d906..012b74b 100644 ---- a/libpthread/linuxthreads/pthread.c -+++ b/libpthread/linuxthreads/pthread.c -@@ -280,10 +280,10 @@ struct pthread_functions __pthread_functions = - .ptr_pthread_sigaction = __pthread_sigaction, - .ptr_pthread_sigwait = __pthread_sigwait, - .ptr_pthread_raise = __pthread_raise, -- .ptr__pthread_cleanup_push = _pthread_cleanup_push, -- .ptr__pthread_cleanup_push_defer = _pthread_cleanup_push_defer, -- .ptr__pthread_cleanup_pop = _pthread_cleanup_pop, -- .ptr__pthread_cleanup_pop_restore = _pthread_cleanup_pop_restore, -+ .ptr__pthread_cleanup_push = __pthread_cleanup_push, -+ .ptr__pthread_cleanup_push_defer = __pthread_cleanup_push_defer, -+ .ptr__pthread_cleanup_pop = __pthread_cleanup_pop, -+ .ptr__pthread_cleanup_pop_restore = __pthread_cleanup_pop_restore, - }; - #ifdef SHARED - # define ptr_pthread_functions &__pthread_functions |