mirror of
https://sourceware.org/git/glibc.git
synced 2025-07-29 11:41:21 +03:00
Update.
* sysdeps/generic/dl-sysdep.c (_dl_sysdep_start): Don't set GL(dl_sysinfo) unles GL(dl_sysinfo_dso) is also set. * sysdeps/unix/sysv/linux/kernel-features.h: Define __ASSUME_VSYSCALL only for 2.5.69 and up since this is when the vsyscall DSO was added.
This commit is contained in:
@ -1,5 +1,11 @@
|
|||||||
2003-07-02 Ulrich Drepper <drepper@redhat.com>
|
2003-07-02 Ulrich Drepper <drepper@redhat.com>
|
||||||
|
|
||||||
|
* sysdeps/generic/dl-sysdep.c (_dl_sysdep_start): Don't set
|
||||||
|
GL(dl_sysinfo) unles GL(dl_sysinfo_dso) is also set.
|
||||||
|
* sysdeps/unix/sysv/linux/kernel-features.h: Define
|
||||||
|
__ASSUME_VSYSCALL only for 2.5.69 and up since this is when the
|
||||||
|
vsyscall DSO was added.
|
||||||
|
|
||||||
* posix/bits/posix1_lim.h (_POSIX_NGROUPS_MAX): Define to 8 or 0
|
* posix/bits/posix1_lim.h (_POSIX_NGROUPS_MAX): Define to 8 or 0
|
||||||
depending on selected standard.
|
depending on selected standard.
|
||||||
(NGROUPS_MAX): Define to 8 if not defined.
|
(NGROUPS_MAX): Define to 8 if not defined.
|
||||||
|
@ -92,6 +92,9 @@ _dl_sysdep_start (void **start_argptr,
|
|||||||
# define M(type) (1 << (type))
|
# define M(type) (1 << (type))
|
||||||
# define set_seen(tag) seen |= M ((tag)->a_type)
|
# define set_seen(tag) seen |= M ((tag)->a_type)
|
||||||
# endif
|
# endif
|
||||||
|
#endif
|
||||||
|
#ifndef __ASSUME_VSYSCALL
|
||||||
|
ElfW(Word) new_sysinfo = 0;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
DL_FIND_ARG_COMPONENTS (start_argptr, _dl_argc, INTUSE(_dl_argv), _environ,
|
DL_FIND_ARG_COMPONENTS (start_argptr, _dl_argc, INTUSE(_dl_argv), _environ,
|
||||||
@ -146,7 +149,11 @@ _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;
|
||||||
|
# else
|
||||||
GL(dl_sysinfo) = av->a_un.a_val;
|
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;
|
||||||
@ -167,7 +174,7 @@ _dl_sysdep_start (void **start_argptr,
|
|||||||
/* Fill in the values we have not gotten from the kernel through the
|
/* Fill in the values we have not gotten from the kernel through the
|
||||||
auxiliary vector. */
|
auxiliary vector. */
|
||||||
# ifndef HAVE_AUX_XID
|
# ifndef HAVE_AUX_XID
|
||||||
# define SEE(UID, var, uid) \
|
# define SEE(UID, var, uid) \
|
||||||
if ((seen & M (AT_##UID)) == 0) var ^= __get##uid ()
|
if ((seen & M (AT_##UID)) == 0) var ^= __get##uid ()
|
||||||
SEE (UID, uid, uid);
|
SEE (UID, uid, uid);
|
||||||
SEE (EUID, uid, euid);
|
SEE (EUID, uid, euid);
|
||||||
@ -186,6 +193,12 @@ _dl_sysdep_start (void **start_argptr,
|
|||||||
GL(dl_pagesize) = __getpagesize ();
|
GL(dl_pagesize) = __getpagesize ();
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#ifndef __ASSUME_VSYSCALL
|
||||||
|
/* Only set the sysinfo value if we also have the vsyscall DSO. */
|
||||||
|
if (GL(dl_sysinfo_dso) != 0)
|
||||||
|
GL(dl_sysinfo) = new_sysinfo;
|
||||||
|
#endif
|
||||||
|
|
||||||
#ifdef DL_SYSDEP_INIT
|
#ifdef DL_SYSDEP_INIT
|
||||||
DL_SYSDEP_INIT;
|
DL_SYSDEP_INIT;
|
||||||
#endif
|
#endif
|
||||||
|
@ -307,8 +307,8 @@
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
/* For x86, support for the sysenter instruction was available in
|
/* For x86, support for the sysenter instruction was available in
|
||||||
2.5.53. */
|
2.5.53. But the unwind information was added only in 2.5.69. */
|
||||||
#if __LINUX_KERNEL_VERSION >= 132405 && defined __i386__
|
#if __LINUX_KERNEL_VERSION >= 132421 && defined __i386__
|
||||||
# define __ASSUME_VSYSCALL 1
|
# define __ASSUME_VSYSCALL 1
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user