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:
Ulrich Drepper 2003-12-12 04:32:41 +00:00
parent 1ce9631b86
commit 8e4f5035e3
4 changed files with 23 additions and 27 deletions

View File

@ -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>
* sysdeps/generic/dl-fptr.c (COMPARE_AND_SWAP): Pass new and old

View File

@ -97,7 +97,7 @@ _dl_sysdep_start (void **start_argptr,
# define set_seen(tag) seen |= M ((tag)->a_type)
# endif
#endif
#if defined NEED_DL_SYSINFO && !defined __ASSUME_VSYSCALL
#ifdef NEED_DL_SYSINFO
ElfW(Word) new_sysinfo = 0;
#endif
@ -158,11 +158,7 @@ _dl_sysdep_start (void **start_argptr,
break;
#ifdef NEED_DL_SYSINFO
case AT_SYSINFO:
# ifndef __ASSUME_VSYSCALL
new_sysinfo = av->a_un.a_val;
# else
GL(dl_sysinfo) = av->a_un.a_val;
# endif
break;
case AT_SYSINFO_EHDR:
GL(dl_sysinfo_dso) = av->a_un.a_ptr;
@ -202,7 +198,7 @@ _dl_sysdep_start (void **start_argptr,
GL(dl_pagesize) = __getpagesize ();
#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. */
if (GL(dl_sysinfo_dso) != 0)
GL(dl_sysinfo) = new_sysinfo;

View File

@ -25,6 +25,7 @@
#include <sysdep.h>
#include <sys/syscall.h>
#include <ldsodefs.h>
#include <kernel-features.h>
@ -84,16 +85,16 @@ __libc_sigaction (int sig, const struct sigaction *act, struct sigaction *oact)
if (act)
{
kact.k_sa_handler = act->sa_handler;
kact.sa_flags = act->sa_flags;
memcpy (&kact.sa_mask, &act->sa_mask, sizeof (sigset_t));
# if __ASSUME_VSYSCALL == 0
kact.sa_flags = act->sa_flags | SA_RESTORER;
if (GL(dl_sysinfo_dso) == NULL)
{
kact.sa_flags |= SA_RESTORER;
kact.sa_restorer = ((act->sa_flags & SA_SIGINFO)
? &restore_rt : &restore);
# else
kact.sa_flags = act->sa_flags;
# endif
kact.sa_restorer = ((act->sa_flags & SA_SIGINFO)
? &restore_rt : &restore);
}
}
/* 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)
#endif
#if __ASSUME_VSYSCALL == 0
/* NOTE: Please think twice before making any changes to the bits of
code below. GDB needs some intimate knowledge about it to
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
appropriate GDB maintainer. */
# define RESTORE(name, syscall) RESTORE2 (name, syscall)
# define RESTORE2(name, syscall) \
#define RESTORE(name, syscall) RESTORE2 (name, syscall)
#define RESTORE2(name, syscall) \
asm \
( \
".text\n" \
@ -179,14 +179,14 @@ asm \
" int $0x80" \
);
# ifdef __NR_rt_sigaction
#ifdef __NR_rt_sigaction
/* The return code for realtime-signals. */
RESTORE (restore_rt, __NR_rt_sigreturn)
# endif
#endif
/* For the boring old signals. */
# undef RESTORE2
# define RESTORE2(name, syscall) \
#undef RESTORE2
#define RESTORE2(name, syscall) \
asm \
( \
".text\n" \
@ -198,4 +198,3 @@ asm \
);
RESTORE (restore, __NR_sigreturn)
#endif

View File

@ -320,12 +320,6 @@
# define __ASSUME_NETLINK_SUPPORT 1
#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. */
#if __LINUX_KERNEL_VERSION >= 132422
# define __ASSUME_FUTEX_REQUEUE 1