summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
authorPaul Sokolovsky <pfalcon@users.sourceforge.net>2015-11-13 13:24:39 +0200
committerPaul Sokolovsky <pfalcon@users.sourceforge.net>2015-11-13 15:24:48 +0200
commit6d1eabfeaa44cab32a6ea37d3c041a9b06ac5798 (patch)
treeca4bd99d9855abb28359d599c9a8d96bf7693586
parent432e8275a9b383ba7f33b4a582d6dde0e1a1e35d (diff)
downloadmicropython-6d1eabfeaa44cab32a6ea37d3c041a9b06ac5798.tar.gz
micropython-6d1eabfeaa44cab32a6ea37d3c041a9b06ac5798.zip
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.
-rw-r--r--py/modmath.c5
-rw-r--r--unix/mpconfigport.h3
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 <android/api-level.h>
#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