fix namespace issues for lgamma, etc.
authorRich Felker <dalias@aerifal.cx>
Sat, 17 Mar 2012 01:16:32 +0000 (21:16 -0400)
committerRich Felker <dalias@aerifal.cx>
Sat, 17 Mar 2012 01:16:32 +0000 (21:16 -0400)
standard functions cannot depend on nonstandard symbols

src/internal/libm.h
src/math/jnf.c
src/math/lgamma.c
src/math/lgamma_r.c
src/math/lgammaf.c
src/math/lgammaf_r.c
src/math/lgammal.c

index 021c4e2a3ab0c37ca392517ccac3a5a4739656ab..2c2191f6343be73a185e90d8d220f6dec3e51bc6 100644 (file)
@@ -20,6 +20,8 @@
 
 #include "longdbl.h"
 
+#include "libc.h"
+
 union fshape {
        float value;
        uint32_t bits;
index 648db32b57350ab0101b7593de8d3446c8935bba..b0b36e6b42de541cd7a4cc82eba4221ee6790a44 100644 (file)
@@ -13,6 +13,7 @@
  * ====================================================
  */
 
+#define _GNU_SOURCE
 #include "libm.h"
 
 static const float
index 9af7eee4f684e07fb5acaf7bf29618cfd68bc94f..17b5aff06ec5d7b2860aa3f7fa4a3d7727d1dfc3 100644 (file)
@@ -1,9 +1,10 @@
-#define _GNU_SOURCE
 #include "libm.h"
 
+double __lgamma_r(double, int *);
+
 double lgamma(double x)
 {
-       return lgamma_r(x, &signgam);
+       return __lgamma_r(x, &signgam);
 }
 
 // FIXME
index 6baa0e52f7a54cd6588189af0c522f13be47987f..a8ef195651d68d52d8a34f1532c15029bbdd8968 100644 (file)
@@ -199,7 +199,7 @@ static double sin_pi(double x)
 }
 
 
-double lgamma_r(double x, int *signgamp)
+double __lgamma_r(double x, int *signgamp)
 {
        double t,y,z,nadj,p,p1,p2,p3,q,r,w;
        int32_t hx;
@@ -313,3 +313,5 @@ double lgamma_r(double x, int *signgamp)
                r = nadj - r;
        return r;
 }
+
+weak_alias(__lgamma_r, lgamma_r);
index aed98ba44ff94ba09d1051b87e7772d4af45c27f..932535344cf16c85fe9b86a814b8b8306fd5ddd6 100644 (file)
@@ -1,9 +1,10 @@
-#define _GNU_SOURCE
 #include "libm.h"
 
+float __lgammaf_r(float, int *);
+
 float lgammaf(float x)
 {
-       return lgamma_r(x, &signgam);
+       return __lgammaf_r(x, &signgam);
 }
 
 // FIXME
index c6280f5be41d509202f34a8d9a19243ed55e6f89..f1adcf69f3c7e4ba63d9a2b32479822bcb4986d3 100644 (file)
@@ -134,7 +134,7 @@ static float sin_pif(float x)
 }
 
 
-float lgammaf_r(float x, int *signgamp)
+float __lgammaf_r(float x, int *signgamp)
 {
        float t,y,z,nadj,p,p1,p2,p3,q,r,w;
        int32_t hx;
@@ -248,3 +248,5 @@ float lgammaf_r(float x, int *signgamp)
                r = nadj - r;
        return r;
 }
+
+weak_alias(__lgammaf_r, lgammaf_r);
index a33707ad30678993a2cf8cecedea3102562cb64b..5dd851a67cecfdffc7cc62cc097807c82a1bbb8e 100644 (file)
 #define _GNU_SOURCE
 #include "libm.h"
 
-long double lgammal(long double x)
-{
-       return lgammal_r(x, &signgam);
-}
-
 #if LDBL_MANT_DIG == 53 && LDBL_MAX_EXP == 1024
-long double lgammal_r(long double x, int *sg)
+long double __lgammal_r(long double x, int *sg)
 {
-       return lgamma_r(x, sg);
+       return __lgamma_r(x, sg);
 }
 #elif LDBL_MANT_DIG == 64 && LDBL_MAX_EXP == 16384
 static const long double
@@ -266,7 +261,7 @@ static long double sin_pi(long double x)
        return -y;
 }
 
-long double lgammal_r(long double x, int *sg) {
+long double __lgammal_r(long double x, int *sg) {
        long double t, y, z, nadj, p, p1, p2, q, r, w;
        int i, ix;
        uint32_t se, i0, i1;
@@ -392,3 +387,10 @@ long double lgammal_r(long double x, int *sg) {
        return r;
 }
 #endif
+
+long double lgammal(long double x)
+{
+       return __lgammal_r(x, &signgam);
+}
+
+weak_alias(__lgammal_r, lgammal_r);