Don't call abort() directly, always use osmo_panic()

A loooong time ago, we introduced osmo_panic() as a wrapper around
abort().  The advantage is, that this wrapper can be overridden, and
that it will also work in embedded (bare iron) targets, where the
abort simply translates to an infinite loop.

Change-Id: I5a70eb65952cbc329bf96eacb428b07a9da32433
diff --git a/include/osmocom/core/utils.h b/include/osmocom/core/utils.h
index cd22dfb..dd4461c 100644
--- a/include/osmocom/core/utils.h
+++ b/include/osmocom/core/utils.h
@@ -4,6 +4,7 @@
 
 #include <osmocom/core/backtrace.h>
 #include <osmocom/core/talloc.h>
+#include <osmocom/core/panic.h>
 
 /*! \defgroup utils General-purpose utility functions
  *  @{
@@ -77,9 +78,7 @@
  */
 #define OSMO_ASSERT(exp)    \
 	if (!(exp)) { \
-		fprintf(stderr, "Assert failed %s %s:%d\n", #exp, __BASE_FILE__, __LINE__); \
-		osmo_generate_backtrace(); \
-		abort(); \
+		osmo_panic("Assert failed %s %s:%d\n", #exp, __BASE_FILE__, __LINE__); \
 	}
 
 /*! duplicate a string using talloc and release its prior content (if any)