summaryrefslogtreecommitdiff
path: root/recipes/glibc/glibc-2.3.2/pthread-cleanup.patch
diff options
context:
space:
mode:
authorDenys Dmytriyenko <denis@denix.org>2009-03-17 14:32:59 -0400
committerDenys Dmytriyenko <denis@denix.org>2009-03-17 14:32:59 -0400
commit709c4d66e0b107ca606941b988bad717c0b45d9b (patch)
tree37ee08b1eb308f3b2b6426d5793545c38396b838 /recipes/glibc/glibc-2.3.2/pthread-cleanup.patch
parentfa6cd5a3b993f16c27de4ff82b42684516d433ba (diff)
rename packages/ to recipes/ per earlier agreement
See links below for more details: http://thread.gmane.org/gmane.comp.handhelds.openembedded/21326 http://thread.gmane.org/gmane.comp.handhelds.openembedded/21816 Signed-off-by: Denys Dmytriyenko <denis@denix.org> Acked-by: Mike Westerhof <mwester@dls.net> Acked-by: Philip Balister <philip@balister.org> Acked-by: Khem Raj <raj.khem@gmail.com> Acked-by: Marcin Juszkiewicz <hrw@openembedded.org> Acked-by: Koen Kooi <koen@openembedded.org> Acked-by: Frans Meulenbroeks <fransmeulenbroeks@gmail.com>
Diffstat (limited to 'recipes/glibc/glibc-2.3.2/pthread-cleanup.patch')
-rw-r--r--recipes/glibc/glibc-2.3.2/pthread-cleanup.patch62
1 files changed, 62 insertions, 0 deletions
diff --git a/recipes/glibc/glibc-2.3.2/pthread-cleanup.patch b/recipes/glibc/glibc-2.3.2/pthread-cleanup.patch
new file mode 100644
index 0000000000..51c354be87
--- /dev/null
+++ b/recipes/glibc/glibc-2.3.2/pthread-cleanup.patch
@@ -0,0 +1,62 @@
+--- linuxthreads/forward.c 2 Sep 2003 00:37:04 -0000 1.5
++++ linuxthreads/forward.c 18 Sep 2003 23:36:32 -0000
+@@ -173,3 +173,7 @@
+ 0)
+
+ FORWARD (pthread_setcanceltype, (int type, int *oldtype), (type, oldtype), 0)
++
++FORWARD2 (_pthread_cleanup_push, void, (struct _pthread_cleanup_buffer * buffer, void (*routine)(void *), void * arg), (buffer, routine, arg), return)
++
++FORWARD2 (_pthread_cleanup_pop, void, (struct _pthread_cleanup_buffer * buffer, int execute), (buffer, execute), return)
+--- linuxthreads/pthread.c 17 Sep 2003 09:39:16 -0000 1.130
++++ linuxthreads/pthread.c 18 Sep 2003 23:36:32 -0000
+@@ -279,7 +279,9 @@
+ .ptr_pthread_cleanup_upto = __pthread_cleanup_upto,
+ .ptr_pthread_sigaction = __pthread_sigaction,
+ .ptr_pthread_sigwait = __pthread_sigwait,
+- .ptr_pthread_raise = __pthread_raise
++ .ptr_pthread_raise = __pthread_raise,
++ .ptr__pthread_cleanup_push = _pthread_cleanup_push,
++ .ptr__pthread_cleanup_pop = _pthread_cleanup_pop
+ };
+ #ifdef SHARED
+ # define ptr_pthread_functions &__pthread_functions
+--- linuxthreads/sysdeps/pthread/pthread-functions.h 10 Sep 2003 22:27:19 -0000 1.3
++++ linuxthreads/sysdeps/pthread/pthread-functions.h 18 Sep 2003 23:36:33 -0000
+@@ -83,6 +83,11 @@
+ int (*ptr_pthread_raise) (int sig);
+ int (*ptr___pthread_cond_timedwait) (pthread_cond_t *, pthread_mutex_t *,
+ const struct timespec *);
++ void (*ptr__pthread_cleanup_push) (struct _pthread_cleanup_buffer * buffer,
++ void (*routine)(void *), void * arg);
++
++ void (*ptr__pthread_cleanup_pop) (struct _pthread_cleanup_buffer * buffer,
++ int execute);
+ };
+
+ /* Variable in libc.so. */
+--- linuxthreads/sysdeps/pthread/bits/libc-lock.h 8 Aug 2003 07:40:17 -0000 1.31
++++ linuxthreads/sysdeps/pthread/bits/libc-lock.h 18 Sep 2003 23:36:33 -0000
+@@ -265,18 +265,12 @@
+ }
+
+ #define __libc_cleanup_push(fct, arg) \
+- { struct _pthread_cleanup_buffer _buffer; \
+- int _avail = _pthread_cleanup_push != NULL; \
+- if (_avail) { \
+- _pthread_cleanup_push (&_buffer, (fct), (arg)); \
+- }
++ { struct _pthread_cleanup_buffer _buffer; \
++ __libc_maybe_call (_pthread_cleanup_push, (&_buffer, (fct), (arg)), 0)
+
+ #define __libc_cleanup_pop(execute) \
+- if (_avail) { \
+- _pthread_cleanup_pop (&_buffer, execute); \
+- } \
+- }
+-
++ __libc_maybe_call (_pthread_cleanup_pop, (&_buffer, execute), 0); \
++ }
+
+ /* Create thread-specific key. */
+ #define __libc_key_create(KEY, DESTRUCTOR) \