]> git.ipfire.org Git - thirdparty/glibc.git/commitdiff
Update.
authorUlrich Drepper <drepper@redhat.com>
Fri, 27 Nov 1998 11:34:40 +0000 (11:34 +0000)
committerUlrich Drepper <drepper@redhat.com>
Fri, 27 Nov 1998 11:34:40 +0000 (11:34 +0000)
1998-09-03  Philip Blundell  <pb@nexus.co.uk>

* 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
<bits/endian.h>, make it the same as __BYTE_ORDER.

1998-11-27  Ulrich Drepper  <drepper@cygnus.com>

* 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 <scottb@corelcomputer.com>.

1998-11-26  Andreas Schwab  <schwab@issan.cs.uni-dortmund.de>

* Makeconfig ($(common-objpfx)sysd-dirs): Use automatic variables
if possible.
($(common-objpfx)sysd-sorted): Likewise.

1998-11-27  Andreas Jaeger  <aj@arthur.rhein-neckar.de>

* 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  <aj@arthur.rhein-neckar.de>

* math/math.h: Add brace to correct #if expression.

13 files changed:
ChangeLog
Makeconfig
math/math.h
math/math_private.h
scripts/config.sub
string/endian.h
sysdeps/arm/bits/endian.h
sysdeps/arm/dl-machine.h
sysdeps/libm-ieee754/e_atan2.c
sysdeps/libm-ieee754/e_log.c
sysdeps/libm-ieee754/s_trunc.c
sysdeps/libm-ieee754/s_truncf.c
sysdeps/mips/mul_1.S

index fdebe7baf1934897c6026a66a894b207dcf413fe..13ec054646ab8e6f7a3ed00bc690856a1683f76e 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,45 @@
+1998-09-03  Philip Blundell  <pb@nexus.co.uk> 
+       * 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 
+       <bits/endian.h>, make it the same as __BYTE_ORDER. 
+1998-11-27  Ulrich Drepper  <drepper@cygnus.com>
+
+       * 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 <scottb@corelcomputer.com>.
+
+1998-11-26  Andreas Schwab  <schwab@issan.cs.uni-dortmund.de> 
+       * Makeconfig ($(common-objpfx)sysd-dirs): Use automatic variables 
+       if possible. 
+       ($(common-objpfx)sysd-sorted): Likewise. 
+1998-11-27  Andreas Jaeger  <aj@arthur.rhein-neckar.de> 
+       * 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  <aj@arthur.rhein-neckar.de> 
+       * math/math.h: Add brace to correct #if expression. 
 1998-11-26  Philip Blundell  <philb@gnu.org> 
  
        Undo change of 1998-11-12: 
index ac3834af50a4a6f2369537f59fa3f3c17fc981ad..962f702d55c463e5da5fcbbe26b95c238b1e7f61 100644 (file)
@@ -779,23 +779,22 @@ $(common-objpfx)sysd-dirs: $(common-objpfx)config.make $(all-Subdirs-files)
                END { printf "sysdep-subdirs =%s\n", subdirs;           \
                      printf "sysdep-inhibit-subdirs =%s\n", inhibit;   \
                      print "sysd-dirs-done = t" }'                     \
-              /dev/null $(all-Subdirs-files) > $@-tmp
+              $(patsubst $<,/dev/null,$^) > $@-tmp
        mv -f $@-tmp $@
 
 all-Depend-files = $(wildcard $(..)*/Depend)
 $(common-objpfx)sysd-sorted: $(..)scripts/gen-sorted.awk $(all-Depend-files) \
                             $(common-objpfx)sysd-dirs $(..)Makeconfig
-       (files="$(all-Depend-files)";                                   \
-        for f in $$files; do                                           \
-          dir=`echo $$f | sed 's@^$(..)\(.*\)/[^/]*$$@\1@'`;           \
+       (dirs='$(patsubst $(..)%/Depend,%,$(filter %/Depend, $^))';     \
+        for d in $$dirs; do                                            \
           while read on; do                                            \
-            echo "depend $$dir $$on";                                  \
-          done < $$f;                                                  \
+            echo "depend $$d $$on";                                    \
+          done < $$d/Depend;                                           \
         done;                                                          \
         for f in $(all-subdirs); do                                    \
           echo $$f;                                                    \
         done                                                           \
-       ) | $(AWK) -f $(..)scripts/gen-sorted.awk > $@-tmp
+       ) | $(AWK) -f $< > $@-tmp
        mv -f $@-tmp $@
 
 endif # Makeconfig not yet included
index 42f32eef14ecea71bfceeaaee1935908cf78dbb1..d95755f09af20a85892278fe3e06779d32123a0b 100644 (file)
@@ -83,7 +83,7 @@ __BEGIN_DECLS
 # undef        _Mdouble_
 # undef        __MATH_PRECNAME
 
-# if __STDC__ - 0 || __GNUC__ - 0 && !defined __NO_LONG_DOUBLE_MATH
+# if (__STDC__ - 0 || __GNUC__ - 0) && !defined __NO_LONG_DOUBLE_MATH
 /* Include the file of declarations again, this time using `long double'
    instead of `double' and appending l to each function name.  */
 
@@ -166,43 +166,68 @@ enum
   };
 
 /* Return number of classification appropriate for X.  */
+#ifdef __NO_LONG_DOUBLE_MATH
+# define fpclassify(x) \
+     (sizeof (x) == sizeof (float) ? __fpclassifyf (x) : __fpclassify (x))
+#else
 # define fpclassify(x) \
      (sizeof (x) == sizeof (float) ?                                         \
         __fpclassifyf (x)                                                    \
       : sizeof (x) == sizeof (double) ?                                              \
         __fpclassify (x) : __fpclassifyl (x))
+#endif
 
 /* Return nonzero value if sign of X is negative.  */
+#ifdef __NO_LONG_DOUBLE_MATH
+# define signbit(x) \
+     (sizeof (x) == sizeof (float) ? __signbitf (x) : __signbit (x))
+#else
 # define signbit(x) \
      (sizeof (x) == sizeof (float) ?                                         \
         __signbitf (x)                                                       \
       : sizeof (x) == sizeof (double) ?                                              \
         __signbit (x) : __signbitl (x))
+#endif
 
 /* Return nonzero value if X is not +-Inf or NaN.  */
+#ifdef __NO_LONG_DOUBLE_MATH
+# define isfinite(x) \
+     (sizeof (x) == sizeof (float) ? __finitef (x) : __finite (x))
+#else
 # define isfinite(x) \
      (sizeof (x) == sizeof (float) ?                                         \
         __finitef (x)                                                        \
       : sizeof (x) == sizeof (double) ?                                              \
         __finite (x) : __finitel (x))
+#endif
 
 /* Return nonzero value if X is neither zero, subnormal, Inf, nor NaN.  */
 # define isnormal(x) (fpclassify (x) == FP_NORMAL)
 
 /* Return nonzero value if X is a NaN.  We could use `fpclassify' but
    we already have this functions `__isnan' and it is faster.  */
+#ifdef __NO_LONG_DOUBLE_MATH
+# define isnan(x) \
+     (sizeof (x) == sizeof (float) ? __isnanf (x) : __isnan (x))
+#else
 # define isnan(x) \
      (sizeof (x) == sizeof (float) ?                                         \
         __isnanf (x)                                                         \
       : sizeof (x) == sizeof (double) ?                                              \
         __isnan (x) : __isnanl (x))
+#endif
 
 /* Return nonzero value is X is positive or negative infinity.  */
+#ifdef __NO_LONG_DOUBLE_MATH
+# define isinf(x) \
+     (sizeof (x) == sizeof (float) ? __isinff (x) : __isinf (x))
+#else
 # define isinf(x) \
      (sizeof (x) == sizeof (float) ?                                         \
         __isinff (x)                                                         \
       : sizeof (x) == sizeof (double) ?                                              \
         __isinf (x) : __isinfl (x))
+#endif
 
 #endif /* Use ISO C 9X.  */
 
index 6d51930230f2a2544772ce887f22f37178be6972..906b1dabbab3b7e7ad23bc40dd5c36e0a4d6a99f 100644 (file)
@@ -34,7 +34,7 @@
 /* A union which permits us to convert between a double and two 32 bit
    ints.  */
 
-#if BYTE_ORDER == BIG_ENDIAN
+#if __FLOAT_WORD_ORDER == BIG_ENDIAN
 
 typedef union
 {
@@ -48,7 +48,7 @@ typedef union
 
 #endif
 
-#if BYTE_ORDER == LITTLE_ENDIAN
+#if __FLOAT_WORD_ORDER == LITTLE_ENDIAN
 
 typedef union
 {
@@ -150,7 +150,7 @@ do {                                                                \
 /* A union which permits us to convert between a long double and
    three 32 bit ints.  */
 
-#if BYTE_ORDER == BIG_ENDIAN
+#if __FLOAT_WORD_ORDER == BIG_ENDIAN
 
 typedef union
 {
@@ -166,7 +166,7 @@ typedef union
 
 #endif
 
-#if BYTE_ORDER == LITTLE_ENDIAN
+#if __FLOAT_WORD_ORDER == LITTLE_ENDIAN
 
 typedef union
 {
index 213a6d47d67831d733d74e11867cd473c7cfb635..aac909889c382e5bca6ad8c6573073951c929d2d 100755 (executable)
@@ -182,7 +182,7 @@ case $basic_machine in
              | sparc64-* | mips64-* | mipsel-* \
              | mips64el-* | mips64orion-* | mips64orionel-*  \
              | mipstx39-* | mipstx39el-* \
-             | f301-*)
+             | f301-* | armv*-*)
                ;;
        # Recognize the various machine names and aliases which stand
        # for a CPU type and a company and sometimes even an OS.
@@ -412,6 +412,10 @@ case $basic_machine in
                basic_machine=i486-ncr
                os=-sysv4
                ;;
+       netwinder) 
+               basic_machine=armv4l-ccc 
+               os=-linux 
+               ;;
        news | news700 | news800 | news900)
                basic_machine=m68k-sony
                os=-newsos
@@ -802,6 +806,9 @@ case $basic_machine in
        *-acorn)
                os=-riscix1.2
                ;;
+       arm*-ccc) 
+               os=-linux 
+               ;;
        arm*-semi)
                os=-aout
                ;;
index 03e802f6cb908e9f200a4c77e6ac91356649f108..109678aeaada8a53968f1e168bd359b2e62a1f6d 100644 (file)
 /* This file defines `__BYTE_ORDER' for the particular machine.  */
 #include <bits/endian.h>
 
+/* Some machines may need to use a different endianness for floating point
+   values.  */
+#ifndef __FLOAT_WORD_ORDER
+# define __FLOAT_WORD_ORDER __BYTE_ORDER
+#endif
+
 #ifdef __USE_BSD
 # define LITTLE_ENDIAN __LITTLE_ENDIAN
 # define BIG_ENDIAN    __BIG_ENDIAN
index ad3b5393bcf6b35f61120b992eec939886a944dc..7fe486e89d9b72b652c2a95a86a295337316e936 100644 (file)
@@ -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
index 66ab4c6de2e06e666ea746c09c33fd54243f2f44..53aa806ec2b579baa3b05e2df4e0c564fef89901 100644 (file)
@@ -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:
          {
index 4bf5f570861ba38a21399b634e1bef6f9867c145..ae7d759a9fed3fb387db163a6519e4046d43bc03 100644 (file)
@@ -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 */
index 5b8c7b3ade2ef3a2120fffd3efe16602699d571f..38ea069c46970101709bbea46a7663e5c8f08318 100644 (file)
@@ -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;
 
index 721dce5a55de107e8843433ea5106221dc1bcd03..07b4951bcb72cf03115d0bbfd5ce8816bc15db07 100644 (file)
@@ -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)
     {
index 3e7b133c37af236aa234ec4fbd9d5f69ce43628a..feb6b6f23a3c36d2b8a4f3a8a553fceab6e1c1f4 100644 (file)
@@ -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
     {
index 184aae6fa13099917990e1f1b469eec55b58bb12..aeaf083d89e60d88d53946ca17452392ce90e474 100644 (file)
@@ -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