1
0
mirror of https://sourceware.org/git/glibc.git synced 2025-07-30 22:43:12 +03:00
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> 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

View File

@ -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;

View File

@ -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

View File

@ -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