From a935c3dc908c26b6ca87a4e892d03d84165d1e83 Mon Sep 17 00:00:00 2001 From: Roland McGrath Date: Sun, 5 Mar 2006 02:53:03 +0000 Subject: [PATCH] * 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. --- ChangeLog | 6 ++++++ sysdeps/mach/hurd/i386/tls.h | 4 ++-- sysdeps/unix/sysv/linux/configure | 23 +++++------------------ sysdeps/unix/sysv/linux/configure.in | 23 +++++------------------ 4 files changed, 18 insertions(+), 38 deletions(-) diff --git a/ChangeLog b/ChangeLog index 8d8a2673dd..cc1edb7c47 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +2006-03-04 Roland McGrath + + * 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 [BZ #2414] diff --git a/sysdeps/mach/hurd/i386/tls.h b/sysdeps/mach/hurd/i386/tls.h index ff849716e0..223a47d2f2 100644 --- a/sysdeps/mach/hurd/i386/tls.h +++ b/sysdeps/mach/hurd/i386/tls.h @@ -98,7 +98,7 @@ _hurd_tls_init (tcbhead_t *tcb, int secondcall) { /* Fetch the selector set by the first call. */ int sel; - asm ("mov %%gs, %w0" : "=q" (sel)); + asm ("mov %%gs, %w0" : "=q" (sel) : "0" (0)); if (__builtin_expect (sel, 0x50) & 4) /* LDT selector */ { 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. */ 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. */ return 0; diff --git a/sysdeps/unix/sysv/linux/configure b/sysdeps/unix/sysv/linux/configure index 06683089ad..a8a9cc4702 100644 --- a/sysdeps/unix/sysv/linux/configure +++ b/sysdeps/unix/sysv/linux/configure @@ -115,10 +115,6 @@ case "$machine" in arch_minimum_kernel=2.0.10 libc_cv_gcc_unwind_find_fde=yes ;; - mips*) - arch_minimum_kernel=2.4.0 - libc_cv_gcc_unwind_find_fde=yes - ;; powerpc/powerpc32) libc_cv_gcc_unwind_find_fde=yes arch_minimum_kernel=2.0.10 @@ -228,10 +224,12 @@ fi # in /lib and /etc. case "$prefix" in /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 - sparc/sparc64 | x86_64 | powerpc/powerpc64 | s390/s390-64 | \ - mips/mips64/n64/* ) + sparc/sparc64 | x86_64 | powerpc/powerpc64 | s390/s390-64) libc_cv_slibdir="/lib64" if test "$libdir" = '${exec_prefix}/lib'; then libdir='${exec_prefix}/lib64'; @@ -239,14 +237,6 @@ case "$prefix" in libc_cv_localedir='${exec_prefix}/lib/locale' 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" ;; @@ -317,9 +307,6 @@ case "$machine" in ia64*) 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*) ldd_rewrite_script=../sysdeps/unix/sysv/linux/s390/ldd-rewrite.sed ;; diff --git a/sysdeps/unix/sysv/linux/configure.in b/sysdeps/unix/sysv/linux/configure.in index b90de065af..43681f3251 100644 --- a/sysdeps/unix/sysv/linux/configure.in +++ b/sysdeps/unix/sysv/linux/configure.in @@ -75,10 +75,6 @@ case "$machine" in arch_minimum_kernel=2.0.10 libc_cv_gcc_unwind_find_fde=yes ;; - mips*) - arch_minimum_kernel=2.4.0 - libc_cv_gcc_unwind_find_fde=yes - ;; powerpc/powerpc32) libc_cv_gcc_unwind_find_fde=yes arch_minimum_kernel=2.0.10 @@ -163,10 +159,12 @@ fi # in /lib and /etc. case "$prefix" in /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 - sparc/sparc64 | x86_64 | powerpc/powerpc64 | s390/s390-64 | \ - mips/mips64/n64/* ) + sparc/sparc64 | x86_64 | powerpc/powerpc64 | s390/s390-64) libc_cv_slibdir="/lib64" if test "$libdir" = '${exec_prefix}/lib'; then libdir='${exec_prefix}/lib64'; @@ -174,14 +172,6 @@ case "$prefix" in libc_cv_localedir='${exec_prefix}/lib/locale' 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" ;; @@ -252,9 +242,6 @@ case "$machine" in ia64*) 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*) ldd_rewrite_script=../sysdeps/unix/sysv/linux/s390/ldd-rewrite.sed ;;