mirror of
https://sourceware.org/git/glibc.git
synced 2025-07-30 22:43:12 +03:00
Update.
2003-12-11 Ulrich Drepper <drepper@redhat.com> * sysdeps/unix/sysv/linux/kernel-features.h: Remove __ASSUME_VSYSCALL. There might always be processes which have no vDSO. * sysdeps/generic/dl-sysdep.c: Remove __ASSUME_VSYSCALL uses. * sysdeps/unix/sysv/linux/i386/sigaction.c: Likewise.
This commit is contained in:
@ -1,3 +1,10 @@
|
|||||||
|
2003-12-11 Ulrich Drepper <drepper@redhat.com>
|
||||||
|
|
||||||
|
* sysdeps/unix/sysv/linux/kernel-features.h: Remove __ASSUME_VSYSCALL.
|
||||||
|
There might always be processes which have no vDSO.
|
||||||
|
* sysdeps/generic/dl-sysdep.c: Remove __ASSUME_VSYSCALL uses.
|
||||||
|
* sysdeps/unix/sysv/linux/i386/sigaction.c: Likewise.
|
||||||
|
|
||||||
2003-12-11 Carlos O'Donell <carlos@baldric.uwo.ca>
|
2003-12-11 Carlos O'Donell <carlos@baldric.uwo.ca>
|
||||||
|
|
||||||
* sysdeps/generic/dl-fptr.c (COMPARE_AND_SWAP): Pass new and old
|
* sysdeps/generic/dl-fptr.c (COMPARE_AND_SWAP): Pass new and old
|
||||||
|
@ -97,7 +97,7 @@ _dl_sysdep_start (void **start_argptr,
|
|||||||
# define set_seen(tag) seen |= M ((tag)->a_type)
|
# define set_seen(tag) seen |= M ((tag)->a_type)
|
||||||
# endif
|
# endif
|
||||||
#endif
|
#endif
|
||||||
#if defined NEED_DL_SYSINFO && !defined __ASSUME_VSYSCALL
|
#ifdef NEED_DL_SYSINFO
|
||||||
ElfW(Word) new_sysinfo = 0;
|
ElfW(Word) new_sysinfo = 0;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
@ -158,11 +158,7 @@ _dl_sysdep_start (void **start_argptr,
|
|||||||
break;
|
break;
|
||||||
#ifdef NEED_DL_SYSINFO
|
#ifdef NEED_DL_SYSINFO
|
||||||
case AT_SYSINFO:
|
case AT_SYSINFO:
|
||||||
# ifndef __ASSUME_VSYSCALL
|
|
||||||
new_sysinfo = av->a_un.a_val;
|
new_sysinfo = av->a_un.a_val;
|
||||||
# else
|
|
||||||
GL(dl_sysinfo) = av->a_un.a_val;
|
|
||||||
# endif
|
|
||||||
break;
|
break;
|
||||||
case AT_SYSINFO_EHDR:
|
case AT_SYSINFO_EHDR:
|
||||||
GL(dl_sysinfo_dso) = av->a_un.a_ptr;
|
GL(dl_sysinfo_dso) = av->a_un.a_ptr;
|
||||||
@ -202,7 +198,7 @@ _dl_sysdep_start (void **start_argptr,
|
|||||||
GL(dl_pagesize) = __getpagesize ();
|
GL(dl_pagesize) = __getpagesize ();
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if defined NEED_DL_SYSINFO && !defined __ASSUME_VSYSCALL
|
#if defined NEED_DL_SYSINFO
|
||||||
/* Only set the sysinfo value if we also have the vsyscall DSO. */
|
/* Only set the sysinfo value if we also have the vsyscall DSO. */
|
||||||
if (GL(dl_sysinfo_dso) != 0)
|
if (GL(dl_sysinfo_dso) != 0)
|
||||||
GL(dl_sysinfo) = new_sysinfo;
|
GL(dl_sysinfo) = new_sysinfo;
|
||||||
|
@ -25,6 +25,7 @@
|
|||||||
|
|
||||||
#include <sysdep.h>
|
#include <sysdep.h>
|
||||||
#include <sys/syscall.h>
|
#include <sys/syscall.h>
|
||||||
|
#include <ldsodefs.h>
|
||||||
|
|
||||||
#include <kernel-features.h>
|
#include <kernel-features.h>
|
||||||
|
|
||||||
@ -84,16 +85,16 @@ __libc_sigaction (int sig, const struct sigaction *act, struct sigaction *oact)
|
|||||||
if (act)
|
if (act)
|
||||||
{
|
{
|
||||||
kact.k_sa_handler = act->sa_handler;
|
kact.k_sa_handler = act->sa_handler;
|
||||||
|
kact.sa_flags = act->sa_flags;
|
||||||
memcpy (&kact.sa_mask, &act->sa_mask, sizeof (sigset_t));
|
memcpy (&kact.sa_mask, &act->sa_mask, sizeof (sigset_t));
|
||||||
|
|
||||||
# if __ASSUME_VSYSCALL == 0
|
if (GL(dl_sysinfo_dso) == NULL)
|
||||||
kact.sa_flags = act->sa_flags | SA_RESTORER;
|
{
|
||||||
|
kact.sa_flags |= SA_RESTORER;
|
||||||
|
|
||||||
kact.sa_restorer = ((act->sa_flags & SA_SIGINFO)
|
kact.sa_restorer = ((act->sa_flags & SA_SIGINFO)
|
||||||
? &restore_rt : &restore);
|
? &restore_rt : &restore);
|
||||||
# else
|
}
|
||||||
kact.sa_flags = act->sa_flags;
|
|
||||||
# endif
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/* XXX The size argument hopefully will have to be changed to the
|
/* XXX The size argument hopefully will have to be changed to the
|
||||||
@ -159,7 +160,6 @@ libc_hidden_weak (__sigaction)
|
|||||||
weak_alias (__libc_sigaction, sigaction)
|
weak_alias (__libc_sigaction, sigaction)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if __ASSUME_VSYSCALL == 0
|
|
||||||
/* NOTE: Please think twice before making any changes to the bits of
|
/* NOTE: Please think twice before making any changes to the bits of
|
||||||
code below. GDB needs some intimate knowledge about it to
|
code below. GDB needs some intimate knowledge about it to
|
||||||
recognize them as signal trampolines, and make backtraces through
|
recognize them as signal trampolines, and make backtraces through
|
||||||
@ -168,8 +168,8 @@ weak_alias (__libc_sigaction, sigaction)
|
|||||||
If you ever feel the need to make any changes, please notify the
|
If you ever feel the need to make any changes, please notify the
|
||||||
appropriate GDB maintainer. */
|
appropriate GDB maintainer. */
|
||||||
|
|
||||||
# define RESTORE(name, syscall) RESTORE2 (name, syscall)
|
#define RESTORE(name, syscall) RESTORE2 (name, syscall)
|
||||||
# define RESTORE2(name, syscall) \
|
#define RESTORE2(name, syscall) \
|
||||||
asm \
|
asm \
|
||||||
( \
|
( \
|
||||||
".text\n" \
|
".text\n" \
|
||||||
@ -179,14 +179,14 @@ asm \
|
|||||||
" int $0x80" \
|
" int $0x80" \
|
||||||
);
|
);
|
||||||
|
|
||||||
# ifdef __NR_rt_sigaction
|
#ifdef __NR_rt_sigaction
|
||||||
/* The return code for realtime-signals. */
|
/* The return code for realtime-signals. */
|
||||||
RESTORE (restore_rt, __NR_rt_sigreturn)
|
RESTORE (restore_rt, __NR_rt_sigreturn)
|
||||||
# endif
|
#endif
|
||||||
|
|
||||||
/* For the boring old signals. */
|
/* For the boring old signals. */
|
||||||
# undef RESTORE2
|
#undef RESTORE2
|
||||||
# define RESTORE2(name, syscall) \
|
#define RESTORE2(name, syscall) \
|
||||||
asm \
|
asm \
|
||||||
( \
|
( \
|
||||||
".text\n" \
|
".text\n" \
|
||||||
@ -198,4 +198,3 @@ asm \
|
|||||||
);
|
);
|
||||||
|
|
||||||
RESTORE (restore, __NR_sigreturn)
|
RESTORE (restore, __NR_sigreturn)
|
||||||
#endif
|
|
||||||
|
@ -320,12 +320,6 @@
|
|||||||
# define __ASSUME_NETLINK_SUPPORT 1
|
# define __ASSUME_NETLINK_SUPPORT 1
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/* For x86, support for the sysenter instruction was available in
|
|
||||||
2.5.53. But the unwind information was added only in 2.5.69. */
|
|
||||||
#if __LINUX_KERNEL_VERSION >= 132421 && defined __i386__
|
|
||||||
# define __ASSUME_VSYSCALL 1
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/* The requeue futex functionality was introduced in 2.5.70. */
|
/* The requeue futex functionality was introduced in 2.5.70. */
|
||||||
#if __LINUX_KERNEL_VERSION >= 132422
|
#if __LINUX_KERNEL_VERSION >= 132422
|
||||||
# define __ASSUME_FUTEX_REQUEUE 1
|
# define __ASSUME_FUTEX_REQUEUE 1
|
||||||
|
Reference in New Issue
Block a user