summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--README2
-rw-r--r--elf/elf.h28
-rw-r--r--elf/tls-macros.h6
-rw-r--r--linuxthreads/ChangeLog6
-rw-r--r--linuxthreads/sysdeps/sh/pt-machine.h2
-rw-r--r--linuxthreads/sysdeps/sh/tls.h2
-rw-r--r--linuxthreads/sysdeps/unix/sysv/linux/sh/smp.h24
-rwxr-xr-xsysdeps/alpha/elf/configure4
-rw-r--r--sysdeps/sh/dl-machine.h7
-rw-r--r--sysdeps/sh/elf/initfini.c6
-rw-r--r--sysdeps/sh/elf/start.S4
-rw-r--r--sysdeps/unix/sysv/aix/configure5
-rw-r--r--version.h2
13 files changed, 62 insertions, 36 deletions
diff --git a/README b/README
index 4229c1b2f0..43503cc942 100644
--- a/README
+++ b/README
@@ -1,4 +1,4 @@
-This directory contains the version 2.2.94 release of the GNU C Library.
+This directory contains the version 2.3 release of the GNU C Library.
Many bugs have been fixed since the last release.
Some bugs surely remain.
diff --git a/elf/elf.h b/elf/elf.h
index 2d79be2f65..416a7959ea 100644
--- a/elf/elf.h
+++ b/elf/elf.h
@@ -2201,21 +2201,19 @@ typedef Elf32_Addr Elf32_Conflict;
#define R_SH_SWITCH8 33
#define R_SH_GNU_VTINHERIT 34
#define R_SH_GNU_VTENTRY 35
-#define R_SH_TLS_GD_32 128
-#define R_SH_TLS_LD_32 129
-#define R_SH_TLS_LDO_32 130
-#define R_SH_TLS_IE_32 131
-#define R_SH_TLS_LE_32 132
-#define R_SH_TLS_DTPMOD32 133
-#define R_SH_TLS_DTPOFF32 134
-#define R_SH_TLS_TPOFF32 135
-#define R_SH_TLS_GD_MOV 136
-#define R_SH_TLS_GD_CALLMOV 137
-#define R_SH_TLS_LDM_MOV 138
-#define R_SH_TLS_LDO_MOV 139
-#define R_SH_TLS_LD_CALLMOV 140
-#define R_SH_TLS_IE_MOV 141
-#define R_SH_TLS_LE_MOV 142
+#define R_SH_TLS_GD_32 144
+#define R_SH_TLS_LD_32 145
+#define R_SH_TLS_LDO_32 146
+#define R_SH_TLS_IE_32 147
+#define R_SH_TLS_LE_32 148
+#define R_SH_TLS_DTPMOD32 149
+#define R_SH_TLS_DTPOFF32 150
+#define R_SH_TLS_TPOFF32 151
+#define R_SH_TLS_GD_MOV 152
+#define R_SH_TLS_LDM_MOV 153
+#define R_SH_TLS_LDO_MOV 154
+#define R_SH_TLS_IE_MOV 155
+#define R_SH_TLS_LE_MOV 156
#define R_SH_GOT32 160
#define R_SH_PLT32 161
#define R_SH_COPY 162
diff --git a/elf/tls-macros.h b/elf/tls-macros.h
index 6497903a9b..1f9cf4448a 100644
--- a/elf/tls-macros.h
+++ b/elf/tls-macros.h
@@ -166,12 +166,11 @@
"mov.l 0f,r12\n\t" \
"add r0,r12\n\t" \
"mov.l 1f,r4\n\t" \
- "add r12,r4\n\t" \
"mova 2f,r0\n\t" \
"mov.l 2f,r1\n\t" \
"add r0,r1\n\t" \
"jsr @r1\n\t" \
- " nop\n\t" \
+ " add r12,r4\n\t" \
"mov.l 3f,%0\n\t" \
"bra 4f\n\t" \
" add r0,%0\n\t" \
@@ -191,12 +190,11 @@
"mov.l 0f,r12\n\t" \
"add r0,r12\n\t" \
"mov.l 1f,r4\n\t" \
- "add r12,r4\n\t" \
"mova 2f,r0\n\t" \
"mov.l 2f,r1\n\t" \
"add r0,r1\n\t" \
"jsr @r1\n\t" \
- " nop\n\t" \
+ " add r12,r4\n\t" \
"bra 3f\n\t" \
" mov r0,%0\n\t" \
".align 2\n\t" \
diff --git a/linuxthreads/ChangeLog b/linuxthreads/ChangeLog
index 33ae7212c9..d2072e51d0 100644
--- a/linuxthreads/ChangeLog
+++ b/linuxthreads/ChangeLog
@@ -1,3 +1,9 @@
+2002-10-02 Kaz Kojima <kkojima@rr.iij4u.or.jp>
+
+ * sysdeps/sh/pt-machine.h: Make C code ifndef'ed with __ASSEMBLER__.
+ * sysdeps/sh/tls.h: Likewise.
+ * sysdeps/unix/sysv/linux/sh/smp.h: New file.
+
2002-09-29 Jakub Jelinek <jakub@redhat.com>
* sysdeps/pthread/tst-timer.c (main): Clear
diff --git a/linuxthreads/sysdeps/sh/pt-machine.h b/linuxthreads/sysdeps/sh/pt-machine.h
index 4839170597..cc3a4f2ce9 100644
--- a/linuxthreads/sysdeps/sh/pt-machine.h
+++ b/linuxthreads/sysdeps/sh/pt-machine.h
@@ -22,6 +22,7 @@
#ifndef _PT_MACHINE_H
#define _PT_MACHINE_H 1
+#ifndef __ASSEMBLER__
#ifndef PT_EI
# define PT_EI extern inline
#endif
@@ -71,5 +72,6 @@ struct _pthread_descr_struct;
#define THREAD_GETMEM_NC(descr, member) THREAD_SELF->member
#define THREAD_SETMEM(descr, member, value) THREAD_SELF->member = (value)
#define THREAD_SETMEM_NC(descr, member, value) THREAD_SELF->member = (value)
+#endif /* __ASSEMBLER__ */
#endif /* pt-machine.h */
diff --git a/linuxthreads/sysdeps/sh/tls.h b/linuxthreads/sysdeps/sh/tls.h
index 4784053f80..75d3b713df 100644
--- a/linuxthreads/sysdeps/sh/tls.h
+++ b/linuxthreads/sysdeps/sh/tls.h
@@ -20,6 +20,7 @@
#ifndef _TLS_H
#define _TLS_H
+#ifndef __ASSEMBLER__
#include <stddef.h>
#include <pt-machine.h>
@@ -109,5 +110,6 @@ typedef struct
THREAD_GETMEM (__descr, p_header.data.dtvp); })
#endif /* FLOATING_STACKS && HAVE_TLS_SUPPORT */
+#endif /* __ASSEMBLER__ */
#endif /* tls.h */
diff --git a/linuxthreads/sysdeps/unix/sysv/linux/sh/smp.h b/linuxthreads/sysdeps/unix/sysv/linux/sh/smp.h
new file mode 100644
index 0000000000..2c0cbe99ac
--- /dev/null
+++ b/linuxthreads/sysdeps/unix/sysv/linux/sh/smp.h
@@ -0,0 +1,24 @@
+/* Determine whether the host has multiple processors. SH version.
+ Copyright (C) 2002 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Library General Public License as
+ published by the Free Software Foundation; either version 2 of the
+ License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Library General Public License for more details.
+
+ You should have received a copy of the GNU Library General Public
+ License along with the GNU C Library; see the file COPYING.LIB. If not,
+ write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ Boston, MA 02111-1307, USA. */
+
+static inline int
+is_smp_system (void)
+{
+ return 0;
+}
diff --git a/sysdeps/alpha/elf/configure b/sysdeps/alpha/elf/configure
index ab3c0932aa..3ca6793758 100755
--- a/sysdeps/alpha/elf/configure
+++ b/sysdeps/alpha/elf/configure
@@ -60,7 +60,7 @@ fi
fi
echo $ac_n "checking for GP relative module local relocs""... $ac_c" 1>&6
-echo "configure:20: checking for GP relative module local relocs" >&5
+echo "configure:64: checking for GP relative module local relocs" >&5
if eval "test \"`echo '$''{'libc_cv_alpha_hidden_gprel'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -75,7 +75,7 @@ int foo (void)
EOF
libc_cv_alpha_hidden_gprel=no
-if { ac_try='${CC-cc} -S $CFLAGS -O2 -fpic conftest.c 1>&5'; { (eval echo configure:35: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; }; then
+if { ac_try='${CC-cc} -S $CFLAGS -O2 -fpic conftest.c 1>&5'; { (eval echo configure:79: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; }; then
if grep -q 'bar.*!gprel' conftest.s \
&& grep -q 'baz.*!gprel' conftest.s \
&& ! grep -q 'bar.*!literal' conftest.s \
diff --git a/sysdeps/sh/dl-machine.h b/sysdeps/sh/dl-machine.h
index 483b42f9f3..350ac5297a 100644
--- a/sysdeps/sh/dl-machine.h
+++ b/sysdeps/sh/dl-machine.h
@@ -573,14 +573,15 @@ elf_machine_rela (struct link_map *map, const Elf32_Rela *reloc,
case R_SH_TLS_TPOFF32:
/* The offset is positive, afterward from the thread pointer. */
# ifdef RTLD_BOOTSTRAP
- *reloc_addr = map->l_tls_offset + sym->st_value;
+ *reloc_addr = map->l_tls_offset + sym->st_value + reloc->r_addend;
# else
/* We know the offset of object the symbol is contained in.
It is a positive value which will be added to the thread
pointer. To get the variable position in the TLS block
we add the offset from that of the TLS block. */
- if (sym_map != NULL && sym != NULL)
- *reloc_addr = sym_map->l_tls_offset + sym->st_value;
+ *reloc_addr
+ = ((sym == NULL ? 0 : sym_map->l_tls_offset + sym->st_value)
+ + reloc->r_addend);
# endif
break;
#endif /* use TLS */
diff --git a/sysdeps/sh/elf/initfini.c b/sysdeps/sh/elf/initfini.c
index d70730ec1c..b41c7ecdd2 100644
--- a/sysdeps/sh/elf/initfini.c
+++ b/sysdeps/sh/elf/initfini.c
@@ -71,12 +71,6 @@ _init:
.L23:
.long __gmon_start__
#endif
- .data
- .global __fpscr_values
-__fpscr_values:
- .long 0
- .long 0x80000
- .previous
1:
ALIGN
END_INIT
diff --git a/sysdeps/sh/elf/start.S b/sysdeps/sh/elf/start.S
index aef4160c92..5bcb08f236 100644
--- a/sysdeps/sh/elf/start.S
+++ b/sysdeps/sh/elf/start.S
@@ -89,3 +89,7 @@ __data_start:
.long 0
.weak data_start
data_start = __data_start
+ .global __fpscr_values
+__fpscr_values:
+ .long 0
+ .long 0x80000
diff --git a/sysdeps/unix/sysv/aix/configure b/sysdeps/unix/sysv/aix/configure
index 7fc920ecaa..fa4a6c987c 100644
--- a/sysdeps/unix/sysv/aix/configure
+++ b/sysdeps/unix/sysv/aix/configure
@@ -1,7 +1,4 @@
- # Local configure fragment for sysdeps/unix/sysv/linux.
-
-# On Linux, the default is to use libio instead of stdio.
-test $stdio = default && stdio=libio
+ # Local configure fragment for sysdeps/unix/sysv/aix.
# Don't bother trying to generate any glue code to be compatible with the
# existing system library, because we are the only system library.
diff --git a/version.h b/version.h
index a00eac672f..d10413a5e7 100644
--- a/version.h
+++ b/version.h
@@ -1,4 +1,4 @@
/* This file just defines the current version number of libc. */
#define RELEASE "development"
-#define VERSION "2.2.94"
+#define VERSION "2.3"