aboutsummaryrefslogtreecommitdiff
path: root/lib/libthr
diff options
context:
space:
mode:
authorKonstantin Belousov <kib@FreeBSD.org>2019-07-31 20:04:39 +0000
committerKonstantin Belousov <kib@FreeBSD.org>2019-07-31 20:04:39 +0000
commit3638455c92650b92741626ba50960567e02a763f (patch)
treeaccec7541de7195bc57a7e80ad2bb1013eacf4d1 /lib/libthr
parented2393eacf0ac2b7d7a324104b8833c0b9f3eea0 (diff)
downloadsrc-3638455c92650b92741626ba50960567e02a763f.tar.gz
src-3638455c92650b92741626ba50960567e02a763f.zip
Avoid conflicts with libc symbols in libthr jump table.
In some corner cases of static linking and unexpected libraries order on the linker command line, libc symbol might preempt the same libthr symbol, in which case libthr jump table points back to libc causing either infinite recursion or loop. Handle all of such symbols by using private libthr names for them, ensuring that the right pointers are installed into the table. In collaboration with: arichardson PR: 239475 Tested by: pho MFC after: 2 weeks Sponsored by: The FreeBSD Foundation Differential revision: https://reviews.freebsd.org/D21088
Notes
Notes: svn path=/head/; revision=350483
Diffstat (limited to 'lib/libthr')
-rw-r--r--lib/libthr/thread/thr_private.h2
1 files changed, 0 insertions, 2 deletions
diff --git a/lib/libthr/thread/thr_private.h b/lib/libthr/thread/thr_private.h
index 03985721384b..5bbe05a6a4e9 100644
--- a/lib/libthr/thread/thr_private.h
+++ b/lib/libthr/thread/thr_private.h
@@ -1021,8 +1021,6 @@ void __thr_cleanup_push_imp(void (*)(void *), void *,
void __thr_cleanup_pop_imp(int);
void _thr_cleanup_push(void (*)(void *), void *);
void _thr_cleanup_pop(int);
-void _thr_cancel_enter(struct pthread *);
-void _thr_cancel_leave(struct pthread *, int);
void _Tthr_testcancel(void);
int _thr_cancel(pthread_t);
int _thr_atfork(void (*)(void), void (*)(void), void (*)(void));