Revert "math: Remove the error handling wrapper from fmod and fmodf" sandbox/dkson95/2.39_crypt accepted/tizen/base/toolchain/20240319.005214
authorDongkyun Son <dongkyun.s@samsung.com>
Mon, 18 Mar 2024 06:05:23 +0000 (15:05 +0900)
committerDongkyun Son <dongkyun.s@samsung.com>
Mon, 18 Mar 2024 06:05:23 +0000 (15:05 +0900)
This reverts commit 16439f419b270184ec501c531bf20d83b6745fb0.

Change-Id: Ib2aac240bb03a9b4e3198ebe5f2389a42f5f3c04

38 files changed:
math/Versions
math/w_fmod_compat.c
math/w_fmodf_compat.c
sysdeps/i386/fpu/w_fmod_compat.c [deleted file]
sysdeps/i386/fpu/w_fmodf_compat.c [deleted file]
sysdeps/ieee754/dbl-64/e_fmod.c
sysdeps/ieee754/dbl-64/math_config.h
sysdeps/ieee754/dbl-64/math_err.c
sysdeps/ieee754/dbl-64/w_fmod.c [deleted file]
sysdeps/ieee754/flt-32/e_fmodf.c
sysdeps/ieee754/flt-32/math_config.h
sysdeps/ieee754/flt-32/math_errf.c
sysdeps/ieee754/flt-32/w_fmodf.c [deleted file]
sysdeps/m68k/m680x0/fpu/w_fmod_compat.c [deleted file]
sysdeps/m68k/m680x0/fpu/w_fmodf_compat.c [deleted file]
sysdeps/unix/sysv/linux/aarch64/libm.abilist
sysdeps/unix/sysv/linux/alpha/libm.abilist
sysdeps/unix/sysv/linux/arm/be/libm.abilist
sysdeps/unix/sysv/linux/arm/le/libm.abilist
sysdeps/unix/sysv/linux/hppa/libm.abilist
sysdeps/unix/sysv/linux/m68k/coldfire/libm.abilist
sysdeps/unix/sysv/linux/microblaze/be/libm.abilist
sysdeps/unix/sysv/linux/microblaze/le/libm.abilist
sysdeps/unix/sysv/linux/mips/mips32/libm.abilist
sysdeps/unix/sysv/linux/mips/mips64/libm.abilist
sysdeps/unix/sysv/linux/nios2/libm.abilist
sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libm.abilist
sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libm.abilist
sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libm.abilist
sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libm.abilist
sysdeps/unix/sysv/linux/s390/s390-32/libm.abilist
sysdeps/unix/sysv/linux/s390/s390-64/libm.abilist
sysdeps/unix/sysv/linux/sh/be/libm.abilist
sysdeps/unix/sysv/linux/sh/le/libm.abilist
sysdeps/unix/sysv/linux/sparc/sparc32/libm.abilist
sysdeps/unix/sysv/linux/sparc/sparc64/libm.abilist
sysdeps/unix/sysv/linux/x86_64/64/libm.abilist
sysdeps/unix/sysv/linux/x86_64/x32/libm.abilist

index 26e15ce..59a78f6 100644 (file)
@@ -631,10 +631,6 @@ libm {
     # No SVID compatible error handling.
     hypotf; hypot;
   }
-  GLIBC_2.38 {
-    # No SVID compatible error handling.
-    fmod; fmodf;
-  }
   GLIBC_2.39 {
     # No SVID compatible error handling.
     exp10;
index bbb0e67..0d10f49 100644 (file)
 #include <math-svid-compat.h>
 #include <libm-alias-double.h>
 
-#if LIBM_SVID_COMPAT && SHLIB_COMPAT (libm, GLIBC_2_0, GLIBC_2_38)
+#if LIBM_SVID_COMPAT
 /* wrapper fmod */
 double
-__fmod_compat (double x, double y)
+__fmod (double x, double y)
 {
   if (__builtin_expect (isinf (x) || y == 0.0, 0)
       && _LIB_VERSION != _IEEE_ && !isnan (y) && !isnan (x))
@@ -32,12 +32,5 @@ __fmod_compat (double x, double y)
 
   return __ieee754_fmod (x, y);
 }
-compat_symbol (libm, __fmod_compat, fmod, GLIBC_2_0);
-# ifdef NO_LONG_DOUBLE
-weak_alias (__fmod_compat, fmodl)
-# endif
-# ifdef LONG_DOUBLE_COMPAT
-LONG_DOUBLE_COMPAT_CHOOSE_libm_fmodl (
-  compat_symbol (libm, __fmod_compat, fmodl, FIRST_VERSION_libm_fmodl), );
-# endif
+libm_alias_double (__fmod, fmod)
 #endif
index 38239e0..f75af17 100644 (file)
 #include <math-svid-compat.h>
 #include <libm-alias-float.h>
 
-#if LIBM_SVID_COMPAT && SHLIB_COMPAT (libm, GLIBC_2_0, GLIBC_2_38)
+#if LIBM_SVID_COMPAT
 /* wrapper fmodf */
 float
-__fmod_compatf (float x, float y)
+__fmodf (float x, float y)
 {
   if (__builtin_expect (isinf (x) || y == 0.0f, 0)
       && _LIB_VERSION != _IEEE_ && !isnan (y) && !isnan (x))
@@ -32,5 +32,5 @@ __fmod_compatf (float x, float y)
 
   return __ieee754_fmodf (x, y);
 }
-compat_symbol (libm, __fmod_compatf, fmodf, GLIBC_2_0);
+libm_alias_float (__fmod, fmod)
 #endif
diff --git a/sysdeps/i386/fpu/w_fmod_compat.c b/sysdeps/i386/fpu/w_fmod_compat.c
deleted file mode 100644 (file)
index 5ac9995..0000000
+++ /dev/null
@@ -1,14 +0,0 @@
-/* i386 provides an optimized __ieee752_fmod.  */
-#include <math-svid-compat.h>
-#ifdef SHARED
-# undef SHLIB_COMPAT
-# define SHLIB_COMPAT(a, b, c) 1
-# undef LIBM_SVID_COMPAT
-# define LIBM_SVID_COMPAT 1
-# undef compat_symbol
-# define compat_symbol(a, b, c, d)
-#endif
-#include <math/w_fmod_compat.c>
-#ifdef SHARED
-libm_alias_double (__fmod_compat, fmod)
-#endif
diff --git a/sysdeps/i386/fpu/w_fmodf_compat.c b/sysdeps/i386/fpu/w_fmodf_compat.c
deleted file mode 100644 (file)
index cc417e0..0000000
+++ /dev/null
@@ -1,14 +0,0 @@
-/* i386 provides an optimized __ieee752_fmodf.  */
-#include <math-svid-compat.h>
-#ifdef SHARED
-# undef SHLIB_COMPAT
-# define SHLIB_COMPAT(a, b, c) 1
-# undef LIBM_SVID_COMPAT
-# define LIBM_SVID_COMPAT 1
-# undef compat_symbol
-# define compat_symbol(a, b, c, d)
-#endif
-#include <math/w_fmodf_compat.c>
-#ifdef SHARED
-libm_alias_float (__fmod_compat, fmod)
-#endif
index 592f96f..caac5c2 100644 (file)
@@ -16,9 +16,7 @@
    License along with the GNU C Library; if not, see
    <https://www.gnu.org/licenses/>.  */
 
-#include <libm-alias-double.h>
 #include <libm-alias-finite.h>
-#include <math-svid-compat.h>
 #include <math.h>
 #include "math_config.h"
 
@@ -57,7 +55,7 @@
      }  */
 
 double
-__fmod (double x, double y)
+__ieee754_fmod (double x, double y)
 {
   uint64_t hx = asuint64 (x);
   uint64_t hy = asuint64 (y);
@@ -69,16 +67,11 @@ __fmod (double x, double y)
 
   /* Special cases:
      - If x or y is a Nan, NaN is returned.
-     - If x is an inifinity, a NaN is returned and EDOM is set.
+     - If x is an inifinity, a NaN is returned.
      - If y is zero, Nan is returned.
      - If x is +0/-0, and y is not zero, +0/-0 is returned.  */
-  if (__glibc_unlikely (hy == 0
-                       || hx >= EXPONENT_MASK || hy > EXPONENT_MASK))
-    {
-      if (is_nan (hx) || is_nan (hy))
-       return (x * y) / (x * y);
-      return __math_edom ((x * y) / (x * y));
-    }
+  if (__glibc_unlikely (hy == 0        || hx >= EXPONENT_MASK || hy > EXPONENT_MASK))
+    return (x * y) / (x * y);
 
   if (__glibc_unlikely (hx <= hy))
     {
@@ -160,11 +153,4 @@ __fmod (double x, double y)
 
   return make_double (mx, ey, sx);
 }
-strong_alias (__fmod, __ieee754_fmod)
 libm_alias_finite (__ieee754_fmod, __fmod)
-#if LIBM_SVID_COMPAT
-versioned_symbol (libm, __fmod, fmod, GLIBC_2_38);
-libm_alias_double_other (__fmod, fmod)
-#else
-libm_alias_double (__fmod, fmod)
-#endif
index ef87cfa..75e127d 100644 (file)
@@ -167,9 +167,6 @@ attribute_hidden double __math_invalid (double);
 
 /* Error handling using output checking, only for errno setting.  */
 
-/* Check if the result generated a demain error.  */
-attribute_hidden double __math_edom (double x);
-
 /* Check if the result overflowed to infinity.  */
 attribute_hidden double __math_check_oflow (double);
 /* Check if the result underflowed to 0.  */
index 8d7802d..7719e56 100644 (file)
@@ -33,12 +33,6 @@ with_errno (double y, int e)
 #define with_errno(x, e) (x)
 #endif
 
-attribute_hidden double
-__math_edom (double y)
-{
-  return with_errno (y, EDOM);
-}
-
 /* NOINLINE reduces code size.  */
 NOINLINE static double
 xflow (uint32_t sign, double y)
diff --git a/sysdeps/ieee754/dbl-64/w_fmod.c b/sysdeps/ieee754/dbl-64/w_fmod.c
deleted file mode 100644 (file)
index 1cc8931..0000000
+++ /dev/null
@@ -1 +0,0 @@
-/* Not needed.  */
index f6eaa40..cabaaca 100644 (file)
@@ -17,8 +17,6 @@
    <https://www.gnu.org/licenses/>.  */
 
 #include <libm-alias-finite.h>
-#include <libm-alias-float.h>
-#include <math-svid-compat.h>
 #include <math.h>
 #include "math_config.h"
 
@@ -57,7 +55,7 @@
      }  */
 
 float
-__fmodf (float x, float y)
+__ieee754_fmodf (float x, float y)
 {
   uint32_t hx = asuint (x);
   uint32_t hy = asuint (y);
@@ -72,13 +70,8 @@ __fmodf (float x, float y)
      - If x is an inifinity, a NaN is returned.
      - If y is zero, Nan is returned.
      - If x is +0/-0, and y is not zero, +0/-0 is returned.  */
-  if (__glibc_unlikely (hy == 0
-                       || hx >= EXPONENT_MASK || hy > EXPONENT_MASK))
-    {
-      if (is_nan (hx) || is_nan (hy))
-       return (x * y) / (x * y);
-      return __math_edomf ((x * y) / (x * y));
-    }
+  if (__glibc_unlikely (hy == 0        || hx >= EXPONENT_MASK || hy > EXPONENT_MASK))
+    return (x * y) / (x * y);
 
   if (__glibc_unlikely (hx <= hy))
     {
@@ -159,11 +152,4 @@ __fmodf (float x, float y)
 
   return make_float (mx, ey, sx);
 }
-strong_alias (__fmodf, __ieee754_fmodf)
-#if LIBM_SVID_COMPAT
-versioned_symbol (libm, __fmodf, fmodf, GLIBC_2_38);
-libm_alias_float_other (__fmod, fmod)
-#else
-libm_alias_float (__fmod, fmod)
-#endif
 libm_alias_finite (__ieee754_fmodf, __fmodf)
index 729f22c..c56722f 100644 (file)
@@ -156,7 +156,6 @@ attribute_hidden float __math_uflowf (uint32_t);
 attribute_hidden float __math_may_uflowf (uint32_t);
 attribute_hidden float __math_divzerof (uint32_t);
 attribute_hidden float __math_invalidf (float);
-attribute_hidden float __math_edomf (float x);
 
 /* Shared between expf, exp2f, exp10f, and powf.  */
 #define EXP2F_TABLE_BITS 5
index c71373b..219f8de 100644 (file)
@@ -31,12 +31,6 @@ with_errnof (float y, int e)
 # define with_errnof(x, e) (x)
 #endif
 
-attribute_hidden float
-__math_edomf (float y)
-{
-  return with_errnof (y, EDOM);
-}
-
 /* NOINLINE prevents fenv semantics breaking optimizations.  */
 NOINLINE static float
 xflowf (uint32_t sign, float y)
diff --git a/sysdeps/ieee754/flt-32/w_fmodf.c b/sysdeps/ieee754/flt-32/w_fmodf.c
deleted file mode 100644 (file)
index 1cc8931..0000000
+++ /dev/null
@@ -1 +0,0 @@
-/* Not needed.  */
diff --git a/sysdeps/m68k/m680x0/fpu/w_fmod_compat.c b/sysdeps/m68k/m680x0/fpu/w_fmod_compat.c
deleted file mode 100644 (file)
index 527d4fb..0000000
+++ /dev/null
@@ -1,14 +0,0 @@
-/* m68k provides an optimized __ieee752_fmod.  */
-#include <math-svid-compat.h>
-#ifdef SHARED
-# undef SHLIB_COMPAT
-# define SHLIB_COMPAT(a, b, c) 1
-# undef LIBM_SVID_COMPAT
-# define LIBM_SVID_COMPAT 1
-# undef compat_symbol
-# define compat_symbol(a, b, c, d)
-#endif
-#include <math/w_fmod_compat.c>
-#ifdef SHARED
-libm_alias_double (__fmod_compat, fmod)
-#endif
diff --git a/sysdeps/m68k/m680x0/fpu/w_fmodf_compat.c b/sysdeps/m68k/m680x0/fpu/w_fmodf_compat.c
deleted file mode 100644 (file)
index 5043586..0000000
+++ /dev/null
@@ -1,14 +0,0 @@
-/* m68k provides an optimized __ieee752_fmodf.  */
-#include <math-svid-compat.h>
-#ifdef SHARED
-# undef SHLIB_COMPAT
-# define SHLIB_COMPAT(a, b, c) 1
-# undef LIBM_SVID_COMPAT
-# define LIBM_SVID_COMPAT 1
-# undef compat_symbol
-# define compat_symbol(a, b, c, d)
-#endif
-#include <math/w_fmodf_compat.c>
-#ifdef SHARED
-libm_alias_float (__fmod_compat, fmod)
-#endif
index f0da228..2c74739 100644 (file)
@@ -1146,6 +1146,4 @@ GLIBC_2.35 fsqrt F
 GLIBC_2.35 fsqrtl F
 GLIBC_2.35 hypot F
 GLIBC_2.35 hypotf F
-GLIBC_2.38 fmod F
-GLIBC_2.38 fmodf F
 GLIBC_2.39 exp10 F
index f5d8023..3948e75 100644 (file)
@@ -1203,8 +1203,6 @@ GLIBC_2.35 fsqrt F
 GLIBC_2.35 fsqrtl F
 GLIBC_2.35 hypot F
 GLIBC_2.35 hypotf F
-GLIBC_2.38 fmod F
-GLIBC_2.38 fmodf F
 GLIBC_2.39 exp10 F
 GLIBC_2.4 __clog10l F
 GLIBC_2.4 __finitel F
index f020a8a..dac669f 100644 (file)
@@ -533,8 +533,6 @@ GLIBC_2.35 fsqrt F
 GLIBC_2.35 fsqrtl F
 GLIBC_2.35 hypot F
 GLIBC_2.35 hypotf F
-GLIBC_2.38 fmod F
-GLIBC_2.38 fmodf F
 GLIBC_2.39 exp10 F
 GLIBC_2.4 _LIB_VERSION D 0x4
 GLIBC_2.4 __clog10 F
index f020a8a..dac669f 100644 (file)
@@ -533,8 +533,6 @@ GLIBC_2.35 fsqrt F
 GLIBC_2.35 fsqrtl F
 GLIBC_2.35 hypot F
 GLIBC_2.35 hypotf F
-GLIBC_2.38 fmod F
-GLIBC_2.38 fmodf F
 GLIBC_2.39 exp10 F
 GLIBC_2.4 _LIB_VERSION D 0x4
 GLIBC_2.4 __clog10 F
index 450ac03..51f9070 100644 (file)
@@ -844,7 +844,5 @@ GLIBC_2.35 fsqrt F
 GLIBC_2.35 fsqrtl F
 GLIBC_2.35 hypot F
 GLIBC_2.35 hypotf F
-GLIBC_2.38 fmod F
-GLIBC_2.38 fmodf F
 GLIBC_2.39 exp10 F
 GLIBC_2.4 exp2l F
index f020a8a..dac669f 100644 (file)
@@ -533,8 +533,6 @@ GLIBC_2.35 fsqrt F
 GLIBC_2.35 fsqrtl F
 GLIBC_2.35 hypot F
 GLIBC_2.35 hypotf F
-GLIBC_2.38 fmod F
-GLIBC_2.38 fmodf F
 GLIBC_2.39 exp10 F
 GLIBC_2.4 _LIB_VERSION D 0x4
 GLIBC_2.4 __clog10 F
index 1f7f63f..c751b87 100644 (file)
@@ -845,6 +845,4 @@ GLIBC_2.35 fsqrt F
 GLIBC_2.35 fsqrtl F
 GLIBC_2.35 hypot F
 GLIBC_2.35 hypotf F
-GLIBC_2.38 fmod F
-GLIBC_2.38 fmodf F
 GLIBC_2.39 exp10 F
index 1f7f63f..c751b87 100644 (file)
@@ -845,6 +845,4 @@ GLIBC_2.35 fsqrt F
 GLIBC_2.35 fsqrtl F
 GLIBC_2.35 hypot F
 GLIBC_2.35 hypotf F
-GLIBC_2.38 fmod F
-GLIBC_2.38 fmodf F
 GLIBC_2.39 exp10 F
index 797071a..1c8e820 100644 (file)
@@ -844,7 +844,5 @@ GLIBC_2.35 fsqrt F
 GLIBC_2.35 fsqrtl F
 GLIBC_2.35 hypot F
 GLIBC_2.35 hypotf F
-GLIBC_2.38 fmod F
-GLIBC_2.38 fmodf F
 GLIBC_2.39 exp10 F
 GLIBC_2.4 exp2l F
index 1475870..2a7f7ed 100644 (file)
@@ -1146,6 +1146,4 @@ GLIBC_2.35 fsqrt F
 GLIBC_2.35 fsqrtl F
 GLIBC_2.35 hypot F
 GLIBC_2.35 hypotf F
-GLIBC_2.38 fmod F
-GLIBC_2.38 fmodf F
 GLIBC_2.39 exp10 F
index c0ebe11..098b156 100644 (file)
@@ -845,6 +845,4 @@ GLIBC_2.35 fsqrt F
 GLIBC_2.35 fsqrtl F
 GLIBC_2.35 hypot F
 GLIBC_2.35 hypotf F
-GLIBC_2.38 fmod F
-GLIBC_2.38 fmodf F
 GLIBC_2.39 exp10 F
index 4f88e0a..eae6f0b 100644 (file)
@@ -890,8 +890,6 @@ GLIBC_2.35 fsqrt F
 GLIBC_2.35 fsqrtl F
 GLIBC_2.35 hypot F
 GLIBC_2.35 hypotf F
-GLIBC_2.38 fmod F
-GLIBC_2.38 fmodf F
 GLIBC_2.39 exp10 F
 GLIBC_2.4 __clog10l F
 GLIBC_2.4 __finitel F
index edc2614..75327b9 100644 (file)
@@ -889,8 +889,6 @@ GLIBC_2.35 fsqrt F
 GLIBC_2.35 fsqrtl F
 GLIBC_2.35 hypot F
 GLIBC_2.35 hypotf F
-GLIBC_2.38 fmod F
-GLIBC_2.38 fmodf F
 GLIBC_2.39 exp10 F
 GLIBC_2.4 __clog10l F
 GLIBC_2.4 __finitel F
index 0a8a143..250f174 100644 (file)
@@ -883,8 +883,6 @@ GLIBC_2.35 fsqrt F
 GLIBC_2.35 fsqrtl F
 GLIBC_2.35 hypot F
 GLIBC_2.35 hypotf F
-GLIBC_2.38 fmod F
-GLIBC_2.38 fmodf F
 GLIBC_2.39 exp10 F
 GLIBC_2.4 __clog10l F
 GLIBC_2.4 __finitel F
index 5174d20..1ac1325 100644 (file)
@@ -1318,6 +1318,4 @@ GLIBC_2.35 fsqrt F
 GLIBC_2.35 fsqrtl F
 GLIBC_2.35 hypot F
 GLIBC_2.35 hypotf F
-GLIBC_2.38 fmod F
-GLIBC_2.38 fmodf F
 GLIBC_2.39 exp10 F
index 5ff11fb..3e0b839 100644 (file)
@@ -1147,8 +1147,6 @@ GLIBC_2.35 fsqrt F
 GLIBC_2.35 fsqrtl F
 GLIBC_2.35 hypot F
 GLIBC_2.35 hypotf F
-GLIBC_2.38 fmod F
-GLIBC_2.38 fmodf F
 GLIBC_2.39 exp10 F
 GLIBC_2.4 __clog10l F
 GLIBC_2.4 __finitel F
index 0e246c2..483123e 100644 (file)
@@ -1147,8 +1147,6 @@ GLIBC_2.35 fsqrt F
 GLIBC_2.35 fsqrtl F
 GLIBC_2.35 hypot F
 GLIBC_2.35 hypotf F
-GLIBC_2.38 fmod F
-GLIBC_2.38 fmodf F
 GLIBC_2.39 exp10 F
 GLIBC_2.4 __clog10l F
 GLIBC_2.4 __finitel F
index 7b43a86..c4b67d0 100644 (file)
@@ -844,7 +844,5 @@ GLIBC_2.35 fsqrt F
 GLIBC_2.35 fsqrtl F
 GLIBC_2.35 hypot F
 GLIBC_2.35 hypotf F
-GLIBC_2.38 fmod F
-GLIBC_2.38 fmodf F
 GLIBC_2.39 exp10 F
 GLIBC_2.4 exp2l F
index 7b43a86..c4b67d0 100644 (file)
@@ -844,7 +844,5 @@ GLIBC_2.35 fsqrt F
 GLIBC_2.35 fsqrtl F
 GLIBC_2.35 hypot F
 GLIBC_2.35 hypotf F
-GLIBC_2.38 fmod F
-GLIBC_2.38 fmodf F
 GLIBC_2.39 exp10 F
 GLIBC_2.4 exp2l F
index e3dcf3d..99df67c 100644 (file)
@@ -1154,8 +1154,6 @@ GLIBC_2.35 fsqrt F
 GLIBC_2.35 fsqrtl F
 GLIBC_2.35 hypot F
 GLIBC_2.35 hypotf F
-GLIBC_2.38 fmod F
-GLIBC_2.38 fmodf F
 GLIBC_2.39 exp10 F
 GLIBC_2.4 __clog10l F
 GLIBC_2.4 __finitel F
index 20fef20..b14c1d8 100644 (file)
@@ -1146,6 +1146,4 @@ GLIBC_2.35 fsqrt F
 GLIBC_2.35 fsqrtl F
 GLIBC_2.35 hypot F
 GLIBC_2.35 hypotf F
-GLIBC_2.38 fmod F
-GLIBC_2.38 fmodf F
 GLIBC_2.39 exp10 F
index c1c5c76..775b5cd 100644 (file)
@@ -1179,6 +1179,4 @@ GLIBC_2.35 fsqrt F
 GLIBC_2.35 fsqrtl F
 GLIBC_2.35 hypot F
 GLIBC_2.35 hypotf F
-GLIBC_2.38 fmod F
-GLIBC_2.38 fmodf F
 GLIBC_2.39 exp10 F
index fac219d..b88594d 100644 (file)
@@ -1179,6 +1179,4 @@ GLIBC_2.35 fsqrt F
 GLIBC_2.35 fsqrtl F
 GLIBC_2.35 hypot F
 GLIBC_2.35 hypotf F
-GLIBC_2.38 fmod F
-GLIBC_2.38 fmodf F
 GLIBC_2.39 exp10 F