fix double-processing of DT_RELR relocations in ldso relocating itself
[musl] / src / math / j0f.c
index 79bab62..fab554a 100644 (file)
@@ -13,6 +13,7 @@
  * ====================================================
  */
 
+#define _GNU_SOURCE
 #include "libm.h"
 
 static float pzerof(float), qzerof(float);
@@ -201,14 +202,14 @@ static const float pS2[5] = {
 static float pzerof(float x)
 {
        const float *p,*q;
-       float z,r,s;
+       float_t z,r,s;
        uint32_t ix;
 
        GET_FLOAT_WORD(ix, x);
        ix &= 0x7fffffff;
        if      (ix >= 0x41000000){p = pR8; q = pS8;}
-       else if (ix >= 0x40f71c58){p = pR5; q = pS5;}
-       else if (ix >= 0x4036db68){p = pR3; q = pS3;}
+       else if (ix >= 0x409173eb){p = pR5; q = pS5;}
+       else if (ix >= 0x4036d917){p = pR3; q = pS3;}
        else /*ix >= 0x40000000*/ {p = pR2; q = pS2;}
        z = 1.0f/(x*x);
        r = p[0]+z*(p[1]+z*(p[2]+z*(p[3]+z*(p[4]+z*p[5]))));
@@ -297,14 +298,14 @@ static const float qS2[6] = {
 static float qzerof(float x)
 {
        const float *p,*q;
-       float s,r,z;
+       float_t s,r,z;
        uint32_t ix;
 
        GET_FLOAT_WORD(ix, x);
        ix &= 0x7fffffff;
        if      (ix >= 0x41000000){p = qR8; q = qS8;}
-       else if (ix >= 0x40f71c58){p = qR5; q = qS5;}
-       else if (ix >= 0x4036db68){p = qR3; q = qS3;}
+       else if (ix >= 0x409173eb){p = qR5; q = qS5;}
+       else if (ix >= 0x4036d917){p = qR3; q = qS3;}
        else /*ix >= 0x40000000*/ {p = qR2; q = qS2;}
        z = 1.0f/(x*x);
        r = p[0]+z*(p[1]+z*(p[2]+z*(p[3]+z*(p[4]+z*p[5]))));