<p>Neels Hofmeyr has uploaded this change for <strong>review</strong>.</p><p><a href="https://gerrit.osmocom.org/9279">View Change</a></p><pre style="font-family: monospace,monospace; white-space: pre-wrap;">add bsc_stubs.h to workaround linking hell for utils and tests<br><br>libbsc currently depends on functions defined in osmo-bsc/. Until we clean that<br>up, unify the place to define stubs that allow linking. (Otherwise I would edit<br>all those separate scopes for each new BSSMAP function.)<br><br>For reasons I can't even begin to understand, simply including this header with<br>trivial stubs suddenly causes the linker to require libosmo-mgcp-client and<br>libosmo-sigtran in bsc_test and gsm0408_test. Whatever, go ahead then.<br><br>Change-Id: I000be689ed071aced1a085284f924a7e77e5656d<br>---<br>M include/osmocom/bsc/Makefile.am<br>A include/osmocom/bsc/bsc_stubs.h<br>M src/ipaccess/ipaccess-config.c<br>M src/utils/bs11_config.c<br>M tests/abis/abis_test.c<br>M tests/bsc-nat/bsc_nat_test.c<br>M tests/bsc/Makefile.am<br>M tests/bsc/bsc_test.c<br>M tests/channel/channel_test.c<br>M tests/gsm0408/Makefile.am<br>M tests/gsm0408/gsm0408_test.c<br>M tests/handover/handover_test.c<br>M tests/nanobts_omlattr/nanobts_omlattr_test.c<br>13 files changed, 48 insertions(+), 36 deletions(-)<br><br></pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;">git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/79/9279/1</pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;"><span>diff --git a/include/osmocom/bsc/Makefile.am b/include/osmocom/bsc/Makefile.am</span><br><span>index b25dfd8..5a1370c 100644</span><br><span>--- a/include/osmocom/bsc/Makefile.am</span><br><span>+++ b/include/osmocom/bsc/Makefile.am</span><br><span>@@ -52,4 +52,5 @@</span><br><span>       vty.h \</span><br><span>      bsc_api.h \</span><br><span>  penalty_timers.h \</span><br><span style="color: hsl(120, 100%, 40%);">+    bsc_stubs.h \</span><br><span>        $(NULL)</span><br><span>diff --git a/include/osmocom/bsc/bsc_stubs.h b/include/osmocom/bsc/bsc_stubs.h</span><br><span>new file mode 100644</span><br><span>index 0000000..7b3244e</span><br><span>--- /dev/null</span><br><span>+++ b/include/osmocom/bsc/bsc_stubs.h</span><br><span>@@ -0,0 +1,22 @@</span><br><span style="color: hsl(120, 100%, 40%);">+/* libbsc currently references some BSSMAP functions only implemented within osmo-bsc/. Until that gets</span><br><span style="color: hsl(120, 100%, 40%);">+ * cleaned up properly, various utils and C tests need these stubs to successfully link a complete</span><br><span style="color: hsl(120, 100%, 40%);">+ * binary. This nonsense should disappear as soon as we get time to fix it. */</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+struct gsm_subscriber_connection;</span><br><span style="color: hsl(120, 100%, 40%);">+struct msgb;</span><br><span style="color: hsl(120, 100%, 40%);">+struct gsm_lchan;</span><br><span style="color: hsl(120, 100%, 40%);">+struct gsm0808_handover_required;</span><br><span style="color: hsl(120, 100%, 40%);">+struct handover;</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+int osmo_bsc_sigtran_send(struct gsm_subscriber_connection *conn, struct msgb *msg)</span><br><span style="color: hsl(120, 100%, 40%);">+{ OSMO_ASSERT(false); }</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+int osmo_bsc_sigtran_open_conn(struct gsm_subscriber_connection *conn, struct msgb *msg)</span><br><span style="color: hsl(120, 100%, 40%);">+{ return 0; }</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+int bsc_send_handover_required(struct gsm_lchan *lchan,</span><br><span style="color: hsl(120, 100%, 40%);">+                            const struct gsm0808_handover_required *params)</span><br><span style="color: hsl(120, 100%, 40%);">+{ OSMO_ASSERT(false); }</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+int bsc_send_handover_request_ack(struct handover *ho, struct msgb *rr_ho_command)</span><br><span style="color: hsl(120, 100%, 40%);">+{ OSMO_ASSERT(false); }</span><br><span>diff --git a/src/ipaccess/ipaccess-config.c b/src/ipaccess/ipaccess-config.c</span><br><span>index 2236063..f88ca6e 100644</span><br><span>--- a/src/ipaccess/ipaccess-config.c</span><br><span>+++ b/src/ipaccess/ipaccess-config.c</span><br><span>@@ -55,6 +55,8 @@</span><br><span> #include <osmocom/abis/abis.h></span><br><span> #include <osmocom/gsm/protocol/gsm_12_21.h></span><br><span> </span><br><span style="color: hsl(120, 100%, 40%);">+#include <osmocom/bsc/bsc_stubs.h></span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span> struct gsm_network *bsc_gsmnet;</span><br><span> </span><br><span> static int net_listen_testnr;</span><br><span>@@ -1072,15 +1074,3 @@</span><br><span> </span><br><span>    exit(0);</span><br><span> }</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-/* Stub */</span><br><span style="color: hsl(0, 100%, 40%);">-int osmo_bsc_sigtran_send(struct gsm_subscriber_connection *conn, struct msgb *msg)</span><br><span style="color: hsl(0, 100%, 40%);">-{</span><br><span style="color: hsl(0, 100%, 40%);">-     return 0;</span><br><span style="color: hsl(0, 100%, 40%);">-}</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-/* Stub */</span><br><span style="color: hsl(0, 100%, 40%);">-int osmo_bsc_sigtran_open_conn(struct gsm_subscriber_connection *conn, struct msgb *msg)</span><br><span style="color: hsl(0, 100%, 40%);">-{</span><br><span style="color: hsl(0, 100%, 40%);">-   return 0;</span><br><span style="color: hsl(0, 100%, 40%);">-}</span><br><span>diff --git a/src/utils/bs11_config.c b/src/utils/bs11_config.c</span><br><span>index 8d4de01..831c198 100644</span><br><span>--- a/src/utils/bs11_config.c</span><br><span>+++ b/src/utils/bs11_config.c</span><br><span>@@ -45,6 +45,8 @@</span><br><span> #include <osmocom/abis/abis.h></span><br><span> #include <osmocom/abis/e1_input.h></span><br><span> </span><br><span style="color: hsl(120, 100%, 40%);">+#include <osmocom/bsc/bsc_stubs.h></span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span> static void *tall_bs11cfg_ctx;</span><br><span> static struct e1inp_sign_link *oml_link;</span><br><span> </span><br><span>@@ -969,15 +971,3 @@</span><br><span> </span><br><span>     exit(0);</span><br><span> }</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-/* Stub */</span><br><span style="color: hsl(0, 100%, 40%);">-int osmo_bsc_sigtran_send(struct gsm_subscriber_connection *conn, struct msgb *msg)</span><br><span style="color: hsl(0, 100%, 40%);">-{</span><br><span style="color: hsl(0, 100%, 40%);">-     return 0;</span><br><span style="color: hsl(0, 100%, 40%);">-}</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-/* Stub */</span><br><span style="color: hsl(0, 100%, 40%);">-int osmo_bsc_sigtran_open_conn(struct gsm_subscriber_connection *conn, struct msgb *msg)</span><br><span style="color: hsl(0, 100%, 40%);">-{</span><br><span style="color: hsl(0, 100%, 40%);">-   return 0;</span><br><span style="color: hsl(0, 100%, 40%);">-}</span><br><span>diff --git a/tests/abis/abis_test.c b/tests/abis/abis_test.c</span><br><span>index faf9ea5..93f5924 100644</span><br><span>--- a/tests/abis/abis_test.c</span><br><span>+++ b/tests/abis/abis_test.c</span><br><span>@@ -29,6 +29,8 @@</span><br><span> #include <osmocom/bsc/abis_nm.h></span><br><span> #include <osmocom/bsc/debug.h></span><br><span> </span><br><span style="color: hsl(120, 100%, 40%);">+#include <osmocom/bsc/bsc_stubs.h></span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span> static const uint8_t load_config[] = {</span><br><span>      0x42, 0x12, 0x00, 0x08, 0x31, 0x36, 0x38, 0x64,</span><br><span>      0x34, 0x37, 0x32, 0x00, 0x13, 0x00, 0x0b, 0x76,</span><br><span>diff --git a/tests/bsc-nat/bsc_nat_test.c b/tests/bsc-nat/bsc_nat_test.c</span><br><span>index 7aa39ec..fcc01f2 100644</span><br><span>--- a/tests/bsc-nat/bsc_nat_test.c</span><br><span>+++ b/tests/bsc-nat/bsc_nat_test.c</span><br><span>@@ -29,6 +29,8 @@</span><br><span> #include <osmocom/bsc/bsc_msg_filter.h></span><br><span> #include <osmocom/bsc/nat_rewrite_trie.h></span><br><span> </span><br><span style="color: hsl(120, 100%, 40%);">+#include <osmocom/bsc/bsc_stubs.h></span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span> #include <osmocom/core/application.h></span><br><span> #include <osmocom/core/backtrace.h></span><br><span> #include <osmocom/core/talloc.h></span><br><span>diff --git a/tests/bsc/Makefile.am b/tests/bsc/Makefile.am</span><br><span>index a436c27..89e897c 100644</span><br><span>--- a/tests/bsc/Makefile.am</span><br><span>+++ b/tests/bsc/Makefile.am</span><br><span>@@ -9,7 +9,7 @@</span><br><span>        $(LIBOSMOCORE_CFLAGS) \</span><br><span>      $(LIBOSMOGSM_CFLAGS) \</span><br><span>       $(LIBOSMOABIS_CFLAGS) \</span><br><span style="color: hsl(0, 100%, 40%);">- $(LIBOSMOLEGACYMGCP_CFLAGS) \</span><br><span style="color: hsl(120, 100%, 40%);">+ $(LIBOSMOMGCPCLIENT_CFLAGS) \</span><br><span>        $(LIBOSMOSIGTRAN_CFLAGS) \</span><br><span>   $(COVERAGE_CFLAGS) \</span><br><span>         $(NULL)</span><br><span>@@ -37,7 +37,8 @@</span><br><span>  $(LIBOSMOGSM_LIBS) \</span><br><span>         $(LIBOSMOVTY_LIBS) \</span><br><span>         $(LIBOSMOABIS_LIBS) \</span><br><span style="color: hsl(0, 100%, 40%);">-   $(LIBOSMOLEGACYMGCP_LIBS) \</span><br><span style="color: hsl(120, 100%, 40%);">+   $(LIBOSMOMGCPCLIENT_LIBS) \</span><br><span style="color: hsl(120, 100%, 40%);">+   $(LIBOSMOSIGTRAN_LIBS) \</span><br><span>     $(LIBRARY_GSM) \</span><br><span>     -lrt \</span><br><span>       $(NULL)</span><br><span>diff --git a/tests/bsc/bsc_test.c b/tests/bsc/bsc_test.c</span><br><span>index 106b08b..d7b8ccd 100644</span><br><span>--- a/tests/bsc/bsc_test.c</span><br><span>+++ b/tests/bsc/bsc_test.c</span><br><span>@@ -32,6 +32,8 @@</span><br><span> #include <osmocom/bsc/gsm_04_80.h></span><br><span> #include <osmocom/bsc/common_bsc.h></span><br><span> </span><br><span style="color: hsl(120, 100%, 40%);">+#include <osmocom/bsc/bsc_stubs.h></span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span> #include <osmocom/core/application.h></span><br><span> #include <osmocom/core/backtrace.h></span><br><span> #include <osmocom/core/talloc.h></span><br><span>@@ -239,7 +241,3 @@</span><br><span>        talloc_free(ctx);</span><br><span>    return 0;</span><br><span> }</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-struct gsm_subscriber_connection *bsc_subscr_con_allocate(struct gsm_network *net) {</span><br><span style="color: hsl(0, 100%, 40%);">-      OSMO_ASSERT(0);</span><br><span style="color: hsl(0, 100%, 40%);">-}</span><br><span>diff --git a/tests/channel/channel_test.c b/tests/channel/channel_test.c</span><br><span>index e8f6cd9..dcffa87 100644</span><br><span>--- a/tests/channel/channel_test.c</span><br><span>+++ b/tests/channel/channel_test.c</span><br><span>@@ -29,6 +29,8 @@</span><br><span> #include <osmocom/bsc/abis_rsl.h></span><br><span> #include <osmocom/bsc/debug.h></span><br><span> </span><br><span style="color: hsl(120, 100%, 40%);">+#include <osmocom/bsc/bsc_stubs.h></span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span> void test_bts_debug_print(void)</span><br><span> {</span><br><span>         struct gsm_network *network;</span><br><span>diff --git a/tests/gsm0408/Makefile.am b/tests/gsm0408/Makefile.am</span><br><span>index 9a74d44..0c917ad 100644</span><br><span>--- a/tests/gsm0408/Makefile.am</span><br><span>+++ b/tests/gsm0408/Makefile.am</span><br><span>@@ -8,6 +8,8 @@</span><br><span>      $(LIBOSMOCORE_CFLAGS) \</span><br><span>      $(LIBOSMOGSM_CFLAGS) \</span><br><span>       $(LIBOSMOABIS_CFLAGS) \</span><br><span style="color: hsl(120, 100%, 40%);">+       $(LIBOSMOMGCPCLIENT_CFLAGS) \</span><br><span style="color: hsl(120, 100%, 40%);">+ $(LIBOSMOSIGTRAN_CFLAGS) \</span><br><span>   $(NULL)</span><br><span> </span><br><span> noinst_PROGRAMS = \</span><br><span>@@ -27,4 +29,6 @@</span><br><span>       $(LIBOSMOCORE_LIBS) \</span><br><span>        $(LIBOSMOGSM_LIBS) \</span><br><span>         $(LIBOSMOABIS_LIBS) \</span><br><span style="color: hsl(120, 100%, 40%);">+ $(LIBOSMOMGCPCLIENT_LIBS) \</span><br><span style="color: hsl(120, 100%, 40%);">+   $(LIBOSMOSIGTRAN_LIBS) \</span><br><span>     $(NULL)</span><br><span>diff --git a/tests/gsm0408/gsm0408_test.c b/tests/gsm0408/gsm0408_test.c</span><br><span>index a934806..da02117 100644</span><br><span>--- a/tests/gsm0408/gsm0408_test.c</span><br><span>+++ b/tests/gsm0408/gsm0408_test.c</span><br><span>@@ -31,6 +31,8 @@</span><br><span> #include <osmocom/bsc/system_information.h></span><br><span> #include <osmocom/bsc/abis_rsl.h></span><br><span> </span><br><span style="color: hsl(120, 100%, 40%);">+#include <osmocom/bsc/bsc_stubs.h></span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span> #include <osmocom/core/application.h></span><br><span> #include <osmocom/core/byteswap.h></span><br><span> #include <osmocom/gsm/sysinfo.h></span><br><span>@@ -844,7 +846,3 @@</span><br><span> </span><br><span>      return EXIT_SUCCESS;</span><br><span> }</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-struct gsm_subscriber_connection *bsc_subscr_con_allocate(struct gsm_network *net) {</span><br><span style="color: hsl(0, 100%, 40%);">-   OSMO_ASSERT(0);</span><br><span style="color: hsl(0, 100%, 40%);">-}</span><br><span>diff --git a/tests/handover/handover_test.c b/tests/handover/handover_test.c</span><br><span>index 82afbe5..caa57c1 100644</span><br><span>--- a/tests/handover/handover_test.c</span><br><span>+++ b/tests/handover/handover_test.c</span><br><span>@@ -43,6 +43,8 @@</span><br><span> #include <osmocom/bsc/osmo_bsc.h></span><br><span> #include <osmocom/bsc/bsc_subscr_conn_fsm.h></span><br><span> </span><br><span style="color: hsl(120, 100%, 40%);">+#include <osmocom/bsc/bsc_stubs.h></span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span> void *ctx;</span><br><span> </span><br><span> struct gsm_network *bsc_gsmnet;</span><br><span>@@ -1695,5 +1697,3 @@</span><br><span> void trau_mux_map_lchan() {}</span><br><span> void trau_recv_lchan() {}</span><br><span> void trau_send_frame() {}</span><br><span style="color: hsl(0, 100%, 40%);">-int osmo_bsc_sigtran_send(struct gsm_subscriber_connection *conn, struct msgb *msg) { return 0; }</span><br><span style="color: hsl(0, 100%, 40%);">-int osmo_bsc_sigtran_open_conn(struct gsm_subscriber_connection *conn, struct msgb *msg) { return 0; }</span><br><span>diff --git a/tests/nanobts_omlattr/nanobts_omlattr_test.c b/tests/nanobts_omlattr/nanobts_omlattr_test.c</span><br><span>index 8e8626d..e15529f 100644</span><br><span>--- a/tests/nanobts_omlattr/nanobts_omlattr_test.c</span><br><span>+++ b/tests/nanobts_omlattr/nanobts_omlattr_test.c</span><br><span>@@ -23,6 +23,8 @@</span><br><span> #include <osmocom/bsc/gsm_data.h></span><br><span> #include <osmocom/bsc/bts_ipaccess_nanobts_omlattr.h></span><br><span> </span><br><span style="color: hsl(120, 100%, 40%);">+#include <osmocom/bsc/bsc_stubs.h></span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span> #include <osmocom/core/talloc.h></span><br><span> #include <osmocom/core/utils.h></span><br><span> #include <osmocom/core/application.h></span><br><span></span><br></pre><p>To view, visit <a href="https://gerrit.osmocom.org/9279">change 9279</a>. To unsubscribe, or for help writing mail filters, visit <a href="https://gerrit.osmocom.org/settings">settings</a>.</p><div itemscope itemtype="http://schema.org/EmailMessage"><div itemscope itemprop="action" itemtype="http://schema.org/ViewAction"><link itemprop="url" href="https://gerrit.osmocom.org/9279"/><meta itemprop="name" content="View Change"/></div></div>

<div style="display:none"> Gerrit-Project: osmo-bsc </div>
<div style="display:none"> Gerrit-Branch: master </div>
<div style="display:none"> Gerrit-MessageType: newchange </div>
<div style="display:none"> Gerrit-Change-Id: I000be689ed071aced1a085284f924a7e77e5656d </div>
<div style="display:none"> Gerrit-Change-Number: 9279 </div>
<div style="display:none"> Gerrit-PatchSet: 1 </div>
<div style="display:none"> Gerrit-Owner: Neels Hofmeyr <nhofmeyr@sysmocom.de> </div>