about summary refs log tree commit diff
path: root/sysdeps
diff options
context:
space:
mode:
Diffstat (limited to 'sysdeps')
-rw-r--r--sysdeps/arm/bits/endian.h3
-rw-r--r--sysdeps/arm/dl-machine.h8
-rw-r--r--sysdeps/libm-ieee754/e_atan2.c2
-rw-r--r--sysdeps/libm-ieee754/e_log.c5
-rw-r--r--sysdeps/libm-ieee754/s_trunc.c4
-rw-r--r--sysdeps/libm-ieee754/s_truncf.c4
-rw-r--r--sysdeps/mips/mul_1.S4
7 files changed, 20 insertions, 10 deletions
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 <bits/endian.h> directly; include <endian.h> 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 <drepper@cygnus.com>, 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 <drepper@cygnus.com>, 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