소스 검색

Don't use __weak_reference() when a __strong_reference() is needed.

OpenLibm uses the __weak_reference() macro for platforms where double
and long double use the same layout. That way functions only need to be
provided by the library once. The point is, in this specific case we
want to use strong references; not weak references.

Strong references can be used to give a symbol a second name. If you
look at the resulting object file, you will have two symbols with the
same offset and size. Weak references are different, in the sense that
they are marked in such a way that they act as fallbacks. They are only
used if an explicitly matching symbol is missing.
Ed Schouten 10 년 전
부모
커밋
9ab9db387d
29개의 변경된 파일32개의 추가작업 그리고 32개의 파일을 삭제
  1. 1 1
      src/e_acos.c
  2. 1 1
      src/e_asin.c
  3. 1 1
      src/e_atan2.c
  4. 1 1
      src/e_hypot.c
  5. 1 1
      src/e_remainder.c
  6. 1 1
      src/e_sqrt.c
  7. 1 1
      src/s_atan.c
  8. 1 1
      src/s_cbrt.c
  9. 1 1
      src/s_ceil.c
  10. 1 1
      src/s_cos.c
  11. 1 1
      src/s_cproj.c
  12. 1 1
      src/s_csqrt.c
  13. 1 1
      src/s_exp2.c
  14. 1 1
      src/s_floor.c
  15. 1 1
      src/s_fma.c
  16. 1 1
      src/s_frexp.c
  17. 1 1
      src/s_isinf.c
  18. 1 1
      src/s_isnan.c
  19. 1 1
      src/s_logb.c
  20. 1 1
      src/s_nan.c
  21. 3 3
      src/s_nextafter.c
  22. 1 1
      src/s_remquo.c
  23. 1 1
      src/s_rint.c
  24. 2 2
      src/s_scalbn.c
  25. 1 1
      src/s_sin.c
  26. 1 1
      src/s_sincos.c
  27. 1 1
      src/s_tan.c
  28. 1 1
      src/s_trunc.c
  29. 1 1
      src/w_cabs.c

+ 1 - 1
src/e_acos.c

@@ -107,5 +107,5 @@ __ieee754_acos(double x)
 }
 
 #if LDBL_MANT_DIG == 53
-__weak_reference(acos, acosl);
+__strong_reference(acos, acosl);
 #endif

+ 1 - 1
src/e_asin.c

@@ -113,5 +113,5 @@ __ieee754_asin(double x)
 }
 
 #if LDBL_MANT_DIG == 53
-__weak_reference(asin, asinl);
+__strong_reference(asin, asinl);
 #endif

+ 1 - 1
src/e_atan2.c

@@ -125,5 +125,5 @@ __ieee754_atan2(double y, double x)
 }
 
 #if LDBL_MANT_DIG == 53
-__weak_reference(atan2, atan2l);
+__strong_reference(atan2, atan2l);
 #endif

+ 1 - 1
src/e_hypot.c

@@ -127,5 +127,5 @@ __ieee754_hypot(double x, double y)
 }
 
 #if LDBL_MANT_DIG == 53
-__weak_reference(hypot, hypotl);
+__strong_reference(hypot, hypotl);
 #endif

+ 1 - 1
src/e_remainder.c

@@ -75,5 +75,5 @@ __ieee754_remainder(double x, double p)
 }
 
 #if LDBL_MANT_DIG == 53
-__weak_reference(remainder, remainderl);
+__strong_reference(remainder, remainderl);
 #endif

+ 1 - 1
src/e_sqrt.c

@@ -189,7 +189,7 @@ __ieee754_sqrt(double x)
 }
 
 #if (LDBL_MANT_DIG == 53)
-__weak_reference(sqrt, sqrtl);
+__strong_reference(sqrt, sqrtl);
 #endif
 
 /*

+ 1 - 1
src/s_atan.c

@@ -120,5 +120,5 @@ atan(double x)
 }
 
 #if LDBL_MANT_DIG == 53
-__weak_reference(atan, atanl);
+__strong_reference(atan, atanl);
 #endif

+ 1 - 1
src/s_cbrt.c

@@ -114,5 +114,5 @@ cbrt(double x)
 }
 
 #if (LDBL_MANT_DIG == 53)
-__weak_reference(cbrt, cbrtl);
+__strong_reference(cbrt, cbrtl);
 #endif

+ 1 - 1
src/s_ceil.c

@@ -73,5 +73,5 @@ ceil(double x)
 }
 
 #if LDBL_MANT_DIG == 53
-__weak_reference(ceil, ceill);
+__strong_reference(ceil, ceill);
 #endif

+ 1 - 1
src/s_cos.c

@@ -85,5 +85,5 @@ cos(double x)
 }
 
 #if (LDBL_MANT_DIG == 53)
-__weak_reference(cos, cosl);
+__strong_reference(cos, cosl);
 #endif

+ 1 - 1
src/s_cproj.c

@@ -43,5 +43,5 @@ cproj(double complex z)
 }
 
 #if LDBL_MANT_DIG == 53
-__weak_reference(cproj, cprojl);
+__strong_reference(cproj, cprojl);
 #endif

+ 1 - 1
src/s_csqrt.c

@@ -110,5 +110,5 @@ csqrt(double complex z)
 }
 
 #if LDBL_MANT_DIG == 53
-__weak_reference(csqrt, csqrtl);
+__strong_reference(csqrt, csqrtl);
 #endif

+ 1 - 1
src/s_exp2.c

@@ -392,5 +392,5 @@ exp2(double x)
 }
 
 #if (LDBL_MANT_DIG == 53)
-__weak_reference(exp2, exp2l);
+__strong_reference(exp2, exp2l);
 #endif

+ 1 - 1
src/s_floor.c

@@ -74,5 +74,5 @@ floor(double x)
 }
 
 #if LDBL_MANT_DIG == 53
-__weak_reference(floor, floorl);
+__strong_reference(floor, floorl);
 #endif

+ 1 - 1
src/s_fma.c

@@ -280,5 +280,5 @@ fma(double x, double y, double z)
 }
 
 #if (LDBL_MANT_DIG == 53)
-__weak_reference(fma, fmal);
+__strong_reference(fma, fmal);
 #endif

+ 1 - 1
src/s_frexp.c

@@ -52,5 +52,5 @@ frexp(double x, int *eptr)
 }
 
 #if (LDBL_MANT_DIG == 53)
-__weak_reference(frexp, frexpl);
+__strong_reference(frexp, frexpl);
 #endif

+ 1 - 1
src/s_isinf.c

@@ -62,4 +62,4 @@ __isinfl(long double e)
 }
 #endif
 
-__weak_reference(__isinff, isinff);
+__strong_reference(__isinff, isinff);

+ 1 - 1
src/s_isnan.c

@@ -63,4 +63,4 @@ __isnanl(long double e)
 }
 #endif
 
-__weak_reference(__isnanf, isnanf);
+__strong_reference(__isnanf, isnanf);

+ 1 - 1
src/s_logb.c

@@ -45,5 +45,5 @@ logb(double x)
 }
 
 #if (LDBL_MANT_DIG == 53)
-__weak_reference(logb, logbl);
+__strong_reference(logb, logbl);
 #endif

+ 1 - 1
src/s_nan.c

@@ -120,5 +120,5 @@ nanf(const char *s)
 }
 
 #if (LDBL_MANT_DIG == 53)
-__weak_reference(nan, nanl);
+__strong_reference(nan, nanl);
 #endif

+ 3 - 3
src/s_nextafter.c

@@ -77,7 +77,7 @@ nextafter(double x, double y)
 }
 
 #if (LDBL_MANT_DIG == 53)
-__weak_reference(nextafter, nexttoward);
-__weak_reference(nextafter, nexttowardl);
-__weak_reference(nextafter, nextafterl);
+__strong_reference(nextafter, nexttoward);
+__strong_reference(nextafter, nexttowardl);
+__strong_reference(nextafter, nextafterl);
 #endif

+ 1 - 1
src/s_remquo.c

@@ -154,5 +154,5 @@ fixup:
 }
 
 #if LDBL_MANT_DIG == 53
-__weak_reference(remquo, remquol);
+__strong_reference(remquo, remquol);
 #endif

+ 1 - 1
src/s_rint.c

@@ -88,5 +88,5 @@ rint(double x)
 }
 
 #if (LDBL_MANT_DIG == 53)
-__weak_reference(rint, rintl);
+__strong_reference(rint, rintl);
 #endif

+ 2 - 2
src/s_scalbn.c

@@ -59,8 +59,8 @@ scalbn (double x, int n)
 }
 
 #if (LDBL_MANT_DIG == 53)
-__weak_reference(scalbn, ldexpl);
-__weak_reference(scalbn, scalbnl);
+__strong_reference(scalbn, ldexpl);
+__strong_reference(scalbn, scalbnl);
 #endif
 
 __strong_reference(scalbn, ldexp);

+ 1 - 1
src/s_sin.c

@@ -85,5 +85,5 @@ sin(double x)
 }
 
 #if (LDBL_MANT_DIG == 53)
-__weak_reference(sin, sinl);
+__strong_reference(sin, sinl);
 #endif

+ 1 - 1
src/s_sincos.c

@@ -146,5 +146,5 @@ sincos(double x, double * s, double * c)
 }
 
 #if (LDBL_MANT_DIG == 53)
-__weak_reference(sincos, sincosl);
+__strong_reference(sincos, sincosl);
 #endif

+ 1 - 1
src/s_tan.c

@@ -79,5 +79,5 @@ tan(double x)
 }
 
 #if (LDBL_MANT_DIG == 53)
-__weak_reference(tan, tanl);
+__strong_reference(tan, tanl);
 #endif

+ 1 - 1
src/s_trunc.c

@@ -63,5 +63,5 @@ trunc(double x)
 }
 
 #if LDBL_MANT_DIG == 53
-__weak_reference(trunc, truncl);
+__strong_reference(trunc, truncl);
 #endif

+ 1 - 1
src/w_cabs.c

@@ -21,5 +21,5 @@ cabs(double complex z)
 }
 
 #if LDBL_MANT_DIG == 53
-__weak_reference(cabs, cabsl);
+__strong_reference(cabs, cabsl);
 #endif