summary refs log tree commit diff
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"