diff options
Diffstat (limited to 'sysdeps')
71 files changed, 86 insertions, 162 deletions
diff --git a/sysdeps/arm/Makefile b/sysdeps/arm/Makefile index ad2042b93a..fb4164f0d9 100644 --- a/sysdeps/arm/Makefile +++ b/sysdeps/arm/Makefile @@ -63,8 +63,3 @@ ifeq ($(subdir),rt) librt-sysdep_routines += rt-aeabi_unwind_cpp_pr1 rt-arm-unwind-resume librt-shared-only-routines += rt-aeabi_unwind_cpp_pr1 rt-arm-unwind-resume endif - -ifeq ($(subdir),nptl) -libpthread-sysdep_routines += pt-arm-unwind-resume -libpthread-shared-only-routines += pt-arm-unwind-resume -endif diff --git a/sysdeps/arm/nptl/unwind-forcedunwind.c b/sysdeps/arm/nptl/unwind-forcedunwind.c deleted file mode 100644 index 61db34c0b5..0000000000 --- a/sysdeps/arm/nptl/unwind-forcedunwind.c +++ /dev/null @@ -1,25 +0,0 @@ -/* Unwinder function forwarders for libpthread. Arm version. - Copyright (C) 2021 Free Software Foundation, Inc. - This file is part of the GNU C Library. - - 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; see the file COPYING.LIB. If - not, see <https://www.gnu.org/licenses/>. */ - -#include <sysdeps/nptl/unwind-forcedunwind.c> - -void * -__unwind_link_get_resume (void) -{ - return UNWIND_LINK_PTR (__pthread_unwind_link_get (), _Unwind_Resume); -} diff --git a/sysdeps/arm/pt-arm-unwind-resume.S b/sysdeps/arm/pt-arm-unwind-resume.S deleted file mode 100644 index c056eb38d0..0000000000 --- a/sysdeps/arm/pt-arm-unwind-resume.S +++ /dev/null @@ -1,20 +0,0 @@ -/* _Unwind_Resume wrapper for ARM EABI. - Copyright (C) 2015-2021 Free Software Foundation, Inc. - This file is part of the GNU C Library. - - 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 - <https://www.gnu.org/licenses/>. */ - -/* The implementation in libpthread is identical to the one in libc. */ -#include <sysdeps/arm/arm-unwind-resume.S> diff --git a/sysdeps/generic/unwind-resume.c b/sysdeps/generic/unwind-resume.c index 9e63762bf1..66dbb67e81 100644 --- a/sysdeps/generic/unwind-resume.c +++ b/sysdeps/generic/unwind-resume.c @@ -44,3 +44,17 @@ __gcc_personality_v0 PERSONALITY_PROTO { return UNWIND_LINK_PTR (link (), personality) PERSONALITY_ARGS; } + +_Unwind_Reason_Code +_Unwind_ForcedUnwind (struct _Unwind_Exception *exc, _Unwind_Stop_Fn stop, + void *stop_argument) +{ + return UNWIND_LINK_PTR (link (), _Unwind_ForcedUnwind) + (exc, stop, stop_argument); +} + +_Unwind_Word +_Unwind_GetCFA (struct _Unwind_Context *context) +{ + return UNWIND_LINK_PTR (link (), _Unwind_GetCFA) (context); +} diff --git a/sysdeps/unix/sysv/linux/ia64/unwind-forcedunwind.c b/sysdeps/ia64/unwind-resume.c index eaed6cf2ef..f8cf447162 100644 --- a/sysdeps/unix/sysv/linux/ia64/unwind-forcedunwind.c +++ b/sysdeps/ia64/unwind-resume.c @@ -16,11 +16,10 @@ License along with the GNU C Library; if not, see <https://www.gnu.org/licenses/>. */ -#include <sysdeps/nptl/unwind-forcedunwind.c> +#include <sysdeps/generic/unwind-resume.c> _Unwind_Word _Unwind_GetBSP (struct _Unwind_Context *context) { - return UNWIND_LINK_PTR (__pthread_unwind_link_get (), _Unwind_GetBSP) - (context); + return UNWIND_LINK_PTR (link (), _Unwind_GetBSP) (context); } diff --git a/sysdeps/nptl/pthread-functions.h b/sysdeps/nptl/pthread-functions.h index 6ef7602cb9..280655fe40 100644 --- a/sysdeps/nptl/pthread-functions.h +++ b/sysdeps/nptl/pthread-functions.h @@ -57,8 +57,6 @@ struct pthread_functions int (*ptr___pthread_setspecific) (pthread_key_t, const void *); #define HAVE_PTR_NTHREADS unsigned int *ptr_nthreads; - void (*ptr___pthread_unwind) (__pthread_unwind_buf_t *) - __attribute ((noreturn)) __cleanup_fct_attribute; void (*ptr__nptl_deallocate_tsd) (void); int (*ptr__nptl_setxid) (struct xid_command *); void (*ptr_set_robust) (struct pthread *); diff --git a/sysdeps/nptl/unwind-forcedunwind.c b/sysdeps/nptl/unwind-forcedunwind.c deleted file mode 100644 index c0234670cf..0000000000 --- a/sysdeps/nptl/unwind-forcedunwind.c +++ /dev/null @@ -1,64 +0,0 @@ -/* Copyright (C) 2003-2021 Free Softw |
