aboutsummaryrefslogtreecommitdiff
path: root/sysdeps
diff options
context:
space:
mode:
authorRoland McGrath <roland@gnu.org>2006-03-05 02:53:03 +0000
committerRoland McGrath <roland@gnu.org>2006-03-05 02:53:03 +0000
commita935c3dc908c26b6ca87a4e892d03d84165d1e83 (patch)
tree31afc0a577ea9c41d510097c01c901a14234f424 /sysdeps
parent3295976affeff4d04981811c45d466b276b6dce3 (diff)
downloadglibc-a935c3dc908c26b6ca87a4e892d03d84165d1e83.tar
glibc-a935c3dc908c26b6ca87a4e892d03d84165d1e83.tar.gz
glibc-a935c3dc908c26b6ca87a4e892d03d84165d1e83.tar.bz2
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.
Diffstat (limited to 'sysdeps')
-rw-r--r--sysdeps/mach/hurd/i386/tls.h4
-rw-r--r--sysdeps/unix/sysv/linux/configure23
-rw-r--r--sysdeps/unix/sysv/linux/configure.in23
3 files changed, 12 insertions, 38 deletions
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
;;