Fix assert_func warning/error

* Add while(1) to assert_func to avoid "function returns" warning
* Define a weak attr in mpconfig.h
It's already declared as no return in <assert.h>, gcc thinks (for some reason) that it *does* return and generates a warning or error (with -Werror)