mirror of
https://sourceware.org/git/glibc.git
synced 2025-12-24 17:51:17 +03:00
Update.
* elf/dl-version.c (_dl_check_map_versions): New argument trace_mode. Before testing versions check that we actually loaded the object and whether we are in trace mode. If not loaded during tracing don't test versions in this object. (_dl_check_all_versions): Take new parameter and pass to _dl_check_map_versions. * sysdeps/generic/ldsodefs.h: Update prototypes for _dl_check_all_versions and _dl_check_map_versions. * elf/rtld.c (struct version_check_args): Add dotrace. (version_check_doit): Pass args->dotrace to _dl_check_all_versions. (dl_main): Pass info about trace mode to version_check_doit. * elf/dl-open.c (dl_open_worker): Pass zero as new argument to _dl_check_all_versions. * manual/users.texi (XPG Functions): Document utmpxname, getutmp, and getutmpx. Patch by Bryan Henderson <bryanh@giraffe-data.com>.
This commit is contained in:
@@ -369,10 +369,12 @@ static void pthread_initialize(void)
|
||||
#ifndef __i386__
|
||||
sa.sa_handler = pthread_handle_sigrestart;
|
||||
#else
|
||||
if (__pthread_sig_restart >= SIGRTMIN)
|
||||
sa.sa_handler = (__sighandler_t) pthread_handle_sigrestart_rt;
|
||||
else
|
||||
# if !__ASSUME_REALTIME_SIGNALS
|
||||
if (__pthread_sig_restart < SIGRTMIN)
|
||||
sa.sa_handler = (__sighandler_t) pthread_handle_sigrestart_nonrt;
|
||||
else
|
||||
# endif
|
||||
sa.sa_handler = (__sighandler_t) pthread_handle_sigrestart_rt;
|
||||
#endif
|
||||
sigemptyset(&sa.sa_mask);
|
||||
sa.sa_flags = 0;
|
||||
@@ -380,10 +382,12 @@ static void pthread_initialize(void)
|
||||
#ifndef __i386__
|
||||
sa.sa_handler = pthread_handle_sigcancel;
|
||||
#else
|
||||
if (__pthread_sig_restart >= SIGRTMIN)
|
||||
sa.sa_handler = (__sighandler_t) pthread_handle_sigcancel_rt;
|
||||
else
|
||||
# if !__ASSUME_REALTIME_SIGNALS
|
||||
if (__pthread_sig_restart < SIGRTMIN)
|
||||
sa.sa_handler = (__sighandler_t) pthread_handle_sigcancel_nonrt;
|
||||
else
|
||||
# endif
|
||||
sa.sa_handler = (__sighandler_t) pthread_handle_sigcancel_rt;
|
||||
#endif
|
||||
sa.sa_flags = 0;
|
||||
__sigaction(__pthread_sig_cancel, &sa, NULL);
|
||||
@@ -664,11 +668,13 @@ static void pthread_handle_sigrestart(int sig)
|
||||
}
|
||||
|
||||
#ifdef __i386__
|
||||
# if !__ASSUME_REALTIME_SIGNALS
|
||||
static void pthread_handle_sigrestart_nonrt(int sig, struct sigcontext ctx)
|
||||
{
|
||||
asm volatile ("movw %w0,%%gs" : : "r" (ctx.gs));
|
||||
pthread_handle_sigrestart(sig);
|
||||
}
|
||||
# endif
|
||||
|
||||
static void pthread_handle_sigrestart_rt(int sig, struct siginfo *si,
|
||||
struct ucontext *uc)
|
||||
@@ -713,11 +719,13 @@ static void pthread_handle_sigcancel(int sig)
|
||||
}
|
||||
|
||||
#ifdef __i386__
|
||||
# if !__ASSUME_REALTIME_SIGNALS
|
||||
static void pthread_handle_sigcancel_nonrt(int sig, struct sigcontext ctx)
|
||||
{
|
||||
asm volatile ("movw %w0,%%gs" : : "r" (ctx.gs));
|
||||
pthread_handle_sigcancel(sig);
|
||||
}
|
||||
# endif
|
||||
|
||||
static void pthread_handle_sigcancel_rt(int sig, struct siginfo *si,
|
||||
struct ucontext *uc)
|
||||
|
||||
Reference in New Issue
Block a user