Browse Source

cleanup and fix static linking issues

There was a deadlock hanging in a sycall to futex,
which should be solved now.

Signed-off-by: Waldemar Brodkorb <wbx@uclibc-ng.org>
Waldemar Brodkorb 7 years ago
parent
commit
a3e5bfd207

+ 0 - 1
libpthread/nptl/sysdeps/pthread/Makefile.in

@@ -32,7 +32,6 @@ libpthread_pthread_CSRC = \
 	pthread_spin_destroy.c \
 	pthread_spin_init.c \
 	pthread_spin_unlock.c \
-	pt-longjmp.c \
 	pt-sigaction.c \
 	tpp.c
 

+ 0 - 30
libpthread/nptl/sysdeps/pthread/pt-longjmp.c

@@ -1,30 +0,0 @@
-/* Copyright (C) 2002, 2003 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Ulrich Drepper <drepper@redhat.com>, 2002.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <setjmp.h>
-#include <stdlib.h>
-#include "pthreadP.h"
-
-extern __typeof(longjmp) __libc_longjmp attribute_noreturn;
-
-void
-longjmp (jmp_buf env, int val)
-{
-  __libc_longjmp (env, val);
-}
-weak_alias (longjmp, siglongjmp)

+ 1 - 1
libpthread/nptl/sysdeps/unix/sysv/linux/Makefile.commonarch

@@ -69,7 +69,7 @@ libpthread_linux_SSRC := #ptw-close.S ptw-open.S ptw-waitid.S ptw-waidpid.S ptw-
 
 libc_linux_CSRC += libc_pthread_init.c libc_multiple_threads.c		\
 	register-atfork.c unregister-atfork.c getpid.c		\
-	raise.c jmp-unwind.c libc-lowlevellock.c
+	raise.c jmp-unwind.c
 
 librt_linux_CSRC += mq_notify.c timer_create.c timer_delete.c		\
 	timer_getoverr.c timer_gettime.c timer_routines.c		\

+ 1 - 0
libpthread/nptl/sysdeps/unix/sysv/linux/jmp-unwind.c

@@ -27,6 +27,7 @@ extern void __pthread_cleanup_upto (__jmp_buf env, char *targetframe);
 void
 _longjmp_unwind (jmp_buf env, int val)
 {
+  if (__pthread_cleanup_upto != NULL)
     __pthread_cleanup_upto (env->__jmpbuf, CURRENT_STACK_FRAME);
 }
 libc_hidden_def(_longjmp_unwind)

+ 0 - 20
libpthread/nptl/sysdeps/unix/sysv/linux/libc-lowlevellock.c

@@ -1,20 +0,0 @@
-/* Copyright (C) 2003 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Paul Mackerras <paulus@au.ibm.com>, 2003.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.	 See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-/* No difference to lowlevellock.c, except we lose a couple of functions.  */
-#include "lowlevellock.c"

+ 0 - 3
libpthread/nptl/sysdeps/unix/sysv/linux/lowlevellock.c

@@ -24,9 +24,6 @@
 #include <tls.h>
 
 void
-#ifndef IS_IN_libpthread
-weak_function
-#endif
 __lll_lock_wait_private (int *futex)
 {
   if (*futex == 2)