fix double-processing of DT_RELR relocations in ldso relocating itself
[musl] / src / math / lgammal.c
index 55ec532..abbd4fc 100644 (file)
 
 #define _GNU_SOURCE
 #include "libm.h"
-#include "libc.h"
 
 #if LDBL_MANT_DIG == 53 && LDBL_MAX_EXP == 1024
-double __lgamma_r(double x, int *sg);
-
 long double __lgammal_r(long double x, int *sg)
 {
        return __lgamma_r(x, sg);
@@ -340,15 +337,17 @@ long double __lgammal_r(long double x, int *sg) {
                r = nadj - r;
        return r;
 }
+#elif LDBL_MANT_DIG == 113 && LDBL_MAX_EXP == 16384
+// TODO: broken implementation to make things compile
+long double __lgammal_r(long double x, int *sg)
+{
+       return __lgamma_r(x, sg);
+}
 #endif
 
-#if (LDBL_MANT_DIG == 53 && LDBL_MAX_EXP == 1024) || (LDBL_MANT_DIG == 64 && LDBL_MAX_EXP == 16384)
-extern int __signgam;
-
 long double lgammal(long double x)
 {
        return __lgammal_r(x, &__signgam);
 }
 
 weak_alias(__lgammal_r, lgammal_r);
-#endif