Hi,
This patch is awaiting review upstream[1], but I figured it ought to be safe enough (i.e. not cause any showstopping problems) in Fedora. I'd like to push this into at least rawhide and F19 (F-18 too if possible) to get a wide enough testing feedback. Would that be OK?
Siddhesh
[1] http://sourceware.org/ml/libc-alpha/2013-05/msg01029.html
commit 4d2eb77635a14afa17ba019a04053b7c21ab0c99 Author: Siddhesh Poyarekar siddhesh@redhat.com Date: Thu May 30 15:18:29 2013 +0530
Skip modifying exception mask and flags in SET_RESTORE_ROUND_53BIT
diff --git a/sysdeps/generic/math_private.h b/sysdeps/generic/math_private.h index 9d6ecad..e98360d 100644 --- a/sysdeps/generic/math_private.h +++ b/sysdeps/generic/math_private.h @@ -446,8 +446,8 @@ default_libc_feholdexcept_setround (fenv_t *e, int r) # define libc_feholdexcept_setroundl default_libc_feholdexcept_setround #endif
-#ifndef libc_feholdexcept_setround_53bit -# define libc_feholdexcept_setround_53bit libc_feholdexcept_setround +#ifndef libc_feholdsetround_53bit +# define libc_feholdsetround_53bit libc_feholdsetround #endif
#ifndef libc_fetestexcept @@ -492,8 +492,8 @@ default_libc_feupdateenv (fenv_t *e) # define libc_feupdateenvl default_libc_feupdateenv #endif
-#ifndef libc_feupdateenv_53bit -# define libc_feupdateenv_53bit libc_feupdateenv +#ifndef libc_feresetround_53bit +# define libc_feresetround_53bit libc_feresetround #endif
static __always_inline int @@ -580,8 +580,8 @@ default_libc_feupdateenv_test (fenv_t *e, int ex)
/* Like SET_RESTORE_ROUND, but also set rounding precision to 53 bits. */ #define SET_RESTORE_ROUND_53BIT(RM) \ - fenv_t __libc_save_rm __attribute__((cleanup(libc_feupdateenv_53bit))); \ - libc_feholdexcept_setround_53bit (&__libc_save_rm, (RM)) + fenv_t __libc_save_rm __attribute__((cleanup(libc_feresetround_53bit))); \ + libc_feholdsetround_53bit (&__libc_save_rm, (RM))
#define __nan(str) \ (__builtin_constant_p (str) && str[0] == '\0' ? NAN : __nan (str))