diff options
author | Roland McGrath <roland@gnu.org> | 2006-03-05 02:53:03 +0000 |
---|---|---|
committer | Roland McGrath <roland@gnu.org> | 2006-03-05 02:53:03 +0000 |
commit | a935c3dc908c26b6ca87a4e892d03d84165d1e83 (patch) | |
tree | 31afc0a577ea9c41d510097c01c901a14234f424 | |
parent | 3295976affeff4d04981811c45d466b276b6dce3 (diff) | |
download | glibc-a935c3dc908c26b6ca87a4e892d03d84165d1e83.tar.gz glibc-a935c3dc908c26b6ca87a4e892d03d84165d1e83.tar.xz glibc-a935c3dc908c26b6ca87a4e892d03d84165d1e83.zip |
* 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.
-rw-r--r-- | ChangeLog | 6 | ||||
-rw-r--r-- | sysdeps/mach/hurd/i386/tls.h | 4 | ||||
-rw-r--r-- | sysdeps/unix/sysv/linux/configure | 23 | ||||
-rw-r--r-- | 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 <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] 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 ;; |