components/erlang/patches/math_exp_sparc.patch
changeset 5886 abaafa90488e
equal deleted inserted replaced
5885:b62c528d39c8 5886:abaafa90488e
       
     1 Fixes bug 22811465 - math:exp() throws badarith exception on SPARC
       
     2 Fix was recommended by upstream Erlang/OTP team and is being applied to trunk.
       
     3 
       
     4 --- otp_src_17.5-ORIG/erts/emulator/sys/ose/sys_float.c	2016-04-19 13:16:27.190731082 +0100
       
     5 +++ otp_src_17.5/erts/emulator/sys/ose/sys_float.c	2016-04-19 13:18:30.669678699 +0100
       
     6 @@ -835,10 +835,5 @@
       
     7  int
       
     8  matherr(struct exception *exc)
       
     9  {
       
    10 -#if !defined(NO_FPE_SIGNALS)
       
    11 -    volatile unsigned long *fpexnp = erts_get_current_fp_exception();
       
    12 -    if (fpexnp != NULL)
       
    13 -	*fpexnp = (unsigned long)__builtin_return_address(0);
       
    14 -#endif
       
    15      return 1;
       
    16  }
       
    17 --- otp_src_17.5-ORIG/erts/emulator/sys/unix/sys_float.c	2016-04-19 13:16:27.187000925 +0100
       
    18 +++ otp_src_17.5/erts/emulator/sys/unix/sys_float.c	2016-04-19 13:18:22.503799817 +0100
       
    19 @@ -837,11 +837,6 @@
       
    20  int
       
    21  matherr(struct exception *exc)
       
    22  {
       
    23 -#if !defined(NO_FPE_SIGNALS)
       
    24 -    volatile unsigned long *fpexnp = erts_get_current_fp_exception();
       
    25 -    if (fpexnp != NULL)
       
    26 -	*fpexnp = (unsigned long)__builtin_return_address(0);
       
    27 -#endif
       
    28      return 1;
       
    29  }
       
    30  
       
    31 --- otp_src_17.5-ORIG/erts/emulator/sys/win32/sys_float.c	2016-04-19 13:16:27.187779815 +0100
       
    32 +++ otp_src_17.5/erts/emulator/sys/win32/sys_float.c	2016-04-19 13:19:05.229444947 +0100
       
    33 @@ -138,8 +138,7 @@
       
    34  int
       
    35  matherr(struct _exception *exc)
       
    36  {
       
    37 -    erl_fp_exception = 1;
       
    38 -    DEBUGF(("FP exception (matherr) (0x%x) (%d)\n", exc->type, erl_fp_exception));
       
    39 +    DEBUGF(("FP exception (matherr) (0x%x)\n", exc->type));
       
    40      return 1;
       
    41  }
       
    42