]> git.ipfire.org Git - thirdparty/glibc.git/commitdiff
Fix libm fesetenv namespace (bug 17748).
authorJoseph Myers <joseph@codesourcery.com>
Tue, 6 Jan 2015 23:36:20 +0000 (23:36 +0000)
committerJoseph Myers <joseph@codesourcery.com>
Tue, 6 Jan 2015 23:36:20 +0000 (23:36 +0000)
Continuing the fixes for C90 libm functions calling C99 fe* functions,
this patch fixes the case of fesetenv by making it a weak alias of
__fesetenv and making the affected code (including various copies of
feupdateenv which also gets called from C90 functions) call
__fesetenv.

Tested for x86_64 (testsuite, and that disassembly of installed shared
libraries is unchanged by the patch).  Also tested for ARM
(soft-float) that fesetenv failures disappear from the linknamespace
test results (fsetround and feupdateenv remain to be addressed to
complete fixing bug 17748).

[BZ #17748]
* include/fenv.h (__fesetenv): Use libm_hidden_proto.
* math/fesetenv.c (__fesetenv): Use libm_hidden_def.
* sysdeps/aarch64/fpu/fesetenv.c (fesetenv): Rename to __fesetenv
and define as weak alias of __fesetenv.  Use libm_hidden_weak.
* sysdeps/alpha/fpu/fesetenv.c (__fesetenv): Use libm_hidden_def.
* sysdeps/arm/fesetenv.c (fesetenv): Rename to __fesetenv and
define as weak alias of __fesetenv.  Use libm_hidden_weak.
* sysdeps/hppa/fpu/fesetenv.c (fesetenv): Likewise.
* sysdeps/i386/fpu/fesetenv.c (__fesetenv): Use libm_hidden_def.
* sysdeps/ia64/fpu/fesetenv.c (fesetenv): Rename to __fesetenv and
define as weak alias of __fesetenv.  Use libm_hidden_weak.
* sysdeps/m68k/fpu/fesetenv.c (__fesetenv): Use libm_hidden_def.
* sysdeps/mips/fpu/fesetenv.c (fesetenv): Rename to __fesetenv and
define as weak alias of __fesetenv.  Use libm_hidden_weak.
* sysdeps/powerpc/fpu/fesetenv.c (__fesetenv): Use
libm_hidden_def.
* sysdeps/powerpc/nofpu/fesetenv.c (__fesetenv): Likewise.
* sysdeps/powerpc/powerpc32/e500/nofpu/fesetenv.c (__fesetenv):
Likewise.
* sysdeps/s390/fpu/fesetenv.c (fesetenv): Rename to __fesetenv and
define as weak alias of __fesetenv.  Use libm_hidden_weak.
* sysdeps/sh/sh4/fpu/fesetenv.c (fesetenv): Likewise.
* sysdeps/sparc/fpu/fesetenv.c (__fesetenv): Use libm_hidden_def.
* sysdeps/tile/math_private.h (__fesetenv): New inline function.
* sysdeps/x86_64/fpu/fesetenv.c (fesetenv): Rename to __fesetenv
and define as weak alias of __fesetenv.  Use libm_hidden_weak.
* sysdeps/generic/math_private.h (default_libc_fesetenv): Use
__fesetenv instead of fesetenv.
(libc_feresetround_noex_ctx): Likewise.
* sysdeps/alpha/fpu/feupdateenv.c (__feupdateenv): Likewise.
* sysdeps/hppa/fpu/feupdateenv.c (feupdateenv): Likewise.
* sysdeps/i386/fpu/feupdateenv.c (__feupdateenv): Likewise.
* sysdeps/ia64/fpu/feupdateenv.c (feupdateenv): Likewise.
* sysdeps/m68k/fpu/feupdateenv.c (__feupdateenv): Likewise.
* sysdeps/mips/fpu/feupdateenv.c (feupdateenv): Likewise.
* sysdeps/powerpc/nofpu/feupdateenv.c (__feupdateenv): Likewise.
* sysdeps/powerpc/powerpc32/e500/nofpu/feupdateenv.c
(__feupdateenv): Likewise.
* sysdeps/s390/fpu/feupdateenv.c (feupdateenv): Likewise.
* sysdeps/sh/sh4/fpu/feupdateenv.c (feupdateenv): Likewise.
* sysdeps/sparc/fpu/feupdateenv.c (__feupdateenv): Likewise.
* sysdeps/x86_64/fpu/feupdateenv.c (__feupdateenv): Likewise.

32 files changed:
ChangeLog
include/fenv.h
math/fesetenv.c
sysdeps/aarch64/fpu/fesetenv.c
sysdeps/alpha/fpu/fesetenv.c
sysdeps/alpha/fpu/feupdateenv.c
sysdeps/arm/fesetenv.c
sysdeps/generic/math_private.h
sysdeps/hppa/fpu/fesetenv.c
sysdeps/hppa/fpu/feupdateenv.c
sysdeps/i386/fpu/fesetenv.c
sysdeps/i386/fpu/feupdateenv.c
sysdeps/ia64/fpu/fesetenv.c
sysdeps/ia64/fpu/feupdateenv.c
sysdeps/m68k/fpu/fesetenv.c
sysdeps/m68k/fpu/feupdateenv.c
sysdeps/mips/fpu/fesetenv.c
sysdeps/mips/fpu/feupdateenv.c
sysdeps/powerpc/fpu/fesetenv.c
sysdeps/powerpc/nofpu/fesetenv.c
sysdeps/powerpc/nofpu/feupdateenv.c
sysdeps/powerpc/powerpc32/e500/nofpu/fesetenv.c
sysdeps/powerpc/powerpc32/e500/nofpu/feupdateenv.c
sysdeps/s390/fpu/fesetenv.c
sysdeps/s390/fpu/feupdateenv.c
sysdeps/sh/sh4/fpu/fesetenv.c
sysdeps/sh/sh4/fpu/feupdateenv.c
sysdeps/sparc/fpu/fesetenv.c
sysdeps/sparc/fpu/feupdateenv.c
sysdeps/tile/math_private.h
sysdeps/x86_64/fpu/fesetenv.c
sysdeps/x86_64/fpu/feupdateenv.c

index cb65294dc630ea7a5b2a9862479cfa7831b6af56..a17679b4153dec69a4a141f3853caa0d512b6ff2 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,49 @@
+2015-01-06  Joseph Myers  <joseph@codesourcery.com>
+
+       [BZ #17748]
+       * include/fenv.h (__fesetenv): Use libm_hidden_proto.
+       * math/fesetenv.c (__fesetenv): Use libm_hidden_def.
+       * sysdeps/aarch64/fpu/fesetenv.c (fesetenv): Rename to __fesetenv
+       and define as weak alias of __fesetenv.  Use libm_hidden_weak.
+       * sysdeps/alpha/fpu/fesetenv.c (__fesetenv): Use libm_hidden_def.
+       * sysdeps/arm/fesetenv.c (fesetenv): Rename to __fesetenv and
+       define as weak alias of __fesetenv.  Use libm_hidden_weak.
+       * sysdeps/hppa/fpu/fesetenv.c (fesetenv): Likewise.
+       * sysdeps/i386/fpu/fesetenv.c (__fesetenv): Use libm_hidden_def.
+       * sysdeps/ia64/fpu/fesetenv.c (fesetenv): Rename to __fesetenv and
+       define as weak alias of __fesetenv.  Use libm_hidden_weak.
+       * sysdeps/m68k/fpu/fesetenv.c (__fesetenv): Use libm_hidden_def.
+       * sysdeps/mips/fpu/fesetenv.c (fesetenv): Rename to __fesetenv and
+       define as weak alias of __fesetenv.  Use libm_hidden_weak.
+       * sysdeps/powerpc/fpu/fesetenv.c (__fesetenv): Use
+       libm_hidden_def.
+       * sysdeps/powerpc/nofpu/fesetenv.c (__fesetenv): Likewise.
+       * sysdeps/powerpc/powerpc32/e500/nofpu/fesetenv.c (__fesetenv):
+       Likewise.
+       * sysdeps/s390/fpu/fesetenv.c (fesetenv): Rename to __fesetenv and
+       define as weak alias of __fesetenv.  Use libm_hidden_weak.
+       * sysdeps/sh/sh4/fpu/fesetenv.c (fesetenv): Likewise.
+       * sysdeps/sparc/fpu/fesetenv.c (__fesetenv): Use libm_hidden_def.
+       * sysdeps/tile/math_private.h (__fesetenv): New inline function.
+       * sysdeps/x86_64/fpu/fesetenv.c (fesetenv): Rename to __fesetenv
+       and define as weak alias of __fesetenv.  Use libm_hidden_weak.
+       * sysdeps/generic/math_private.h (default_libc_fesetenv): Use
+       __fesetenv instead of fesetenv.
+       (libc_feresetround_noex_ctx): Likewise.
+       * sysdeps/alpha/fpu/feupdateenv.c (__feupdateenv): Likewise.
+       * sysdeps/hppa/fpu/feupdateenv.c (feupdateenv): Likewise.
+       * sysdeps/i386/fpu/feupdateenv.c (__feupdateenv): Likewise.
+       * sysdeps/ia64/fpu/feupdateenv.c (feupdateenv): Likewise.
+       * sysdeps/m68k/fpu/feupdateenv.c (__feupdateenv): Likewise.
+       * sysdeps/mips/fpu/feupdateenv.c (feupdateenv): Likewise.
+       * sysdeps/powerpc/nofpu/feupdateenv.c (__feupdateenv): Likewise.
+       * sysdeps/powerpc/powerpc32/e500/nofpu/feupdateenv.c
+       (__feupdateenv): Likewise.
+       * sysdeps/s390/fpu/feupdateenv.c (feupdateenv): Likewise.
+       * sysdeps/sh/sh4/fpu/feupdateenv.c (feupdateenv): Likewise.
+       * sysdeps/sparc/fpu/feupdateenv.c (__feupdateenv): Likewise.
+       * sysdeps/x86_64/fpu/feupdateenv.c (__feupdateenv): Likewise.
+
 2015-01-06  Aurelien Jarno  <aurelien@aurel32.net>
 
        [BZ #17806]
index 0a74fa02fe20588434d3291a2750af4d08c8851d..1f30baa01659ab85b508c5d597cc7f7ff5b4dcf2 100644 (file)
@@ -23,6 +23,7 @@ libm_hidden_proto (__fegetenv)
 libm_hidden_proto (fegetround)
 libm_hidden_proto (__fegetround)
 libm_hidden_proto (fesetenv)
+libm_hidden_proto (__fesetenv)
 libm_hidden_proto (fesetround)
 libm_hidden_proto (feholdexcept)
 libm_hidden_proto (__feholdexcept)
index e84411abb9b2a91bd90ce90c5bd267be5cf4823c..8747a14282212c2d07e16c51d6eebc6088fd5bef 100644 (file)
@@ -34,6 +34,7 @@ __fesetenv (const fenv_t *envp)
 strong_alias (__fesetenv, __old_fesetenv)
 compat_symbol (libm, __old_fesetenv, fesetenv, GLIBC_2_1);
 #endif
+libm_hidden_def (__fesetenv)
 libm_hidden_ver (__fesetenv, fesetenv)
 versioned_symbol (libm, __fesetenv, fesetenv, GLIBC_2_2);
 
index fef5f8418505c03132ced4317172cba85397f1a8..f47115fd91bf56fd0f8c677d3291dc5ea0f7bb4d 100644 (file)
@@ -20,7 +20,7 @@
 #include <fpu_control.h>
 
 int
-fesetenv (const fenv_t *envp)
+__fesetenv (const fenv_t *envp)
 {
   fpu_control_t fpcr;
   fpu_control_t fpcr_new;
@@ -67,4 +67,6 @@ fesetenv (const fenv_t *envp)
 
   return 0;
 }
-libm_hidden_def (fesetenv)
+libm_hidden_def (__fesetenv)
+weak_alias (__fesetenv, fesetenv)
+libm_hidden_weak (fesetenv)
index 02b79d58bd82944956ec7f9d68b1a0ac722d49c5..c87a23c99e3e3a52e3bb28f95b5537d764447814 100644 (file)
@@ -52,5 +52,6 @@ strong_alias (__fesetenv, __old_fesetenv)
 compat_symbol (libm, __old_fesetenv, fesetenv, GLIBC_2_1);
 #endif
 
+libm_hidden_def (__fesetenv)
 libm_hidden_ver (__fesetenv, fesetenv)
 versioned_symbol (libm, __fesetenv, fesetenv, GLIBC_2_2);
index 063785b6e43040ce8874b5e7eae6742eae39b914..8b521454de3800c7104447a686f50e1a585dfd98 100644 (file)
@@ -28,7 +28,7 @@ __feupdateenv (const fenv_t *envp)
   tmp = __ieee_get_fp_control ();
 
   /* Install new environment.  */
-  fesetenv (envp);
+  __fesetenv (envp);
 
   /* Raise the saved exception.  Incidently for us the implementation
      defined format of the values in objects of type fexcept_t is the
index 3b79ea18ef1bc5d54d961c70cfeb0a1370269935..fc24e2f1f1ec753811ee67a58a205fbb038aaa15 100644 (file)
@@ -22,7 +22,7 @@
 
 
 int
-fesetenv (const fenv_t *envp)
+__fesetenv (const fenv_t *envp)
 {
   fpu_control_t fpscr, new_fpscr, updated_fpscr;
 
@@ -61,4 +61,6 @@ fesetenv (const fenv_t *envp)
 
   return 0;
 }
-libm_hidden_def (fesetenv)
+libm_hidden_def (__fesetenv)
+weak_alias (__fesetenv, fesetenv)
+libm_hidden_weak (fesetenv)
index 3a080d8721977b12ab4d23c1c3d6eefef634248f..3d987383e9ab6f3d8972e69f6c2692b9f961502c 100644 (file)
@@ -462,7 +462,7 @@ default_libc_feholdexcept_setround (fenv_t *e, int r)
 static __always_inline void
 default_libc_fesetenv (fenv_t *e)
 {
-  (void) fesetenv (e);
+  (void) __fesetenv (e);
 }
 
 #ifndef libc_fesetenv
@@ -626,7 +626,7 @@ static __always_inline void
 libc_feresetround_noex_ctx (struct rm_ctx *ctx)
 {
   /* Restore exception flags and rounding mode.  */
-  fesetenv (&ctx->env);
+  __fesetenv (&ctx->env);
 }
 
 # define libc_feholdsetroundf_ctx libc_feholdsetround_ctx
index 2d28446e12637bb0b767920d5427b27e917a296d..5b33ad61027ad17edc1568261d15f9e46302b1fd 100644 (file)
@@ -22,7 +22,7 @@
 #include <fenv.h>
 
 int
-fesetenv (const fenv_t *envp)
+__fesetenv (const fenv_t *envp)
 {
   union { unsigned long long buf[4]; fenv_t env; } temp;
   unsigned long long *bufptr;
@@ -60,4 +60,6 @@ fesetenv (const fenv_t *envp)
   /* Success.  */
   return 0;
 }
-libm_hidden_def (fesetenv)
+libm_hidden_def (__fesetenv)
+weak_alias (__fesetenv, fesetenv)
+libm_hidden_weak (fesetenv)
index 60c0f11611bdcabef582817a09e31efea026792d..e6a07c31f408efc6923b5862bee780a58d5582fd 100644 (file)
@@ -33,7 +33,7 @@ feupdateenv (const fenv_t *envp)
   /* Currently raised exceptions not cleared */
   temp.__status_word |= s.sw[0] & (FE_ALL_EXCEPT << 27);
   /* Install new environment.  */
-  fesetenv (&temp);
+  __fesetenv (&temp);
   /* Success.  */
   return 0;
 }
index d692a9378fb23c76e8fa7a8ee3eaa5b23b9c3d30..9566e092caad262d08642fbf116bd60820ad4f86 100644 (file)
@@ -102,5 +102,6 @@ strong_alias (__fesetenv, __old_fesetenv)
 compat_symbol (libm, __old_fesetenv, fesetenv, GLIBC_2_1);
 #endif
 
+libm_hidden_def (__fesetenv)
 libm_hidden_ver (__fesetenv, fesetenv)
 versioned_symbol (libm, __fesetenv, fesetenv, GLIBC_2_2);
index c96708bc02b63e7bf8bb66bd5cf7692c667d825c..2f58ab39ffd0cfa391c3954475bec2df230bdf04 100644 (file)
@@ -38,7 +38,7 @@ __feupdateenv (const fenv_t *envp)
   temp = (temp | xtemp) & FE_ALL_EXCEPT;
 
   /* Install new environment.  */
-  fesetenv (envp);
+  __fesetenv (envp);
 
   /* Raise the saved exception.  Incidently for us the implementation
      defined format of the values in objects of type fexcept_t is the
index f35f62c000e3c822511e7645ae62944d0bc3fea3..62152f5bd77182848360cde11715bc3ce20c1be2 100644 (file)
@@ -20,7 +20,7 @@
 #include <fenv.h>
 
 int
-fesetenv (const fenv_t *envp)
+__fesetenv (const fenv_t *envp)
 {
   fenv_t env;
 
@@ -38,4 +38,6 @@ fesetenv (const fenv_t *envp)
 
   return 0;
 }
-libm_hidden_def (fesetenv)
+libm_hidden_def (__fesetenv)
+weak_alias (__fesetenv, fesetenv)
+libm_hidden_weak (fesetenv)
index 3047f91dcae5602738f43bb073fa540d075558de..c6415ed38b9b883252d7f19c2f9fb64aed5d6016 100644 (file)
@@ -29,7 +29,7 @@ feupdateenv (const fenv_t *envp)
   __asm__ __volatile__ ("mov.m %0=ar.fpsr" : "=r" (fpsr));
 
   /* Install new environment.  */
-  fesetenv (envp);
+  __fesetenv (envp);
 
   /* Raise the saved exceptions.  */
   __feraiseexcept ((int) (fpsr >> 13) & FE_ALL_EXCEPT);
index dd642428dbde7c4ecf63e2a95e07e5f3231d1a94..5351ae99b591899af0e6093d12a8dffb62402749 100644 (file)
@@ -70,5 +70,6 @@ strong_alias (__fesetenv, __old_fesetenv)
 compat_symbol (libm, __old_fesetenv, fesetenv, GLIBC_2_1);
 #endif
 
+libm_hidden_def (__fesetenv)
 libm_hidden_ver (__fesetenv, fesetenv)
 versioned_symbol (libm, __fesetenv, fesetenv, GLIBC_2_2);
index 5d733cb692e5bcddda267546a7b4cd0b6a5ab523..80bd59322e748522214f3f5981443026e7f02160 100644 (file)
@@ -29,7 +29,7 @@ __feupdateenv (const fenv_t *envp)
   fpsr &= FE_ALL_EXCEPT;
 
   /* Install new environment.  */
-  fesetenv (envp);
+  __fesetenv (envp);
 
   /* Raise the saved exception.  Incidently for us the implementation
      defined format of the values in objects of type fexcept_t is the
index 1470e9ce405e6d14ce0751b7a37d062f99a9683f..e1629aa1e906dd075ab0b442a29a39e5dbe21026 100644 (file)
@@ -21,7 +21,7 @@
 #include <fpu_control.h>
 
 int
-fesetenv (const fenv_t *envp)
+__fesetenv (const fenv_t *envp)
 {
   fpu_control_t cw;
 
@@ -39,4 +39,6 @@ fesetenv (const fenv_t *envp)
   return 0;
 }
 
-libm_hidden_def (fesetenv)
+libm_hidden_def (__fesetenv)
+weak_alias (__fesetenv, fesetenv)
+libm_hidden_weak (fesetenv)
index 4b3bda938839e7a353c3b41be4644708f48c79ca..2fe8ebe60ccabaacc4df8a412b0ed27336954522 100644 (file)
@@ -30,7 +30,7 @@ feupdateenv (const fenv_t *envp)
   temp &= FE_ALL_EXCEPT;
 
   /* Install new environment.  */
-  fesetenv (envp);
+  __fesetenv (envp);
 
   /* Raise the safed exception.  Incidently for us the implementation
      defined format of the values in objects of type fexcept_t is the
index 4ce41a6fd0e59acbc67c13cbe7d6480986127252..e7407cd31f07f57fc63bce45a068f6f64304dff9 100644 (file)
@@ -58,5 +58,6 @@ strong_alias (__fesetenv, __old_fesetenv)
 compat_symbol (libm, __old_fesetenv, fesetenv, GLIBC_2_1);
 #endif
 
+libm_hidden_def (__fesetenv)
 libm_hidden_ver (__fesetenv, fesetenv)
 versioned_symbol (libm, __fesetenv, fesetenv, GLIBC_2_2);
index e9ffb6295508cb25cbcabd46df1ab30243323744..0385d21d9b3a3827154bcf3eb7b76341cdc84d6b 100644 (file)
@@ -42,5 +42,6 @@ strong_alias (__fesetenv, __old_fesetenv)
 compat_symbol (libm, __old_fesetenv, fesetenv, GLIBC_2_1);
 #endif
 
+libm_hidden_def (__fesetenv)
 libm_hidden_ver (__fesetenv, fesetenv)
 versioned_symbol (libm, __fesetenv, fesetenv, GLIBC_2_2);
index 3afe548efe703b13ebc565459896045d4c8ecbdc..892e4637273cc9266ec3d07a0f677414e8dceb25 100644 (file)
@@ -31,7 +31,7 @@ __feupdateenv (const fenv_t *envp)
   saved_exceptions = __sim_exceptions_thread;
 
   /* Set environment.  */
-  fesetenv (envp);
+  __fesetenv (envp);
 
   /* Raise old exceptions.  */
   __sim_exceptions_thread |= saved_exceptions;
index 2e3acbe2382113d9d2fa4de2b0415b660465d9bc..f0ee1f0a5a8825a01eba5a6b5c401d120887481f 100644 (file)
@@ -45,5 +45,6 @@ strong_alias (__fesetenv, __old_fesetenv)
 compat_symbol (libm, __old_fesetenv, fesetenv, GLIBC_2_1);
 #endif
 
+libm_hidden_def (__fesetenv)
 libm_hidden_ver (__fesetenv, fesetenv)
 versioned_symbol (libm, __fesetenv, fesetenv, GLIBC_2_2);
index 6132c7ed1904183b4b7c9e104ea58eae0dfdbc85..cb6a1487ac7fb8a77104a2beeb32ccf57e7538a0 100644 (file)
@@ -28,7 +28,7 @@ __feupdateenv (const fenv_t *envp)
   exc = fegetenv_register () & SPEFSCR_ALL_EXCEPT;
 
   /* Install new environment.  */
-  fesetenv (envp);
+  __fesetenv (envp);
 
   /* Raise (if appropriate) saved exceptions. */
   __feraiseexcept_spe (exc);
index d675febeca1b3cacad35449676572b333324bd66..467716a2ae635de819e53c7ad0336792b1c56f32 100644 (file)
@@ -25,7 +25,7 @@
 #include <unistd.h>
 
 int
-fesetenv (const fenv_t *envp)
+__fesetenv (const fenv_t *envp)
 {
   fenv_t env;
 
@@ -47,4 +47,6 @@ fesetenv (const fenv_t *envp)
   /* Success.  */
   return 0;
 }
-libm_hidden_def (fesetenv)
+libm_hidden_def (__fesetenv)
+weak_alias (__fesetenv, fesetenv)
+libm_hidden_weak (fesetenv)
index 662b0dfca11e6ba3862b2b21e976bddea192ff30..957c8fe9addaaa0dd32345abcddbb7452de1e303 100644 (file)
@@ -31,7 +31,7 @@ feupdateenv (const fenv_t *envp)
 
   /* Raise the exceptions since the last call to feholdenv  */
   /* re install saved environment.  */
-  fesetenv (envp);
+  __fesetenv (envp);
   __feraiseexcept ((int) temp);
 
   /* Success.  */
index 846e819865283cf0877be49c2878d89376d829e1..e4bfbe8c45b1b36ba37325eced10fe546fca72ef 100644 (file)
@@ -20,7 +20,7 @@
 #include <fpu_control.h>
 
 int
-fesetenv (const fenv_t *envp)
+__fesetenv (const fenv_t *envp)
 {
   if (envp == FE_DFL_ENV)
       _FPU_SETCW (_FPU_DEFAULT);
@@ -31,4 +31,6 @@ fesetenv (const fenv_t *envp)
     }
   return 0;
 }
-libm_hidden_def (fesetenv)
+libm_hidden_def (__fesetenv)
+weak_alias (__fesetenv, fesetenv)
+libm_hidden_weak (fesetenv)
index 97d524bf6efd21e61f67f9e42f3cb40f2979f964..25729d9c1ffb288a13546bb80ba17ee180769888 100644 (file)
@@ -31,7 +31,7 @@ feupdateenv (const fenv_t *envp)
   /* Raise the saved exception. Incidently for us the implementation
     defined format of the values in objects of type fexcept_t is the
     same as the ones specified using the FE_* constants. */
-  fesetenv (envp);
+  __fesetenv (envp);
   __feraiseexcept ((int) temp);
 
   return 0;
index 11954beeb2fe8f47e763b919b0d6c0854bf5daca..3f89ab74119940d11ccf8b587627630f8959ecb6 100644 (file)
@@ -50,5 +50,6 @@ strong_alias (__fesetenv, __old_fesetenv)
 compat_symbol (libm, __old_fesetenv, fesetenv, GLIBC_2_1);
 #endif
 
+libm_hidden_def (__fesetenv)
 libm_hidden_ver (__fesetenv, fesetenv)
 versioned_symbol (libm, __fesetenv, fesetenv, GLIBC_2_2);
index db5f382a34fecb3931bcb07f8cffb3209817817b..cb001e19c88c9d818ce9e697700e2c812284439f 100644 (file)
@@ -29,7 +29,7 @@ __feupdateenv (const fenv_t *envp)
   tmp &= FE_ALL_EXCEPT;
 
   /* Install new environment.  */
-  fesetenv (envp);
+  __fesetenv (envp);
 
   /* Raise the safed exception.  Incidently for us the implementation
      defined format of the values in objects of type fexcept_t is the
index 6b9e7618dd1d001c3e8b2610742de6b4d7cd41b0..8ff1435f17e4732ecc34b75a9666c780c79b484e 100644 (file)
@@ -32,6 +32,7 @@
 extern inline int fegetenv (fenv_t *__e)       { return 0; }
 extern inline int __fegetenv (fenv_t *__e)     { return 0; }
 extern inline int fesetenv (const 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; }
index 40428a67543cf841ae03ea55351ed67c1f301084..3e3fd8492d14f260f0353619ae5790d6386f93e2 100644 (file)
@@ -21,7 +21,7 @@
 
 
 int
-fesetenv (const fenv_t *envp)
+__fesetenv (const fenv_t *envp)
 {
   fenv_t temp;
 
@@ -85,4 +85,6 @@ fesetenv (const fenv_t *envp)
   /* Success.  */
   return 0;
 }
-libm_hidden_def (fesetenv)
+libm_hidden_def (__fesetenv)
+weak_alias (__fesetenv, fesetenv)
+libm_hidden_weak (fesetenv)
index aaff4d2a1d1f3e1e7bea5913fe78b8672bbfa1a3..7aab1ad2ca527dbe5dd80d82e2d834b6ae88142c 100644 (file)
@@ -30,7 +30,7 @@ __feupdateenv (const fenv_t *envp)
   temp = (temp | xtemp) & FE_ALL_EXCEPT;
 
   /* Install new environment.  */
-  fesetenv (envp);
+  __fesetenv (envp);
 
   /* Raise the saved exception.  Incidently for us the implementation
      defined format of the values in objects of type fexcept_t is the