Fix asser_func warning/error

* Add while(1) to assert_func to avoid func returns warning
* Define a weak attr in mpconfig.h
diff --git a/py/mpconfig.h b/py/mpconfig.h
index 4a3288a..0aefd1b 100644
--- a/py/mpconfig.h
+++ b/py/mpconfig.h
@@ -381,3 +381,8 @@
 #ifndef NORETURN
 #define NORETURN __attribute__((noreturn))
 #endif
+
+// Modifier for weak functions
+#ifndef MP_WEAK
+#define MP_WEAK __attribute__((weak))
+#endif