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.
This commit is contained in:
Ulrich Drepper 2002-10-02 06:22:02 +00:00
parent 0674eb08ee
commit aa298c0874
13 changed files with 62 additions and 36 deletions

2
README
View File

@ -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. Many bugs have been fixed since the last release.
Some bugs surely remain. Some bugs surely remain.

View File

@ -2201,21 +2201,19 @@ typedef Elf32_Addr Elf32_Conflict;
#define R_SH_SWITCH8 33 #define R_SH_SWITCH8 33
#define R_SH_GNU_VTINHERIT 34 #define R_SH_GNU_VTINHERIT 34
#define R_SH_GNU_VTENTRY 35 #define R_SH_GNU_VTENTRY 35
#define R_SH_TLS_GD_32 128 #define R_SH_TLS_GD_32 144
#define R_SH_TLS_LD_32 129 #define R_SH_TLS_LD_32 145
#define R_SH_TLS_LDO_32 130 #define R_SH_TLS_LDO_32 146
#define R_SH_TLS_IE_32 131 #define R_SH_TLS_IE_32 147
#define R_SH_TLS_LE_32 132 #define R_SH_TLS_LE_32 148
#define R_SH_TLS_DTPMOD32 133 #define R_SH_TLS_DTPMOD32 149
#define R_SH_TLS_DTPOFF32 134 #define R_SH_TLS_DTPOFF32 150
#define R_SH_TLS_TPOFF32 135 #define R_SH_TLS_TPOFF32 151
#define R_SH_TLS_GD_MOV 136 #define R_SH_TLS_GD_MOV 152
#define R_SH_TLS_GD_CALLMOV 137 #define R_SH_TLS_LDM_MOV 153
#define R_SH_TLS_LDM_MOV 138 #define R_SH_TLS_LDO_MOV 154
#define R_SH_TLS_LDO_MOV 139 #define R_SH_TLS_IE_MOV 155
#define R_SH_TLS_LD_CALLMOV 140 #define R_SH_TLS_LE_MOV 156
#define R_SH_TLS_IE_MOV 141
#define R_SH_TLS_LE_MOV 142
#define R_SH_GOT32 160 #define R_SH_GOT32 160
#define R_SH_PLT32 161 #define R_SH_PLT32 161
#define R_SH_COPY 162 #define R_SH_COPY 162

View File

@ -166,12 +166,11 @@
"mov.l 0f,r12\n\t" \ "mov.l 0f,r12\n\t" \
"add r0,r12\n\t" \ "add r0,r12\n\t" \
"mov.l 1f,r4\n\t" \ "mov.l 1f,r4\n\t" \
"add r12,r4\n\t" \
"mova 2f,r0\n\t" \ "mova 2f,r0\n\t" \
"mov.l 2f,r1\n\t" \ "mov.l 2f,r1\n\t" \
"add r0,r1\n\t" \ "add r0,r1\n\t" \
"jsr @r1\n\t" \ "jsr @r1\n\t" \
" nop\n\t" \ " add r12,r4\n\t" \
"mov.l 3f,%0\n\t" \ "mov.l 3f,%0\n\t" \
"bra 4f\n\t" \ "bra 4f\n\t" \
" add r0,%0\n\t" \ " add r0,%0\n\t" \
@ -191,12 +190,11 @@
"mov.l 0f,r12\n\t" \ "mov.l 0f,r12\n\t" \
"add r0,r12\n\t" \ "add r0,r12\n\t" \
"mov.l 1f,r4\n\t" \ "mov.l 1f,r4\n\t" \
"add r12,r4\n\t" \
"mova 2f,r0\n\t" \ "mova 2f,r0\n\t" \
"mov.l 2f,r1\n\t" \ "mov.l 2f,r1\n\t" \
"add r0,r1\n\t" \ "add r0,r1\n\t" \
"jsr @r1\n\t" \ "jsr @r1\n\t" \
" nop\n\t" \ " add r12,r4\n\t" \
"bra 3f\n\t" \ "bra 3f\n\t" \
" mov r0,%0\n\t" \ " mov r0,%0\n\t" \
".align 2\n\t" \ ".align 2\n\t" \

View File

@ -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> 2002-09-29 Jakub Jelinek <jakub@redhat.com>
* sysdeps/pthread/tst-timer.c (main): Clear * sysdeps/pthread/tst-timer.c (main): Clear

View File

@ -22,6 +22,7 @@
#ifndef _PT_MACHINE_H #ifndef _PT_MACHINE_H
#define _PT_MACHINE_H 1 #define _PT_MACHINE_H 1
#ifndef __ASSEMBLER__
#ifndef PT_EI #ifndef PT_EI
# define PT_EI extern inline # define PT_EI extern inline
#endif #endif
@ -71,5 +72,6 @@ struct _pthread_descr_struct;
#define THREAD_GETMEM_NC(descr, member) THREAD_SELF->member #define THREAD_GETMEM_NC(descr, member) THREAD_SELF->member
#define THREAD_SETMEM(descr, member, value) THREAD_SELF->member = (value) #define THREAD_SETMEM(descr, member, value) THREAD_SELF->member = (value)
#define THREAD_SETMEM_NC(descr, member, value) THREAD_SELF->member = (value) #define THREAD_SETMEM_NC(descr, member, value) THREAD_SELF->member = (value)
#endif /* __ASSEMBLER__ */
#endif /* pt-machine.h */ #endif /* pt-machine.h */

View File

@ -20,6 +20,7 @@
#ifndef _TLS_H #ifndef _TLS_H
#define _TLS_H #define _TLS_H
#ifndef __ASSEMBLER__
#include <stddef.h> #include <stddef.h>
#include <pt-machine.h> #include <pt-machine.h>
@ -109,5 +110,6 @@ typedef struct
THREAD_GETMEM (__descr, p_header.data.dtvp); }) THREAD_GETMEM (__descr, p_header.data.dtvp); })
#endif /* FLOATING_STACKS && HAVE_TLS_SUPPORT */ #endif /* FLOATING_STACKS && HAVE_TLS_SUPPORT */
#endif /* __ASSEMBLER__ */
#endif /* tls.h */ #endif /* tls.h */

View File

@ -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;
}

View File

@ -60,7 +60,7 @@ fi
fi fi
echo $ac_n "checking for GP relative module local relocs""... $ac_c" 1>&6 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 if eval "test \"`echo '$''{'libc_cv_alpha_hidden_gprel'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6 echo $ac_n "(cached) $ac_c" 1>&6
else else
@ -75,7 +75,7 @@ int foo (void)
EOF EOF
libc_cv_alpha_hidden_gprel=no 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 \ if grep -q 'bar.*!gprel' conftest.s \
&& grep -q 'baz.*!gprel' conftest.s \ && grep -q 'baz.*!gprel' conftest.s \
&& ! grep -q 'bar.*!literal' conftest.s \ && ! grep -q 'bar.*!literal' conftest.s \

View File

@ -573,14 +573,15 @@ elf_machine_rela (struct link_map *map, const Elf32_Rela *reloc,
case R_SH_TLS_TPOFF32: case R_SH_TLS_TPOFF32:
/* The offset is positive, afterward from the thread pointer. */ /* The offset is positive, afterward from the thread pointer. */
# ifdef RTLD_BOOTSTRAP # 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 # else
/* We know the offset of object the symbol is contained in. /* We know the offset of object the symbol is contained in.
It is a positive value which will be added to the thread It is a positive value which will be added to the thread
pointer. To get the variable position in the TLS block pointer. To get the variable position in the TLS block
we add the offset from that of the TLS block. */ we add the offset from that of the TLS block. */
if (sym_map != NULL && sym != NULL) *reloc_addr
*reloc_addr = sym_map->l_tls_offset + sym->st_value; = ((sym == NULL ? 0 : sym_map->l_tls_offset + sym->st_value)
+ reloc->r_addend);
# endif # endif
break; break;
#endif /* use TLS */ #endif /* use TLS */

View File

@ -71,12 +71,6 @@ _init:
.L23: .L23:
.long __gmon_start__ .long __gmon_start__
#endif #endif
.data
.global __fpscr_values
__fpscr_values:
.long 0
.long 0x80000
.previous
1: 1:
ALIGN ALIGN
END_INIT END_INIT

View File

@ -89,3 +89,7 @@ __data_start:
.long 0 .long 0
.weak data_start .weak data_start
data_start = __data_start data_start = __data_start
.global __fpscr_values
__fpscr_values:
.long 0
.long 0x80000

View File

@ -1,7 +1,4 @@
# Local configure fragment for sysdeps/unix/sysv/linux. # Local configure fragment for sysdeps/unix/sysv/aix.
# On Linux, the default is to use libio instead of stdio.
test $stdio = default && stdio=libio
# Don't bother trying to generate any glue code to be compatible with the # Don't bother trying to generate any glue code to be compatible with the
# existing system library, because we are the only system library. # existing system library, because we are the only system library.

View File

@ -1,4 +1,4 @@
/* This file just defines the current version number of libc. */ /* This file just defines the current version number of libc. */
#define RELEASE "development" #define RELEASE "development"
#define VERSION "2.2.94" #define VERSION "2.3"