mirror of
https://sourceware.org/git/glibc.git
synced 2024-11-22 04:50:07 +00:00
htl: Fix registration of atfork handlers in modules
We really need modules to use their own pthread_atfork so that __dso_handle properly identifies them. * sysdeps/htl/pt-atfork.c (__pthread_atfork): Hide function. (pthread_atfork): Hide alias. * sysdeps/htl/old_pt-atfork.c (pthread_atfork): Rename macro to __pthread_atfork to fix building the compatibility alias.
This commit is contained in:
parent
af27fabe40
commit
15e995a8fb
@ -19,8 +19,8 @@
|
||||
#include <shlib-compat.h>
|
||||
|
||||
#if SHLIB_COMPAT(libpthread, GLIBC_2_12, GLIBC_2_23)
|
||||
# define pthread_atfork __dyn_pthread_atfork
|
||||
# define __pthread_atfork __dyn_pthread_atfork
|
||||
# include "pt-atfork.c"
|
||||
# undef pthread_atfork
|
||||
# undef __pthread_atfork
|
||||
compat_symbol (libpthread, __dyn_pthread_atfork, pthread_atfork, GLIBC_2_12);
|
||||
#endif
|
||||
|
@ -21,11 +21,21 @@
|
||||
#include <fork.h>
|
||||
#include <dso_handle.h>
|
||||
|
||||
/* Hide the symbol so that no definition but the one locally in the
|
||||
executable or DSO is used. */
|
||||
int
|
||||
#ifndef __pthread_atfork
|
||||
/* Don't mark the compatibility function as hidden. */
|
||||
attribute_hidden
|
||||
#endif
|
||||
__pthread_atfork (void (*prepare) (void),
|
||||
void (*parent) (void),
|
||||
void (*child) (void))
|
||||
{
|
||||
return __register_atfork (prepare, parent, child, __dso_handle);
|
||||
}
|
||||
#ifndef __pthread_atfork
|
||||
extern int pthread_atfork (void (*prepare) (void), void (*parent) (void),
|
||||
void (*child) (void)) attribute_hidden;
|
||||
weak_alias (__pthread_atfork, pthread_atfork)
|
||||
#endif
|
||||
|
Loading…
Reference in New Issue
Block a user