the pointer "tall_bsc_ctx" belongs to the gsm_data.c file not to include file.
diff --git a/openbsc/include/openbsc/gsm_data.h b/openbsc/include/openbsc/gsm_data.h
index 9b4cf9d..af2e22c 100644
--- a/openbsc/include/openbsc/gsm_data.h
+++ b/openbsc/include/openbsc/gsm_data.h
@@ -415,7 +415,7 @@
char *gsm_band_name(enum gsm_band band);
enum gsm_band gsm_band_parse(int mhz);
-void *tall_bsc_ctx;
+extern void *tall_bsc_ctx;
static inline int is_ipaccess_bts(struct gsm_bts *bts)
{
diff --git a/openbsc/src/bsc_hack.c b/openbsc/src/bsc_hack.c
index e3e3a40..13438b9 100644
--- a/openbsc/src/bsc_hack.c
+++ b/openbsc/src/bsc_hack.c
@@ -49,8 +49,6 @@
#include <openbsc/signal.h>
#include <openbsc/talloc.h>
-void *tall_bsc_ctx;
-
/* global pointer to the gsm network data structure */
static struct gsm_network *gsmnet;
diff --git a/openbsc/src/gsm_data.c b/openbsc/src/gsm_data.c
index 81facdf..c21c6b4 100644
--- a/openbsc/src/gsm_data.c
+++ b/openbsc/src/gsm_data.c
@@ -27,6 +27,8 @@
#include <openbsc/gsm_data.h>
#include <openbsc/talloc.h>
+void *tall_bsc_ctx;
+
void set_ts_e1link(struct gsm_bts_trx_ts *ts, u_int8_t e1_nr,
u_int8_t e1_ts, u_int8_t e1_ts_ss)
{