mirror of
git://sourceware.org/git/glibc.git
synced 2025-01-18 12:16:13 +08:00
* sysdeps/mach/hurd/i386/tls.h (_hurd_tls_init): Make sure high bits
of SEL are clear after copying %gs to low bits. (_hurd_tls_fork): Likewise.
This commit is contained in:
parent
3295976aff
commit
a935c3dc90
@ -1,3 +1,9 @@
|
|||||||
|
2006-03-04 Roland McGrath <roland@frob.com>
|
||||||
|
|
||||||
|
* sysdeps/mach/hurd/i386/tls.h (_hurd_tls_init): Make sure high bits
|
||||||
|
of SEL are clear after copying %gs to low bits.
|
||||||
|
(_hurd_tls_fork): Likewise.
|
||||||
|
|
||||||
2006-03-03 Roland McGrath <roland@redhat.com>
|
2006-03-03 Roland McGrath <roland@redhat.com>
|
||||||
|
|
||||||
[BZ #2414]
|
[BZ #2414]
|
||||||
|
@ -98,7 +98,7 @@ _hurd_tls_init (tcbhead_t *tcb, int secondcall)
|
|||||||
{
|
{
|
||||||
/* Fetch the selector set by the first call. */
|
/* Fetch the selector set by the first call. */
|
||||||
int sel;
|
int sel;
|
||||||
asm ("mov %%gs, %w0" : "=q" (sel));
|
asm ("mov %%gs, %w0" : "=q" (sel) : "0" (0));
|
||||||
if (__builtin_expect (sel, 0x50) & 4) /* LDT selector */
|
if (__builtin_expect (sel, 0x50) & 4) /* LDT selector */
|
||||||
{
|
{
|
||||||
error_t err = __i386_set_ldt (tcb->self, sel, &desc, 1);
|
error_t err = __i386_set_ldt (tcb->self, sel, &desc, 1);
|
||||||
@ -151,7 +151,7 @@ _hurd_tls_fork (thread_t child, struct i386_thread_state *state)
|
|||||||
{
|
{
|
||||||
/* Fetch the selector set by _hurd_tls_init. */
|
/* Fetch the selector set by _hurd_tls_init. */
|
||||||
int sel;
|
int sel;
|
||||||
asm ("mov %%gs, %w0" : "=q" (sel));
|
asm ("mov %%gs, %w0" : "=q" (sel) : "0" (0));
|
||||||
if (sel == state->ds) /* _hurd_tls_init was never called. */
|
if (sel == state->ds) /* _hurd_tls_init was never called. */
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
|
23
sysdeps/unix/sysv/linux/configure
vendored
23
sysdeps/unix/sysv/linux/configure
vendored
@ -115,10 +115,6 @@ case "$machine" in
|
|||||||
arch_minimum_kernel=2.0.10
|
arch_minimum_kernel=2.0.10
|
||||||
libc_cv_gcc_unwind_find_fde=yes
|
libc_cv_gcc_unwind_find_fde=yes
|
||||||
;;
|
;;
|
||||||
mips*)
|
|
||||||
arch_minimum_kernel=2.4.0
|
|
||||||
libc_cv_gcc_unwind_find_fde=yes
|
|
||||||
;;
|
|
||||||
powerpc/powerpc32)
|
powerpc/powerpc32)
|
||||||
libc_cv_gcc_unwind_find_fde=yes
|
libc_cv_gcc_unwind_find_fde=yes
|
||||||
arch_minimum_kernel=2.0.10
|
arch_minimum_kernel=2.0.10
|
||||||
@ -228,10 +224,12 @@ fi
|
|||||||
# in /lib and /etc.
|
# in /lib and /etc.
|
||||||
case "$prefix" in
|
case "$prefix" in
|
||||||
/usr | /usr/)
|
/usr | /usr/)
|
||||||
# 64-bit libraries on bi-arch platforms go in /lib64 instead of /lib
|
# 64-bit libraries on bi-arch platforms go in /lib64 instead of /lib.
|
||||||
|
# Allow earlier configure scripts to handle libc_cv_slibdir, libdir,
|
||||||
|
# and libc_cv_localedir.
|
||||||
|
test -n "$libc_cv_slibdir" || \
|
||||||
case $machine in
|
case $machine in
|
||||||
sparc/sparc64 | x86_64 | powerpc/powerpc64 | s390/s390-64 | \
|
sparc/sparc64 | x86_64 | powerpc/powerpc64 | s390/s390-64)
|
||||||
mips/mips64/n64/* )
|
|
||||||
libc_cv_slibdir="/lib64"
|
libc_cv_slibdir="/lib64"
|
||||||
if test "$libdir" = '${exec_prefix}/lib'; then
|
if test "$libdir" = '${exec_prefix}/lib'; then
|
||||||
libdir='${exec_prefix}/lib64';
|
libdir='${exec_prefix}/lib64';
|
||||||
@ -239,14 +237,6 @@ case "$prefix" in
|
|||||||
libc_cv_localedir='${exec_prefix}/lib/locale'
|
libc_cv_localedir='${exec_prefix}/lib/locale'
|
||||||
fi
|
fi
|
||||||
;;
|
;;
|
||||||
mips/mips64/n32/* )
|
|
||||||
libc_cv_slibdir="/lib32"
|
|
||||||
if test "$libdir" = '${exec_prefix}/lib'; then
|
|
||||||
libdir='${exec_prefix}/lib32';
|
|
||||||
# Locale data can be shared between 32bit and 64bit libraries
|
|
||||||
libc_cv_localedir='${exec_prefix}/lib/locale'
|
|
||||||
fi
|
|
||||||
;;
|
|
||||||
*)
|
*)
|
||||||
libc_cv_slibdir="/lib"
|
libc_cv_slibdir="/lib"
|
||||||
;;
|
;;
|
||||||
@ -317,9 +307,6 @@ case "$machine" in
|
|||||||
ia64*)
|
ia64*)
|
||||||
ldd_rewrite_script=../sysdeps/unix/sysv/linux/ia64/ldd-rewrite.sed
|
ldd_rewrite_script=../sysdeps/unix/sysv/linux/ia64/ldd-rewrite.sed
|
||||||
;;
|
;;
|
||||||
mips/*64*)
|
|
||||||
ldd_rewrite_script=../sysdeps/unix/sysv/linux/mips/mips64/ldd-rewrite.sed
|
|
||||||
;;
|
|
||||||
s390*)
|
s390*)
|
||||||
ldd_rewrite_script=../sysdeps/unix/sysv/linux/s390/ldd-rewrite.sed
|
ldd_rewrite_script=../sysdeps/unix/sysv/linux/s390/ldd-rewrite.sed
|
||||||
;;
|
;;
|
||||||
|
@ -75,10 +75,6 @@ case "$machine" in
|
|||||||
arch_minimum_kernel=2.0.10
|
arch_minimum_kernel=2.0.10
|
||||||
libc_cv_gcc_unwind_find_fde=yes
|
libc_cv_gcc_unwind_find_fde=yes
|
||||||
;;
|
;;
|
||||||
mips*)
|
|
||||||
arch_minimum_kernel=2.4.0
|
|
||||||
libc_cv_gcc_unwind_find_fde=yes
|
|
||||||
;;
|
|
||||||
powerpc/powerpc32)
|
powerpc/powerpc32)
|
||||||
libc_cv_gcc_unwind_find_fde=yes
|
libc_cv_gcc_unwind_find_fde=yes
|
||||||
arch_minimum_kernel=2.0.10
|
arch_minimum_kernel=2.0.10
|
||||||
@ -163,10 +159,12 @@ fi
|
|||||||
# in /lib and /etc.
|
# in /lib and /etc.
|
||||||
case "$prefix" in
|
case "$prefix" in
|
||||||
/usr | /usr/)
|
/usr | /usr/)
|
||||||
# 64-bit libraries on bi-arch platforms go in /lib64 instead of /lib
|
# 64-bit libraries on bi-arch platforms go in /lib64 instead of /lib.
|
||||||
|
# Allow earlier configure scripts to handle libc_cv_slibdir, libdir,
|
||||||
|
# and libc_cv_localedir.
|
||||||
|
test -n "$libc_cv_slibdir" || \
|
||||||
case $machine in
|
case $machine in
|
||||||
sparc/sparc64 | x86_64 | powerpc/powerpc64 | s390/s390-64 | \
|
sparc/sparc64 | x86_64 | powerpc/powerpc64 | s390/s390-64)
|
||||||
mips/mips64/n64/* )
|
|
||||||
libc_cv_slibdir="/lib64"
|
libc_cv_slibdir="/lib64"
|
||||||
if test "$libdir" = '${exec_prefix}/lib'; then
|
if test "$libdir" = '${exec_prefix}/lib'; then
|
||||||
libdir='${exec_prefix}/lib64';
|
libdir='${exec_prefix}/lib64';
|
||||||
@ -174,14 +172,6 @@ case "$prefix" in
|
|||||||
libc_cv_localedir='${exec_prefix}/lib/locale'
|
libc_cv_localedir='${exec_prefix}/lib/locale'
|
||||||
fi
|
fi
|
||||||
;;
|
;;
|
||||||
mips/mips64/n32/* )
|
|
||||||
libc_cv_slibdir="/lib32"
|
|
||||||
if test "$libdir" = '${exec_prefix}/lib'; then
|
|
||||||
libdir='${exec_prefix}/lib32';
|
|
||||||
# Locale data can be shared between 32bit and 64bit libraries
|
|
||||||
libc_cv_localedir='${exec_prefix}/lib/locale'
|
|
||||||
fi
|
|
||||||
;;
|
|
||||||
*)
|
*)
|
||||||
libc_cv_slibdir="/lib"
|
libc_cv_slibdir="/lib"
|
||||||
;;
|
;;
|
||||||
@ -252,9 +242,6 @@ case "$machine" in
|
|||||||
ia64*)
|
ia64*)
|
||||||
ldd_rewrite_script=../sysdeps/unix/sysv/linux/ia64/ldd-rewrite.sed
|
ldd_rewrite_script=../sysdeps/unix/sysv/linux/ia64/ldd-rewrite.sed
|
||||||
;;
|
;;
|
||||||
mips/*64*)
|
|
||||||
ldd_rewrite_script=../sysdeps/unix/sysv/linux/mips/mips64/ldd-rewrite.sed
|
|
||||||
;;
|
|
||||||
s390*)
|
s390*)
|
||||||
ldd_rewrite_script=../sysdeps/unix/sysv/linux/s390/ldd-rewrite.sed
|
ldd_rewrite_script=../sysdeps/unix/sysv/linux/s390/ldd-rewrite.sed
|
||||||
;;
|
;;
|
||||||
|
Loading…
Reference in New Issue
Block a user