2001-07-06  Jakub Jelinek  <jakub@redhat.com>

	* sysdeps/unix/sysv/linux/i386/sigaction.c (RESTORE2): Put asm
	explicitly into .text section.

2001-04-16  Jes Sorensen  <jes@linuxcare.com>

	* sysdeps/unix/sysv/linux/ia64/bits/sigcontext.h (struct sigcontext):
	Add 16 longwords reserved for future use to match changes in the
	kernel.

2001-07-03  Jes Sorensen  <jes@trained-monkey.org>

	* sysdeps/ia64/strncpy.S: Call strnlen() when determining the
	string length rather than strlen(). Solves the performance problem
	of doing strlen on a 5MB string when strncpy was called with a
	length argument of 5 bytes.

2001-07-02  Jakub Jelinek  <jakub@redhat.com>

	* sysdeps/sparc/sparc32/dl-machine.h (elf_machine_rela): Handle
	R_SPARC_UA16 and R_SPARC_UA32.
	* sysdeps/sparc/sparc64/dl-machine.h (elf_machine_rela): Likewise.

2001-07-01  Stephen L Moshier  <moshier@mediaone.net>

	* sysdeps/ieee754/ldbl-96/e_acoshl.c (__ieee754_acoshl):
	acosh(x) = ln(2x) if x > 2^30.
	* sysdeps/ieee754/ldbl-128/e_acoshl.c (__ieee754_acoshl):
	acosh(x) = ln(2x) if x > 2^54.

	* sysdeps/hppa/dl-machine.h (elf_machine_rela): Handle relocs
This commit is contained in:
Ulrich Drepper 2001-07-07 22:59:32 +00:00
parent 6c112c15ad
commit 4dbb64174c
7 changed files with 63 additions and 8 deletions

View File

@ -1,3 +1,34 @@
2001-07-06 Jakub Jelinek <jakub@redhat.com>
* sysdeps/unix/sysv/linux/i386/sigaction.c (RESTORE2): Put asm
explicitly into .text section.
2001-04-16 Jes Sorensen <jes@linuxcare.com>
* sysdeps/unix/sysv/linux/ia64/bits/sigcontext.h (struct sigcontext):
Add 16 longwords reserved for future use to match changes in the
kernel.
2001-07-03 Jes Sorensen <jes@trained-monkey.org>
* sysdeps/ia64/strncpy.S: Call strnlen() when determining the
string length rather than strlen(). Solves the performance problem
of doing strlen on a 5MB string when strncpy was called with a
length argument of 5 bytes.
2001-07-02 Jakub Jelinek <jakub@redhat.com>
* sysdeps/sparc/sparc32/dl-machine.h (elf_machine_rela): Handle
R_SPARC_UA16 and R_SPARC_UA32.
* sysdeps/sparc/sparc64/dl-machine.h (elf_machine_rela): Likewise.
2001-07-01 Stephen L Moshier <moshier@mediaone.net>
* sysdeps/ieee754/ldbl-96/e_acoshl.c (__ieee754_acoshl):
acosh(x) = ln(2x) if x > 2^30.
* sysdeps/ieee754/ldbl-128/e_acoshl.c (__ieee754_acoshl):
acosh(x) = ln(2x) if x > 2^54.
2001-07-07 Mark Kettenis <kettenis@gnu.org> 2001-07-07 Mark Kettenis <kettenis@gnu.org>
* sysdeps/mach/hurd/i386/exc2signal.c (_hurd_exception2signal): * sysdeps/mach/hurd/i386/exc2signal.c (_hurd_exception2signal):
@ -297,7 +328,7 @@
2001-06-17 Alan Modra <amodra@bigpond.net.au> 2001-06-17 Alan Modra <amodra@bigpond.net.au>
* sysdeps/hppa/dl-machine.h (elf_machine_rela): handle relocs * sysdeps/hppa/dl-machine.h (elf_machine_rela): Handle relocs
at unaligned address. at unaligned address.
2001-06-18 Ulrich Drepper <drepper@redhat.com> 2001-06-18 Ulrich Drepper <drepper@redhat.com>

View File

@ -25,8 +25,8 @@
in1: src in1: src
in2: char count in2: char count
If n >= 24, do a memcpy(dest, src, min(strlen(src)+1, n)), followed by a If n >= 24, do a memcpy(dest, src, min(strnlen(src, n)+1, n)), followed by a
memset(dest + strlen(src), 0, n - strlen(src) - 1) if necessary. memset(dest + strlen(src, n), 0, n - strlen(src, n) - 1) if necessary.
Otherwise, copy characters one by one and fill with nulls if necessary. */ Otherwise, copy characters one by one and fill with nulls if necessary. */
@ -58,8 +58,9 @@ ENTRY(strncpy)
cmp.gtu p6, p0 = 24, n cmp.gtu p6, p0 = 24, n
(p6) br.cond.spnt .cpyfew (p6) br.cond.spnt .cpyfew
mov out0 = src mov out0 = src
mov tmp = gp ;; mov out1 = n
br.call.sptk.many b0 = strlen# ;; // rc = strlen(src); mov tmp = gp
br.call.sptk.many b0 = strnlen# ;; // rc = strnlen(src, n);
add len = 1, rc // include the null in len add len = 1, rc // include the null in len
mov gp = tmp mov gp = tmp
mov out0 = dest ;; mov out0 = dest ;;

View File

@ -51,7 +51,7 @@ ln2 = 0.6931471805599453094172321214581766L;
GET_LDOUBLE_WORDS64(hx,lx,x); GET_LDOUBLE_WORDS64(hx,lx,x);
if(hx<0x3fff000000000000LL) { /* x < 1 */ if(hx<0x3fff000000000000LL) { /* x < 1 */
return (x-x)/(x-x); return (x-x)/(x-x);
} else if(hx >=0x401b000000000000LL) { /* x > 2**28 */ } else if(hx >=0x4035000000000000LL) { /* x > 2**54 */
if(hx >=0x7fff000000000000LL) { /* x is inf of NaN */ if(hx >=0x7fff000000000000LL) { /* x is inf of NaN */
return x+x; return x+x;
} else } else

View File

@ -434,6 +434,16 @@ elf_machine_rela (struct link_map *map, const Elf32_Rela *reloc,
case R_SPARC_HI22: case R_SPARC_HI22:
*reloc_addr = (*reloc_addr & 0xffc00000) | (value >> 10); *reloc_addr = (*reloc_addr & 0xffc00000) | (value >> 10);
break; break;
case R_SPARC_UA16:
((unsigned char *) reloc_addr) [0] = value >> 8;
((unsigned char *) reloc_addr) [1] = value;
break;
case R_SPARC_UA32:
((unsigned char *) reloc_addr) [0] = value >> 24;
((unsigned char *) reloc_addr) [1] = value >> 16;
((unsigned char *) reloc_addr) [2] = value >> 8;
((unsigned char *) reloc_addr) [3] = value;
break;
#endif #endif
case R_SPARC_NONE: /* Alright, Wilbur. */ case R_SPARC_NONE: /* Alright, Wilbur. */
break; break;

View File

@ -338,6 +338,16 @@ elf_machine_rela (struct link_map *map, const Elf64_Rela *reloc,
elf_machine_fixup_plt(map, 0, reloc, reloc_addr, value); elf_machine_fixup_plt(map, 0, reloc, reloc_addr, value);
break; break;
#ifndef RTLD_BOOTSTRAP #ifndef RTLD_BOOTSTRAP
case R_SPARC_UA16:
((unsigned char *) reloc_addr) [0] = value >> 8;
((unsigned char *) reloc_addr) [1] = value;
break;
case R_SPARC_UA32:
((unsigned char *) reloc_addr) [0] = value >> 24;
((unsigned char *) reloc_addr) [1] = value >> 16;
((unsigned char *) reloc_addr) [2] = value >> 8;
((unsigned char *) reloc_addr) [3] = value;
break;
case R_SPARC_UA64: case R_SPARC_UA64:
if (! ((long) reloc_addr & 3)) if (! ((long) reloc_addr & 3))
{ {

View File

@ -163,6 +163,7 @@ weak_alias (__libc_sigaction, sigaction)
#define RESTORE2(name, syscall) \ #define RESTORE2(name, syscall) \
asm \ asm \
( \ ( \
".text\n" \
" .align 16\n" \ " .align 16\n" \
"__" #name ":\n" \ "__" #name ":\n" \
" movl $" #syscall ", %eax\n" \ " movl $" #syscall ", %eax\n" \
@ -179,6 +180,7 @@ RESTORE (restore_rt, __NR_rt_sigreturn)
# define RESTORE2(name, syscall) \ # define RESTORE2(name, syscall) \
asm \ asm \
( \ ( \
".text\n" \
" .align 8\n" \ " .align 8\n" \
"__" #name ":\n" \ "__" #name ":\n" \
" popl %eax\n" \ " popl %eax\n" \

View File

@ -48,6 +48,7 @@ struct sigcontext
unsigned long int sc_br[8]; /* branch registers */ unsigned long int sc_br[8]; /* branch registers */
unsigned long int sc_gr[32]; /* general registers (static partition) */ unsigned long int sc_gr[32]; /* general registers (static partition) */
struct ia64_fpreg sc_fr[128]; /* floating-point registers */ struct ia64_fpreg sc_fr[128]; /* floating-point registers */
unsigned long int sc_rsvd[16];/* reserved for future use */
/* sc_mask is actually an sigset_t but we don't want to /* sc_mask is actually an sigset_t but we don't want to
* include the kernel headers here. */ * include the kernel headers here. */