diff options
author | Joseph Myers <joseph@codesourcery.com> | 2015-01-07 19:01:20 +0000 |
---|---|---|
committer | Joseph Myers <joseph@codesourcery.com> | 2015-01-07 19:01:20 +0000 |
commit | 8116321f657549e80d0167b8a790a7aa54d6379d (patch) | |
tree | e37ed85c1a187c09c97233ebc819192dc06db14c /sysdeps/generic | |
parent | 882dfe184a81a8924bc8acb79e96fbf7556fa60b (diff) | |
download | glibc-8116321f657549e80d0167b8a790a7aa54d6379d.tar.gz glibc-8116321f657549e80d0167b8a790a7aa54d6379d.tar.xz glibc-8116321f657549e80d0167b8a790a7aa54d6379d.zip |
Fix libm feupdateenv namespace (bug 17748).
Concluding the fixes for C90 libm functions calling C99 fe* functions, this patch fixes the case of feupdateenv by making it a weak alias for __feupdateenv and making the affected code call __feupdateenv. Tested for x86_64 (testsuite, and that installed stripped shared libraries are unchanged by the patch). Also tested for ARM (soft-float) that the math.h linknamespace tests now pass. [BZ #17748] * include/fenv.h (__feupdateenv): Use libm_hidden_proto. * math/feupdateenv.c (__feupdateenv): Use libm_hidden_def. * sysdeps/aarch64/fpu/feupdateenv.c (feupdateenv): Rename to __feupdateenv and define as weak alias of __feupdateenv. Use libm_hidden_weak. * sysdeps/alpha/fpu/feupdateenv.c (__feupdateenv): Use libm_hidden_def. * sysdeps/arm/feupdateenv.c (feupdateenv): Rename to __feupdateenv and define as weak alias of __feupdateenv. Use libm_hidden_weak. * sysdeps/hppa/fpu/feupdateenv.c (feupdateenv): Likewise. * sysdeps/i386/fpu/feupdateenv.c (__feupdateenv): Use libm_hidden_def. * sysdeps/ia64/fpu/feupdateenv.c (feupdateenv): Rename to __feupdateenv and define as weak alias of __feupdateenv. Use libm_hidden_weak. * sysdeps/m68k/fpu/feupdateenv.c (__feupdateenv): Use libm_hidden_def. * sysdeps/mips/fpu/feupdateenv.c (feupdateenv): Rename to __feupdateenv and define as weak alias of __feupdateenv. Use libm_hidden_weak. * sysdeps/powerpc/fpu/feupdateenv.c (__feupdateenv): Use libm_hidden_def. * sysdeps/powerpc/nofpu/feupdateenv.c (__feupdateenv): Likewise. * sysdeps/powerpc/powerpc32/e500/nofpu/feupdateenv.c (__feupdateenv): Likewise. * sysdeps/s390/fpu/feupdateenv.c (feupdateenv): Rename to __feupdateenv and define as weak alias of __feupdateenv. Use libm_hidden_weak. * sysdeps/sh/sh4/fpu/feupdateenv.c (feupdateenv): Likewise. * sysdeps/sparc/fpu/feupdateenv.c (__feupdateenv): Use libm_hidden_def. * sysdeps/tile/math_private.h (__feupdateenv): New inline function. * sysdeps/x86_64/fpu/feupdateenv.c (__feupdateenv): Use libm_hidden_def. * sysdeps/generic/math_private.h (default_libc_feupdateenv): Call __feupdateenv instead of feupdateenv. (default_libc_feupdateenv_test): Likewise. (libc_feresetround_ctx): Likewise.
Diffstat (limited to 'sysdeps/generic')
-rw-r--r-- | sysdeps/generic/math_private.h | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/sysdeps/generic/math_private.h b/sysdeps/generic/math_private.h index 24e2babd61..0ab547d82f 100644 --- a/sysdeps/generic/math_private.h +++ b/sysdeps/generic/math_private.h @@ -478,7 +478,7 @@ default_libc_fesetenv (fenv_t *e) static __always_inline void default_libc_feupdateenv (fenv_t *e) { - (void) feupdateenv (e); + (void) __feupdateenv (e); } #ifndef libc_feupdateenv @@ -499,7 +499,7 @@ static __always_inline int default_libc_feupdateenv_test (fenv_t *e, int ex) { int ret = fetestexcept (ex); - feupdateenv (e); + __feupdateenv (e); return ret; } @@ -608,7 +608,7 @@ libc_feresetround_ctx (struct rm_ctx *ctx) { /* Restore the rounding mode if updated. */ if (__glibc_unlikely (ctx->updated_status)) - feupdateenv (&ctx->env); + __feupdateenv (&ctx->env); } static __always_inline void |