From 1d95b035c721908d3bcbbca9e8d3a5e55a24c09e Mon Sep 17 00:00:00 2001 From: Florian Weimer Date: Wed, 21 Apr 2021 19:49:50 +0200 Subject: nptl: Move __pthread_unwind_next into libc It's necessary to stub out __libc_disable_asynccancel and __libc_enable_asynccancel via rtld-stubbed-symbols because the new direct references to the unwinder result in symbol conflicts when the rtld exception handling from libc is linked in during the construction of librtld.map. unwind-forcedunwind.c is merged into unwind-resume.c. libc now needs the functions that were previously only used in libpthread. The GLIBC_PRIVATE exports of __libc_longjmp and __libc_siglongjmp are no longer needed, so switch them to hidden symbols. The symbol __pthread_unwind_next has been moved using scripts/move-symbol-to-libc.py. Reviewed-by: Adhemerva Zanella --- sysdeps/unix/sysv/linux/ia64/Makefile | 2 +- sysdeps/unix/sysv/linux/ia64/libc.abilist | 2 ++ sysdeps/unix/sysv/linux/ia64/libpthread.abilist | 1 - sysdeps/unix/sysv/linux/ia64/unwind-forcedunwind.c | 26 ---------------------- 4 files changed, 3 insertions(+), 28 deletions(-) delete mode 100644 sysdeps/unix/sysv/linux/ia64/unwind-forcedunwind.c (limited to 'sysdeps/unix/sysv/linux/ia64') diff --git a/sysdeps/unix/sysv/linux/ia64/Makefile b/sysdeps/unix/sysv/linux/ia64/Makefile index 97fc7df0b1..f6a08d15d0 100644 --- a/sysdeps/unix/sysv/linux/ia64/Makefile +++ b/sysdeps/unix/sysv/linux/ia64/Makefile @@ -23,7 +23,7 @@ librt-shared-only-routines += rt-sysdep endif ifeq ($(subdir),nptl) -libpthread-sysdep_routines += __ia64_longjmp unwind_longjmp __sigstack_longjmp +sysdep_routines += __ia64_longjmp unwind_longjmp __sigstack_longjmp endif ifeq ($(subdir),conform) diff --git a/sysdeps/unix/sysv/linux/ia64/libc.abilist b/sysdeps/unix/sysv/linux/ia64/libc.abilist index d992dfcb8e..03bdbc994f 100644 --- a/sysdeps/unix/sysv/linux/ia64/libc.abilist +++ b/sysdeps/unix/sysv/linux/ia64/libc.abilist @@ -2037,6 +2037,7 @@ GLIBC_2.3.2 pthread_cond_timedwait F GLIBC_2.3.2 pthread_cond_wait F GLIBC_2.3.2 strptime_l F GLIBC_2.3.3 __pthread_cleanup_routine F +GLIBC_2.3.3 __pthread_unwind_next F GLIBC_2.3.3 _sys_siglist D 0x208 GLIBC_2.3.3 gnu_dev_major F GLIBC_2.3.3 gnu_dev_makedev F @@ -2120,6 +2121,7 @@ GLIBC_2.34 __isnanf128 F GLIBC_2.34 __libc_start_main F GLIBC_2.34 __pthread_cleanup_routine F GLIBC_2.34 __pthread_once F +GLIBC_2.34 __pthread_unwind_next F GLIBC_2.34 pthread_kill F GLIBC_2.34 pthread_mutex_consistent F GLIBC_2.34 pthread_once F diff --git a/sysdeps/unix/sysv/linux/ia64/libpthread.abilist b/sysdeps/unix/sysv/linux/ia64/libpthread.abilist index c5471a5aaf..998e8f7c0c 100644 --- a/sysdeps/unix/sysv/linux/ia64/libpthread.abilist +++ b/sysdeps/unix/sysv/linux/ia64/libpthread.abilist @@ -145,7 +145,6 @@ GLIBC_2.3.3 __pthread_register_cancel F GLIBC_2.3.3 __pthread_register_cancel_defer F GLIBC_2.3.3 __pthread_unregister_cancel F GLIBC_2.3.3 __pthread_unregister_cancel_restore F -GLIBC_2.3.3 __pthread_unwind_next F GLIBC_2.3.3 pthread_attr_getaffinity_np F GLIBC_2.3.3 pthread_attr_setstack F GLIBC_2.3.3 pthread_attr_setstacksize F diff --git a/sysdeps/unix/sysv/linux/ia64/unwind-forcedunwind.c b/sysdeps/unix/sysv/linux/ia64/unwind-forcedunwind.c deleted file mode 100644 index eaed6cf2ef..0000000000 --- a/sysdeps/unix/sysv/linux/ia64/unwind-forcedunwind.c +++ /dev/null @@ -1,26 +0,0 @@ -/* Copyright (C) 2003-2021 Free Software Foundation, Inc. - This file is part of the GNU C Library. - Contributed by Jakub Jelinek . - - 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 - . */ - -#include - -_Unwind_Word -_Unwind_GetBSP (struct _Unwind_Context *context) -{ - return UNWIND_LINK_PTR (__pthread_unwind_link_get (), _Unwind_GetBSP) - (context); -} -- cgit v1.2.3-70-g09d2