From 48252123bcf7a2ceed907a51fea74897fd601769 Mon Sep 17 00:00:00 2001 From: Ulrich Drepper Date: Fri, 27 Nov 1998 11:34:40 +0000 Subject: Update. 1998-09-03 Philip Blundell * sysdeps/arm/bits/endian.h (__FLOAT_WORD_ORDER): Define to big endian. * math/math_private.h: Use __FLOAT_WORD_ORDER rather than BYTE_ORDER. * string/endian.h: If __FLOAT_WORD_ORDER wasn't defined by , make it the same as __BYTE_ORDER. 1998-11-27 Ulrich Drepper * math/math.h: Avoid using long double functions in generic macros if __NO_LONG_DOUBLE_MATH. * sysdeps/arm/dl-machine.h: Fix handling of weak undefined symbols during bootstrapping. * scripts/config.sub: Add Netwinder specific matches. Patch by Scott Bambrough . 1998-11-26 Andreas Schwab * Makeconfig ($(common-objpfx)sysd-dirs): Use automatic variables if possible. ($(common-objpfx)sysd-sorted): Likewise. 1998-11-27 Andreas Jaeger * sysdeps/libm-ieee754/e_log.c (__ieee754_log): Add declaration of local variables t1,t2 only if needed. * sysdeps/libm-ieee754/e_atan2.c: Added braces to avoid compiler warnings. * sysdeps/libm-ieee754/s_truncf.c (__truncf): Likewise. * sysdeps/libm-ieee754/s_trunc.c (__trunc): Likewise. * sysdeps/mips/mul_1.S (Loop): Add closing comment to avoid warning. 1998-11-27 Andreas Jaeger * math/math.h: Add brace to correct #if expression. --- sysdeps/arm/bits/endian.h | 3 ++- sysdeps/arm/dl-machine.h | 8 +++++++- sysdeps/libm-ieee754/e_atan2.c | 2 +- sysdeps/libm-ieee754/e_log.c | 5 ++++- sysdeps/libm-ieee754/s_trunc.c | 4 ++-- sysdeps/libm-ieee754/s_truncf.c | 4 ++-- sysdeps/mips/mul_1.S | 4 ++-- 7 files changed, 20 insertions(+), 10 deletions(-) (limited to 'sysdeps') diff --git a/sysdeps/arm/bits/endian.h b/sysdeps/arm/bits/endian.h index ad3b5393bc..7fe486e89d 100644 --- a/sysdeps/arm/bits/endian.h +++ b/sysdeps/arm/bits/endian.h @@ -1,7 +1,8 @@ -/* ARM is little-endian. */ +/* ARM is (usually) little-endian but with a big-endian FPU. */ #ifndef _ENDIAN_H # error "Never use directly; include instead." #endif #define __BYTE_ORDER __LITTLE_ENDIAN +#define __FLOAT_WORD_ORDER __BIG_ENDIAN diff --git a/sysdeps/arm/dl-machine.h b/sysdeps/arm/dl-machine.h index 66ab4c6de2..53aa806ec2 100644 --- a/sysdeps/arm/dl-machine.h +++ b/sysdeps/arm/dl-machine.h @@ -416,7 +416,13 @@ elf_machine_rel (struct link_map *map, const Elf32_Rel *reloc, break; case R_ARM_GLOB_DAT: case R_ARM_JUMP_SLOT: - *reloc_addr = value; +#ifdef RTLD_BOOTSTRAP + /* Fix weak undefined references. */ + if (sym != NULL && sym->st_value == 0) + *reloc_addr = 0; + else +#endif + *reloc_addr = value; break; case R_ARM_ABS32: { diff --git a/sysdeps/libm-ieee754/e_atan2.c b/sysdeps/libm-ieee754/e_atan2.c index 4bf5f57086..ae7d759a9f 100644 --- a/sysdeps/libm-ieee754/e_atan2.c +++ b/sysdeps/libm-ieee754/e_atan2.c @@ -74,7 +74,7 @@ pi_lo = 1.2246467991473531772E-16; /* 0x3CA1A626, 0x33145C07 */ if(((ix|((lx|-lx)>>31))>0x7ff00000)|| ((iy|((ly|-ly)>>31))>0x7ff00000)) /* x or y is NaN */ return x+y; - if((hx-0x3ff00000|lx)==0) return __atan(y); /* x=1.0 */ + if(((hx-0x3ff00000)|lx)==0) return __atan(y); /* x=1.0 */ m = ((hy>>31)&1)|((hx>>30)&2); /* 2*sign(x)+sign(y) */ /* when y = 0 */ diff --git a/sysdeps/libm-ieee754/e_log.c b/sysdeps/libm-ieee754/e_log.c index 5b8c7b3ade..38ea069c46 100644 --- a/sysdeps/libm-ieee754/e_log.c +++ b/sysdeps/libm-ieee754/e_log.c @@ -103,7 +103,10 @@ static double zero = 0.0; double x; #endif { - double hfsq,f,s,z,R,w,t1,t2,dk,t11,t12,t21,t22,w2,zw2; + double hfsq,f,s,z,R,w,dk,t11,t12,t21,t22,w2,zw2; +#ifdef DO_NOT_USE_THIS + double t1,t2; +#endif int32_t k,hx,i,j; u_int32_t lx; diff --git a/sysdeps/libm-ieee754/s_trunc.c b/sysdeps/libm-ieee754/s_trunc.c index 721dce5a55..07b4951bcb 100644 --- a/sysdeps/libm-ieee754/s_trunc.c +++ b/sysdeps/libm-ieee754/s_trunc.c @@ -1,5 +1,5 @@ /* Truncate argument to nearest integral value not larger than the argument. - Copyright (C) 1997 Free Software Foundation, Inc. + Copyright (C) 1997, 1998 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 1997. @@ -39,7 +39,7 @@ __trunc (double x) /* The magnitude of the number is < 1 so the result is +-0. */ INSERT_WORDS (x, sx, 0); else - INSERT_WORDS (x, sx | i0 & ~(0x000fffff >> j0), 0); + INSERT_WORDS (x, sx | (i0 & ~(0x000fffff >> j0)), 0); } else if (j0 > 51) { diff --git a/sysdeps/libm-ieee754/s_truncf.c b/sysdeps/libm-ieee754/s_truncf.c index 3e7b133c37..feb6b6f23a 100644 --- a/sysdeps/libm-ieee754/s_truncf.c +++ b/sysdeps/libm-ieee754/s_truncf.c @@ -1,5 +1,5 @@ /* Truncate argument to nearest integral value not larger than the argument. - Copyright (C) 1997 Free Software Foundation, Inc. + Copyright (C) 1997, 1998 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 1997. @@ -38,7 +38,7 @@ __truncf (float x) /* The magnitude of the number is < 1 so the result is +-0. */ SET_FLOAT_WORD (x, sx); else - SET_FLOAT_WORD (x, sx | i0 & ~(0x007fffff >> j0)); + SET_FLOAT_WORD (x, sx | (i0 & ~(0x007fffff >> j0))); } else { diff --git a/sysdeps/mips/mul_1.S b/sysdeps/mips/mul_1.S index 184aae6fa1..aeaf083d89 100644 --- a/sysdeps/mips/mul_1.S +++ b/sysdeps/mips/mul_1.S @@ -1,7 +1,7 @@ /* MIPS __mpn_mul_1 -- Multiply a limb vector with a single limb and store the product in a second limb vector. -Copyright (C) 1995 Free Software Foundation, Inc. +Copyright (C) 1995, 1998 Free Software Foundation, Inc. This file is part of the GNU MP Library. @@ -74,7 +74,7 @@ $LC1: mflo $10 multu $8,$7 sw $10,0($4) addiu $4,$4,4 - addu $2,$9,$2 /* add high product limb and carry from addition + addu $2,$9,$2 /* add high product limb and carry from addition */ /* cool down phase 0 */ $LC0: mflo $10 -- cgit v1.2.3