Fix most compiler warnings with gcc-4.9.2
diff --git a/openbsc/src/libbsc/bsc_api.c b/openbsc/src/libbsc/bsc_api.c
index 5ce0bc4..76ceb2d 100644
--- a/openbsc/src/libbsc/bsc_api.c
+++ b/openbsc/src/libbsc/bsc_api.c
@@ -89,6 +89,7 @@
 		channel = 0x9;
 		break;
 	case GSM_LCHAN_UNKNOWN:
+	default:
 		LOGP(DMSC, LOGL_ERROR, "Unknown lchan type: %p\n", lchan);
 		break;
 	}
@@ -416,7 +417,7 @@
 
 	gh = msgb_l3(msg);
 	if (msgb_l3len(msg) - sizeof(*gh) != 1) {
-		LOGP(DMSC, LOGL_ERROR, "Assignment Compl invalid: %u\n",
+		LOGP(DMSC, LOGL_ERROR, "Assignment Compl invalid: %zu\n",
 		     msgb_l3len(msg) - sizeof(*gh));
 		return;
 	}
@@ -461,7 +462,7 @@
 
 	gh = msgb_l3(msg);
 	if (msgb_l3len(msg) - sizeof(*gh) != 1) {
-		LOGP(DMSC, LOGL_ERROR, "assignemnt failure unhandled: %u\n",
+		LOGP(DMSC, LOGL_ERROR, "assignemnt failure unhandled: %zu\n",
 		     msgb_l3len(msg) - sizeof(*gh));
 		rr_failure = NULL;
 	} else {
diff --git a/openbsc/src/libmgcp/mgcp_protocol.c b/openbsc/src/libmgcp/mgcp_protocol.c
index 5df3577..f22dd20 100644
--- a/openbsc/src/libmgcp/mgcp_protocol.c
+++ b/openbsc/src/libmgcp/mgcp_protocol.c
@@ -309,7 +309,7 @@
 	return len;
 
 buffer_too_small:
-	LOGP(DMGCP, LOGL_ERROR, "SDP buffer too small: %d (needed %d)\n",
+	LOGP(DMGCP, LOGL_ERROR, "SDP buffer too small: %zd (needed %d)\n",
 	     size, len);
 	return -1;
 }
diff --git a/openbsc/src/osmo-nitb/bsc_hack.c b/openbsc/src/osmo-nitb/bsc_hack.c
index 753fd88..3517899 100644
--- a/openbsc/src/osmo-nitb/bsc_hack.c
+++ b/openbsc/src/osmo-nitb/bsc_hack.c
@@ -50,6 +50,7 @@
 #include <osmocom/ctrl/ports.h>
 #include <openbsc/ctrl.h>
 #include <openbsc/osmo_bsc_rf.h>
+#include <openbsc/smpp.h>
 
 #include "../../bscconfig.h"
 
diff --git a/openbsc/src/utils/smpp_mirror.c b/openbsc/src/utils/smpp_mirror.c
index 488c4a1..cf3657e 100644
--- a/openbsc/src/utils/smpp_mirror.c
+++ b/openbsc/src/utils/smpp_mirror.c
@@ -247,7 +247,7 @@
 	return 0;
 }
 
-static void esme_write_cb(struct osmo_fd *ofd, struct msgb *msg)
+static int esme_write_cb(struct osmo_fd *ofd, struct msgb *msg)
 {
 	struct esme *esme = ofd->data;
 	int rc;
@@ -260,8 +260,10 @@
 		exit(99);
 	} else if (rc < msgb_length(msg)) {
 		LOGP(DSMPP, LOGL_ERROR, "[%s] Short write\n", esme->system_id);
-		return;
+		return 0;
 	}
+
+	return 0;
 }
 
 static int smpp_esme_init(struct esme *esme, const char *host, uint16_t port)