patches/uClibc/0.9.30.2/260-libm-enable-log2f-and-exp2f.patch
author Michael Hope <michael.hope@linaro.org>
Wed Oct 19 15:27:32 2011 +1300 (2011-10-19)
changeset 2739 f320e22f2cba
permissions -rw-r--r--
arch: add softfp support

Some architectures support a mixed hard/soft floating point, where
the compiler emits hardware floating point instructions, but passes
the operands in core (aka integer) registers.

For example, ARM supports this mode (to come in the next changeset).

Add support for softfp cross compilers to the GCC and GLIBC
configuration. Needed for Ubuntu and other distros that are softfp.

Signed-off-by: Michael Hope <michael.hope@linaro.org>
[yann.morin.1998@anciens.enib.fr: split the original patch]
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
     1 From 956a0087e282e53ba9c085dbbc469391f7234944 Mon Sep 17 00:00:00 2001
     2 From: Aurelien Jacobs <aurel@gnuage.org>
     3 Date: Thu, 4 Feb 2010 09:31:40 -0800
     4 Subject: [PATCH 10/15] libm: enable log2f and exp2f
     5 
     6 Signed-off-by: Aurelien Jacobs <aurel@gnuage.org>
     7 Signed-off-by: Austin Foxley <austinf@cetoncorp.com>
     8 ---
     9  libm/float_wrappers.c    |    4 ++--
    10  test/math/compile_test.c |    4 ++--
    11  2 files changed, 4 insertions(+), 4 deletions(-)
    12 
    13 diff --git a/libm/float_wrappers.c b/libm/float_wrappers.c
    14 index dc315e7..b7317a1 100644
    15 --- a/libm/float_wrappers.c
    16 +++ b/libm/float_wrappers.c
    17 @@ -15,12 +15,10 @@
    18  
    19  /* For the time being, do _NOT_ implement these functions
    20   * that are defined by SuSv3 */
    21 -#undef L_exp2f         /*float       exp2f(float);*/
    22  #undef L_fdimf         /*float       fdimf(float, float);*/
    23  #undef L_fmaf          /*float       fmaf(float, float, float);*/
    24  #undef L_fmaxf         /*float       fmaxf(float, float);*/
    25  #undef L_fminf         /*float       fminf(float, float);*/
    26 -#undef L_log2f         /*float       log2f(float);*/
    27  #undef L_nearbyintf    /*float       nearbyintf(float);*/
    28  #undef L_nexttowardf   /*float       nexttowardf(float, long double);*/
    29  #undef L_remquof       /*float       remquof(float, float, int *);*/
    30 @@ -43,6 +41,7 @@ float       cosf(float);
    31  float       coshf(float);
    32  float       erfcf(float);
    33  float       erff(float);
    34 +float       exp2f(float);
    35  float       expf(float);
    36  float       expm1f(float);
    37  float       fabsf(float);
    38 @@ -56,6 +55,7 @@ float       lgammaf(float);
    39  long long   llroundf(float);
    40  float       log10f(float);
    41  float       log1pf(float);
    42 +float       log2f(float);
    43  float       logbf(float);
    44  float       logf(float);
    45  long        lroundf(float);
    46 diff --git a/test/math/compile_test.c b/test/math/compile_test.c
    47 index 9990520..ee5e2e3 100644
    48 --- a/test/math/compile_test.c
    49 +++ b/test/math/compile_test.c
    50 @@ -18,7 +18,7 @@ r += cosf(float_x);
    51  r += coshf(float_x);
    52  r += erfcf(float_x);
    53  r += erff(float_x);
    54 -/*r += exp2f(float_x); - uclibc does not have it (yet?) */
    55 +r += exp2f(float_x);
    56  r += expf(float_x);
    57  r += expm1f(float_x);
    58  r += fabsf(float_x);
    59 @@ -38,7 +38,7 @@ r += llrintf(float_x);
    60  r += llroundf(float_x);
    61  r += log10f(float_x);
    62  r += log1pf(float_x);
    63 -/*r += log2f(float_x); - uclibc does not have it (yet?) */
    64 +r += log2f(float_x);
    65  r += logbf(float_x);
    66  r += logf(float_x);
    67  r += lrintf(float_x);
    68 -- 
    69 1.6.6.1
    70