From 6d1eabfeaa44cab32a6ea37d3c041a9b06ac5798 Mon Sep 17 00:00:00 2001 From: Paul Sokolovsky Date: Fri, 13 Nov 2015 13:24:39 +0200 Subject: [PATCH] unix/mpconfigport: Move log2() definition to modmath.c. It's safer to define it where it's used, defining it for all source files may lead to hard to diagnose conflicts in corner cases. --- py/modmath.c | 5 +++++ unix/mpconfigport.h | 3 +-- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/py/modmath.c b/py/modmath.c index ec74e974e8..48ba470582 100644 --- a/py/modmath.c +++ b/py/modmath.c @@ -52,6 +52,11 @@ STATIC mp_obj_t mp_math_ ## py_name(mp_obj_t x_obj) { mp_int_t x = MICROPY_FLOAT_C_FUN(c_name)(mp_obj_get_float(x_obj)); return mp_obj_new_int(x); } \ STATIC MP_DEFINE_CONST_FUN_OBJ_1(mp_math_## py_name ## _obj, mp_math_ ## py_name); +#if MP_NEED_LOG2 +// 1.442695040888963407354163704 is 1/_M_LN2 +#define log2(x) (log(x) * 1.442695040888963407354163704) +#endif + /// \function sqrt(x) /// Returns the square root of `x`. MATH_FUN_1(sqrt, sqrt) diff --git a/unix/mpconfigport.h b/unix/mpconfigport.h index 0e1fb6a401..4dbb8ee2e3 100644 --- a/unix/mpconfigport.h +++ b/unix/mpconfigport.h @@ -204,8 +204,7 @@ void mp_unix_mark_exec(void); #include #if __ANDROID_API__ < 4 // Bionic libc in Android 1.5 misses these 2 functions -// 1.442695040888963407354163704 is 1/_M_LN2 -#define log2(x) (log(x) * 1.442695040888963407354163704) +#define MP_NEED_LOG2 (1) #define nan(x) NAN #endif #endif