From 6d1eabfeaa44cab32a6ea37d3c041a9b06ac5798 Mon Sep 17 00:00:00 2001
From: Paul Sokolovsky <pfalcon@users.sourceforge.net>
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 ec74e974e..48ba47058 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 0e1fb6a40..4dbb8ee2e 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
-- 
GitLab