diff options
-rw-r--r-- | ChangeLog | 33 | ||||
-rw-r--r-- | include/fenv.h | 2 | ||||
-rw-r--r-- | math/fegetround.c | 6 | ||||
-rw-r--r-- | sysdeps/aarch64/fpu/fegetround.c | 6 | ||||
-rw-r--r-- | sysdeps/alpha/fpu/fegetround.c | 6 | ||||
-rw-r--r-- | sysdeps/arm/fegetround.c | 6 | ||||
-rw-r--r-- | sysdeps/hppa/fpu/fegetround.c | 6 | ||||
-rw-r--r-- | sysdeps/i386/fpu/fegetround.c | 6 | ||||
-rw-r--r-- | sysdeps/ia64/fpu/fegetround.c | 6 | ||||
-rw-r--r-- | sysdeps/ieee754/dbl-64/e_sqrt.c | 2 | ||||
-rw-r--r-- | sysdeps/m68k/fpu/fegetround.c | 6 | ||||
-rw-r--r-- | sysdeps/mips/fpu/fegetround.c | 6 | ||||
-rw-r--r-- | sysdeps/powerpc/fpu/fegetround.c | 9 | ||||
-rw-r--r-- | sysdeps/powerpc/nofpu/fegetround.c | 7 | ||||
-rw-r--r-- | sysdeps/powerpc/powerpc32/e500/nofpu/fegetround.c | 7 | ||||
-rw-r--r-- | sysdeps/s390/fpu/fegetround.c | 6 | ||||
-rw-r--r-- | sysdeps/sh/sh4/fpu/fegetround.c | 6 | ||||
-rw-r--r-- | sysdeps/sparc/fpu/fegetround.c | 6 | ||||
-rw-r--r-- | sysdeps/tile/math_private.h | 1 | ||||
-rw-r--r-- | sysdeps/x86_64/fpu/fegetround.c | 6 |
20 files changed, 103 insertions, 36 deletions
@@ -1,5 +1,38 @@ 2015-01-02 Joseph Myers <joseph@codesourcery.com> + [BZ #17748] + * include/fenv.h (__fegetround): Declare. Use libm_hidden_proto. + * math/fegetround.c (fegetround): Rename to __fegetround and + define as weak alias of __fegetround. Use libm_hidden_weak. + * sysdeps/aarch64/fpu/fegetround.c (fegetround): Likewise. + * sysdeps/alpha/fpu/fegetround.c (fegetround): Likewise. + * sysdeps/arm/fegetround.c (fegetround): Likewise. + * sysdeps/hppa/fpu/fegetround.c (fegetround): Likewise. + * sysdeps/i386/fpu/fegetround.c (fegetround): Likewise. + * sysdeps/ia64/fpu/fegetround.c (fegetround): Likewise. + * sysdeps/m68k/fpu/fegetround.c (fegetround): Likewise. + * sysdeps/mips/fpu/fegetround.c (fegetround): Likewise. + * sysdeps/powerpc/fpu/fegetround.c (fegetround): Likewise. + Undefine after rather than before function definition; use + parentheses around function name in definition. + (__fegetround): Also undefine macro after function definition. + * sysdeps/powerpc/nofpu/fegetround.c (fegetround): Rename to + __fegetround and define as weak alias of __fegetround. Use + libm_hidden_weak. Do not undefine as macro. + * sysdeps/powerpc/powerpc32/e500/nofpu/fegetround.c (fegetround): + Likewise. + * sysdeps/s390/fpu/fegetround.c (fegetround): Rename to + __fegetround and define as weak alias of __fegetround. Use + libm_hidden_weak. + * sysdeps/sh/sh4/fpu/fegetround.c (fegetround): Likewise. + * sysdeps/sparc/fpu/fegetround.c (fegetround): Likewise. + * sysdeps/tile/math_private.h (__fegetround): New inline function. + * sysdeps/x86_64/fpu/fegetround.c (fegetround): Rename to + __fegetround and define as weak alias of __fegetround. Use + libm_hidden_weak. + * sysdeps/ieee754/dbl-64/e_sqrt.c (__ieee754_sqrt): Use + __fegetround instead of fegetround. + [BZ #17782] * sysdeps/unix/sysv/linux/mips/bits/termios.h (TIOCSER_TEMT): Condition macro definition on [__USE_MISC]. diff --git a/include/fenv.h b/include/fenv.h index bc8f759e17..b29b246089 100644 --- a/include/fenv.h +++ b/include/fenv.h @@ -13,12 +13,14 @@ extern int __fesetexceptflag (const fexcept_t *__flagp, int __excepts); extern int __fegetenv (fenv_t *__envp); extern int __fesetenv (const fenv_t *__envp); extern int __feupdateenv (const fenv_t *__envp); +extern __typeof (fegetround) __fegetround; libm_hidden_proto (feraiseexcept) libm_hidden_proto (__feraiseexcept) libm_hidden_proto (fegetenv) libm_hidden_proto (__fegetenv) libm_hidden_proto (fegetround) +libm_hidden_proto (__fegetround) libm_hidden_proto (fesetenv) libm_hidden_proto (fesetround) libm_hidden_proto (feholdexcept) diff --git a/math/fegetround.c b/math/fegetround.c index 665268e359..7c150ec7bc 100644 --- a/math/fegetround.c +++ b/math/fegetround.c @@ -20,7 +20,7 @@ #include <fenv.h> int -fegetround (void) +__fegetround (void) { #ifdef FE_TONEAREST return FE_TONEAREST; @@ -28,5 +28,7 @@ fegetround (void) return 0; #endif } -libm_hidden_def (fegetround) +libm_hidden_def (__fegetround) +weak_alias (__fegetround, fegetround) +libm_hidden_weak (fegetround) stub_warning (fegetround) diff --git a/sysdeps/aarch64/fpu/fegetround.c b/sysdeps/aarch64/fpu/fegetround.c index 4c81845ba2..5af36f7715 100644 --- a/sysdeps/aarch64/fpu/fegetround.c +++ b/sysdeps/aarch64/fpu/fegetround.c @@ -20,8 +20,10 @@ #include <get-rounding-mode.h> int -fegetround (void) +__fegetround (void) { return get_rounding_mode (); } -libm_hidden_def (fegetround) +libm_hidden_def (__fegetround) +weak_alias (__fegetround, fegetround) +libm_hidden_weak (fegetround) diff --git a/sysdeps/alpha/fpu/fegetround.c b/sysdeps/alpha/fpu/fegetround.c index 613110bbe4..d346decd95 100644 --- a/sysdeps/alpha/fpu/fegetround.c +++ b/sysdeps/alpha/fpu/fegetround.c @@ -20,7 +20,7 @@ #include <fenv_libc.h> int -fegetround (void) +__fegetround (void) { unsigned long fpcr; @@ -28,4 +28,6 @@ fegetround (void) return (fpcr >> FPCR_ROUND_SHIFT) & 3; } -libm_hidden_def (fegetround) +libm_hidden_def (__fegetround) +weak_alias (__fegetround, fegetround) +libm_hidden_weak (fegetround) diff --git a/sysdeps/arm/fegetround.c b/sysdeps/arm/fegetround.c index bd03667665..348c23ee49 100644 --- a/sysdeps/arm/fegetround.c +++ b/sysdeps/arm/fegetround.c @@ -20,8 +20,10 @@ int -fegetround (void) +__fegetround (void) { return get_rounding_mode (); } -libm_hidden_def (fegetround) +libm_hidden_def (__fegetround) +weak_alias (__fegetround, fegetround) +libm_hidden_weak (fegetround) diff --git a/sysdeps/hppa/fpu/fegetround.c b/sysdeps/hppa/fpu/fegetround.c index fc4cbed39a..aae88b7b1a 100644 --- a/sysdeps/hppa/fpu/fegetround.c +++ b/sysdeps/hppa/fpu/fegetround.c @@ -20,8 +20,10 @@ #include <get-rounding-mode.h> int -fegetround (void) +__fegetround (void) { return get_rounding_mode (); } -libm_hidden_def (fegetround) +libm_hidden_def (__fegetround) +weak_alias (__fegetround, fegetround) +libm_hidden_weak (fegetround) diff --git a/sysdeps/i386/fpu/fegetround.c b/sysdeps/i386/fpu/fegetround.c index 1b25c32589..1662e2e66e 100644 --- a/sysdeps/i386/fpu/fegetround.c +++ b/sysdeps/i386/fpu/fegetround.c @@ -20,7 +20,7 @@ #include <fenv.h> int -fegetround (void) +__fegetround (void) { int cw; @@ -28,4 +28,6 @@ fegetround (void) return cw & 0xc00; } -libm_hidden_def (fegetround) +libm_hidden_def (__fegetround) +weak_alias (__fegetround, fegetround) +libm_hidden_weak (fegetround) diff --git a/sysdeps/ia64/fpu/fegetround.c b/sysdeps/ia64/fpu/fegetround.c index 38f769f735..cf2991194a 100644 --- a/sysdeps/ia64/fpu/fegetround.c +++ b/sysdeps/ia64/fpu/fegetround.c @@ -20,8 +20,10 @@ #include <get-rounding-mode.h> int -fegetround (void) +__fegetround (void) { return get_rounding_mode (); } -libm_hidden_def (fegetround) +libm_hidden_def (__fegetround) +weak_alias (__fegetround, fegetround) +libm_hidden_weak (fegetround) diff --git a/sysdeps/ieee754/dbl-64/e_sqrt.c b/sysdeps/ieee754/dbl-64/e_sqrt.c index 3b34e54634..fff6d148fe 100644 --- a/sysdeps/ieee754/dbl-64/e_sqrt.c +++ b/sysdeps/ieee754/dbl-64/e_sqrt.c @@ -66,7 +66,7 @@ __ieee754_sqrt (double x) /*----------------- 2^-1022 <= | x |< 2^1024 -----------------*/ if (k > 0x000fffff && k < 0x7ff00000) { - int rm = fegetround (); + int rm = __fegetround (); fenv_t env; libc_feholdexcept_setround (&env, FE_TONEAREST); double ret; diff --git a/sysdeps/m68k/fpu/fegetround.c b/sysdeps/m68k/fpu/fegetround.c index b0302e1c7b..0777657833 100644 --- a/sysdeps/m68k/fpu/fegetround.c +++ b/sysdeps/m68k/fpu/fegetround.c @@ -20,7 +20,7 @@ #include <fenv.h> int -fegetround (void) +__fegetround (void) { int fpcr; @@ -28,4 +28,6 @@ fegetround (void) return fpcr & FE_UPWARD; } -libm_hidden_def (fegetround) +libm_hidden_def (__fegetround) +weak_alias (__fegetround, fegetround) +libm_hidden_weak (fegetround) diff --git a/sysdeps/mips/fpu/fegetround.c b/sysdeps/mips/fpu/fegetround.c index 99403cd54b..bfe9130f60 100644 --- a/sysdeps/mips/fpu/fegetround.c +++ b/sysdeps/mips/fpu/fegetround.c @@ -21,7 +21,7 @@ #include <fpu_control.h> int -fegetround (void) +__fegetround (void) { int cw; @@ -30,4 +30,6 @@ fegetround (void) return cw & _FPU_RC_MASK; } -libm_hidden_def (fegetround) +libm_hidden_def (__fegetround) +weak_alias (__fegetround, fegetround) +libm_hidden_weak (fegetround) diff --git a/sysdeps/powerpc/fpu/fegetround.c b/sysdeps/powerpc/fpu/fegetround.c index a18be8306f..af97f72c6c 100644 --- a/sysdeps/powerpc/fpu/fegetround.c +++ b/sysdeps/powerpc/fpu/fegetround.c @@ -18,10 +18,13 @@ #include <fenv_libc.h> -#undef fegetround int -fegetround (void) +(__fegetround) (void) { return __fegetround(); } -libm_hidden_def (fegetround) +#undef fegetround +#undef __fegetround +libm_hidden_def (__fegetround) +weak_alias (__fegetround, fegetround) +libm_hidden_weak (fegetround) diff --git a/sysdeps/powerpc/nofpu/fegetround.c b/sysdeps/powerpc/nofpu/fegetround.c index 9de326cc0f..311b2d5749 100644 --- a/sysdeps/powerpc/nofpu/fegetround.c +++ b/sysdeps/powerpc/nofpu/fegetround.c @@ -20,10 +20,11 @@ #include "soft-fp.h" #include "soft-supp.h" -#undef fegetround int -fegetround (void) +__fegetround (void) { return __sim_round_mode_thread; } -libm_hidden_def (fegetround) +libm_hidden_def (__fegetround) +weak_alias (__fegetround, fegetround) +libm_hidden_weak (fegetround) diff --git a/sysdeps/powerpc/powerpc32/e500/nofpu/fegetround.c b/sysdeps/powerpc/powerpc32/e500/nofpu/fegetround.c index c71a8fc627..bbdeba70b1 100644 --- a/sysdeps/powerpc/powerpc32/e500/nofpu/fegetround.c +++ b/sysdeps/powerpc/powerpc32/e500/nofpu/fegetround.c @@ -18,13 +18,14 @@ #include <fenv_libc.h> -#undef fegetround int -fegetround (void) +__fegetround (void) { unsigned long fpescr; fpescr = fegetenv_register (); return fpescr & 3; } -libm_hidden_def (fegetround) +libm_hidden_def (__fegetround) +weak_alias (__fegetround, fegetround) +libm_hidden_weak (fegetround) diff --git a/sysdeps/s390/fpu/fegetround.c b/sysdeps/s390/fpu/fegetround.c index dd4e81ff73..f60821457c 100644 --- a/sysdeps/s390/fpu/fegetround.c +++ b/sysdeps/s390/fpu/fegetround.c @@ -21,7 +21,7 @@ #include <fpu_control.h> int -fegetround (void) +__fegetround (void) { fexcept_t cw; @@ -29,4 +29,6 @@ fegetround (void) return cw & FPC_RM_MASK; } -libm_hidden_def (fegetround) +libm_hidden_def (__fegetround) +weak_alias (__fegetround, fegetround) +libm_hidden_weak (fegetround) diff --git a/sysdeps/sh/sh4/fpu/fegetround.c b/sysdeps/sh/sh4/fpu/fegetround.c index 639b7c2f7e..f227564846 100644 --- a/sysdeps/sh/sh4/fpu/fegetround.c +++ b/sysdeps/sh/sh4/fpu/fegetround.c @@ -21,7 +21,7 @@ #include <fpu_control.h> int -fegetround (void) +__fegetround (void) { fpu_control_t cw; @@ -30,4 +30,6 @@ fegetround (void) return cw & 0x1; } -libm_hidden_def (fegetround) +libm_hidden_def (__fegetround) +weak_alias (__fegetround, fegetround) +libm_hidden_weak (fegetround) diff --git a/sysdeps/sparc/fpu/fegetround.c b/sysdeps/sparc/fpu/fegetround.c index 9eba970b67..ebcf21ca35 100644 --- a/sysdeps/sparc/fpu/fegetround.c +++ b/sysdeps/sparc/fpu/fegetround.c @@ -19,7 +19,7 @@ #include <fenv.h> int -fegetround (void) +__fegetround (void) { fenv_t tmp; @@ -27,4 +27,6 @@ fegetround (void) return tmp & __FE_ROUND_MASK; } -libm_hidden_def (fegetround) +libm_hidden_def (__fegetround) +weak_alias (__fegetround, fegetround) +libm_hidden_weak (fegetround) diff --git a/sysdeps/tile/math_private.h b/sysdeps/tile/math_private.h index 70e4fb2060..6b9e7618dd 100644 --- a/sysdeps/tile/math_private.h +++ b/sysdeps/tile/math_private.h @@ -34,6 +34,7 @@ extern inline int __fegetenv (fenv_t *__e) { return 0; } extern inline int fesetenv (const fenv_t *__e) { return 0; } extern inline int feupdateenv (const fenv_t *__e) { return 0; } extern inline int fegetround (void) { return FE_TONEAREST; } +extern inline int __fegetround (void) { return FE_TONEAREST; } extern inline int fesetround (int __d) { return 0; } #endif diff --git a/sysdeps/x86_64/fpu/fegetround.c b/sysdeps/x86_64/fpu/fegetround.c index 4796e80db2..b515d8afe7 100644 --- a/sysdeps/x86_64/fpu/fegetround.c +++ b/sysdeps/x86_64/fpu/fegetround.c @@ -20,7 +20,7 @@ #include <fenv.h> int -fegetround (void) +__fegetround (void) { int cw; /* We only check the x87 FPU unit. The SSE unit should be the same @@ -30,4 +30,6 @@ fegetround (void) return cw & 0xc00; } -libm_hidden_def (fegetround) +libm_hidden_def (__fegetround) +weak_alias (__fegetround, fegetround) +libm_hidden_weak (fegetround) |