summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorWaldemar Brodkorb <wbx@openadk.org>2014-08-29 08:17:41 +0200
committerWaldemar Brodkorb <wbx@openadk.org>2014-08-29 08:17:41 +0200
commitb8b8b20263dcab19e0052469db2aa3924ea3592d (patch)
tree2a66bd7ed70acf0ccda50eaf2801f853cb1a8353
parent94d653c29957dcc7c1844deab317a6eec75138d5 (diff)
tst-once3 fix from the mailinglist
-rw-r--r--toolchain/uclibc/patches/0.9.34-git/0003-test-once3.patch32
1 files changed, 32 insertions, 0 deletions
diff --git a/toolchain/uclibc/patches/0.9.34-git/0003-test-once3.patch b/toolchain/uclibc/patches/0.9.34-git/0003-test-once3.patch
new file mode 100644
index 000000000..2e4b5cd80
--- /dev/null
+++ b/toolchain/uclibc/patches/0.9.34-git/0003-test-once3.patch
@@ -0,0 +1,32 @@
+I use uclibc in arch arm. The CFLAGS-pthread_once.c has been set
+to -DNOT_IN_libc -DIS_IN_libpthread in
+libpthread/nptl/sysdeps/unix/sysv/linux/arm/Makefile.arch.
+But it will be replaced by -fexceptions -fasynchronous-unwind-tables in
+libpthread/nptl/Makefile.in.
+
+If CFLAGS-pthread_once.c has no -DIS_IN_libpthread the testcase
+tst-once3 in test/nptl/ will be failed. The reason is pthread_once
+calls another pthread_cleanup_push() which is not under IS_IN_libpthread
+so that clear_once_control do not be called when the thread is canceled.
+So pthread_once will hang up when it's called second time.
+
+Signed-off-by: Yang Yingliang <yangyingliang@huawei.com>
+---
+ libpthread/nptl/Makefile.in | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/libpthread/nptl/Makefile.in b/libpthread/nptl/Makefile.in
+index 0008822..1b9ba8c 100644
+--- a/libpthread/nptl/Makefile.in
++++ b/libpthread/nptl/Makefile.in
+@@ -186,7 +186,7 @@ CFLAGS-forward.c = -fexceptions
+ CFLAGS-pthread_testcancel.c = -fexceptions
+ CFLAGS-pthread_join.c = -fexceptions -fasynchronous-unwind-tables
+ CFLAGS-pthread_timedjoin.c = -fexceptions -fasynchronous-unwind-tables
+-CFLAGS-pthread_once.c = $(uses-callbacks) -fexceptions \
++CFLAGS-pthread_once.c += $(uses-callbacks) -fexceptions \
+ -fasynchronous-unwind-tables
+ CFLAGS-pthread_cond_wait.c = -fexceptions -fasynchronous-unwind-tables
+ CFLAGS-pthread_cond_timedwait.c = -fexceptions -fasynchronous-unwind-tables
+--
+1.8.0