* sysdeps/mach/hurd/i386/tls.h (_hurd_tls_init): Make sure high bits
authorRoland McGrath <roland@gnu.org>
Sun, 5 Mar 2006 02:53:03 +0000 (02:53 +0000)
committerRoland McGrath <roland@gnu.org>
Sun, 5 Mar 2006 02:53:03 +0000 (02:53 +0000)
of SEL are clear after copying %gs to low bits.
(_hurd_tls_fork): Likewise.

ChangeLog
sysdeps/mach/hurd/i386/tls.h
sysdeps/unix/sysv/linux/configure
sysdeps/unix/sysv/linux/configure.in

index 8d8a267..cc1edb7 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -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>
 
        [BZ #2414]
index ff84971..223a47d 100644 (file)
@@ -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;
 
index 0668308..a8a9cc4 100644 (file)
@@ -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
     ;;
index b90de06..43681f3 100644 (file)
@@ -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
     ;;