<p>osmith has uploaded this change for <strong>review</strong>.</p><p><a href="https://gerrit.osmocom.org/c/libosmo-sccp/+/22629">View Change</a></p><pre style="font-family: monospace,monospace; white-space: pre-wrap;">xua_msg: fix gcc 4 + -std=gnu11 error<br><br>Fix 'error: initializer element is not constant' with debian 8's gcc<br>4.9.2, triggered by XUA_HDR. Create a new _XUA_HDR without the type cast,<br>and use it inside of const struct definitions (xua_test.c). The new<br>macro is needed, because removing the type cast from the original<br>XUA_HDR would break other uses.<br><br>Related: OS#5004<br>Change-Id: I890432ee976043d012b01023f7dd2cfecf79d115<br>---<br>M include/osmocom/sigtran/xua_msg.h<br>M tests/xua/xua_test.c<br>2 files changed, 15 insertions(+), 12 deletions(-)<br><br></pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;">git pull ssh://gerrit.osmocom.org:29418/libosmo-sccp refs/changes/29/22629/1</pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;"><span>diff --git a/include/osmocom/sigtran/xua_msg.h b/include/osmocom/sigtran/xua_msg.h</span><br><span>index e912e02..749d158 100644</span><br><span>--- a/include/osmocom/sigtran/xua_msg.h</span><br><span>+++ b/include/osmocom/sigtran/xua_msg.h</span><br><span>@@ -22,7 +22,10 @@</span><br><span> #include <osmocom/core/linuxlist.h></span><br><span> #include <osmocom/sigtran/mtp_sap.h></span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-#define XUA_HDR(class, type)        ((struct xua_common_hdr) { .spare = 0, .msg_class = (class), .msg_type = (type) })</span><br><span style="color: hsl(120, 100%, 40%);">+/* GCC-4 errors with 'initializer element is not constant' if using XUA_HDR</span><br><span style="color: hsl(120, 100%, 40%);">+ * inside a const struct (OS#5004) */</span><br><span style="color: hsl(120, 100%, 40%);">+#define _XUA_HDR(class, type)   { .spare = 0, .msg_class = (class), .msg_type = (type) }</span><br><span style="color: hsl(120, 100%, 40%);">+#define XUA_HDR(class, type)  ((struct xua_common_hdr) _XUA_HDR(class, type))</span><br><span> </span><br><span> struct msgb;</span><br><span> struct osmo_sccp_addr;</span><br><span>diff --git a/tests/xua/xua_test.c b/tests/xua/xua_test.c</span><br><span>index 77daa56..4f2c96c 100644</span><br><span>--- a/tests/xua/xua_test.c</span><br><span>+++ b/tests/xua/xua_test.c</span><br><span>@@ -384,7 +384,7 @@</span><br><span>             .name = "BSSMAP-RESET",</span><br><span>            .sccp = PANDSIZ(bssmap_reset),</span><br><span>               .sua = {</span><br><span style="color: hsl(0, 100%, 40%);">-                        .hdr = XUA_HDR(SUA_MSGC_CL, SUA_CL_CLDT),</span><br><span style="color: hsl(120, 100%, 40%);">+                     .hdr = _XUA_HDR(SUA_MSGC_CL, SUA_CL_CLDT),</span><br><span>                   .parts = {</span><br><span>                           PARTU32(SUA_IEI_PROTO_CLASS, &sua_proto_class0),</span><br><span>                                 PARTARR(SUA_IEI_DEST_ADDR, sua_addr_ssn_bssmap),</span><br><span>@@ -395,7 +395,7 @@</span><br><span>               .name = "BSSMAP-RESET-ACK",</span><br><span>                .sccp = PANDSIZ(bssmap_reset_ack),</span><br><span>           .sua = {</span><br><span style="color: hsl(0, 100%, 40%);">-                        .hdr = XUA_HDR(SUA_MSGC_CL, SUA_CL_CLDT),</span><br><span style="color: hsl(120, 100%, 40%);">+                     .hdr = _XUA_HDR(SUA_MSGC_CL, SUA_CL_CLDT),</span><br><span>                   .parts = {</span><br><span>                           PARTU32(SUA_IEI_PROTO_CLASS, &sua_proto_class0),</span><br><span>                                 PARTARR(SUA_IEI_DEST_ADDR, sua_addr_ssn_bssmap_pc1),</span><br><span>@@ -406,7 +406,7 @@</span><br><span>           .name = "BSSMAP-PAGING",</span><br><span>           .sccp = PANDSIZ(bssmap_paging),</span><br><span>              .sua = {</span><br><span style="color: hsl(0, 100%, 40%);">-                        .hdr = XUA_HDR(SUA_MSGC_CL, SUA_CL_CLDT),</span><br><span style="color: hsl(120, 100%, 40%);">+                     .hdr = _XUA_HDR(SUA_MSGC_CL, SUA_CL_CLDT),</span><br><span>                   .parts = {</span><br><span>                           PARTU32(SUA_IEI_PROTO_CLASS, &sua_proto_class0),</span><br><span>                                 PARTARR(SUA_IEI_DEST_ADDR, sua_addr_ssn_bssmap_pc1),</span><br><span>@@ -417,7 +417,7 @@</span><br><span>           .name = "BSSMAP-UDT",</span><br><span>              .sccp = PANDSIZ(bssmap_udt),</span><br><span>                 .sua = {</span><br><span style="color: hsl(0, 100%, 40%);">-                        .hdr = XUA_HDR(SUA_MSGC_CL, SUA_CL_CLDT),</span><br><span style="color: hsl(120, 100%, 40%);">+                     .hdr = _XUA_HDR(SUA_MSGC_CL, SUA_CL_CLDT),</span><br><span>                   .parts = {</span><br><span>                           PARTU32(SUA_IEI_PROTO_CLASS, &sua_proto_class0),</span><br><span>                                 PARTARR(SUA_IEI_DEST_ADDR, sua_addr_ssn_bssmap),</span><br><span>@@ -428,7 +428,7 @@</span><br><span>               .name = "BSSMAP-CR",</span><br><span>               .sccp = PANDSIZ(bssmap_cr),</span><br><span>          .sua = {</span><br><span style="color: hsl(0, 100%, 40%);">-                        .hdr = XUA_HDR(SUA_MSGC_CO, SUA_CO_CORE),</span><br><span style="color: hsl(120, 100%, 40%);">+                     .hdr = _XUA_HDR(SUA_MSGC_CO, SUA_CO_CORE),</span><br><span>                   .parts = {</span><br><span>                           PARTU32(SUA_IEI_PROTO_CLASS, &sua_proto_class2),</span><br><span>                                 PARTU32(SUA_IEI_SRC_REF, &sua_loc_ref_bsc),</span><br><span>@@ -439,7 +439,7 @@</span><br><span>                .name = "BSSMAP-CC",</span><br><span>               .sccp = PANDSIZ(bssmap_cc),</span><br><span>          .sua = {</span><br><span style="color: hsl(0, 100%, 40%);">-                        .hdr = XUA_HDR(SUA_MSGC_CO, SUA_CO_COAK),</span><br><span style="color: hsl(120, 100%, 40%);">+                     .hdr = _XUA_HDR(SUA_MSGC_CO, SUA_CO_COAK),</span><br><span>                   .parts = {</span><br><span>                           PARTU32(SUA_IEI_PROTO_CLASS, &sua_proto_class2),</span><br><span>                                 PARTU32(SUA_IEI_SRC_REF, &sua_loc_ref_msc),</span><br><span>@@ -450,7 +450,7 @@</span><br><span>                .name = "BSSMAP-DTAP",</span><br><span>             .sccp = PANDSIZ(bssmap_dtap),</span><br><span>                .sua = {</span><br><span style="color: hsl(0, 100%, 40%);">-                        .hdr = XUA_HDR(SUA_MSGC_CO, SUA_CO_CODT),</span><br><span style="color: hsl(120, 100%, 40%);">+                     .hdr = _XUA_HDR(SUA_MSGC_CO, SUA_CO_CODT),</span><br><span>                   .parts = {</span><br><span>                           PARTU32(SUA_IEI_SRC_REF, &sua_loc_ref_msc),</span><br><span>                      },</span><br><span>@@ -459,7 +459,7 @@</span><br><span>             .name = "BSSMAP-CLEAR",</span><br><span>            .sccp = PANDSIZ(bssmap_clear),</span><br><span>               .sua = {</span><br><span style="color: hsl(0, 100%, 40%);">-                        .hdr = XUA_HDR(SUA_MSGC_CO, SUA_CO_CODT),</span><br><span style="color: hsl(120, 100%, 40%);">+                     .hdr = _XUA_HDR(SUA_MSGC_CO, SUA_CO_CODT),</span><br><span>                   .parts = {</span><br><span>                           PARTU32(SUA_IEI_SRC_REF, &sua_loc_ref_msc),</span><br><span>                      },</span><br><span>@@ -468,7 +468,7 @@</span><br><span>             .name = "BSSMAP-RELEASED",</span><br><span>                 .sccp = PANDSIZ(bssmap_released),</span><br><span>            .sua = {</span><br><span style="color: hsl(0, 100%, 40%);">-                        .hdr = XUA_HDR(SUA_MSGC_CO, SUA_CO_RELRE),</span><br><span style="color: hsl(120, 100%, 40%);">+                    .hdr = _XUA_HDR(SUA_MSGC_CO, SUA_CO_RELRE),</span><br><span>                  .parts = {</span><br><span>                           PARTU32(SUA_IEI_DEST_REF, &sua_loc_ref_msc),</span><br><span>                             PARTU32(SUA_IEI_SRC_REF, &sua_loc_ref_bsc),</span><br><span>@@ -479,7 +479,7 @@</span><br><span>                .name = "BSSMAP-RELEASE_COMPLETE",</span><br><span>                 .sccp = PANDSIZ(bssmap_release_complete),</span><br><span>            .sua = {</span><br><span style="color: hsl(0, 100%, 40%);">-                        .hdr = XUA_HDR(SUA_MSGC_CO, SUA_CO_RELCO),</span><br><span style="color: hsl(120, 100%, 40%);">+                    .hdr = _XUA_HDR(SUA_MSGC_CO, SUA_CO_RELCO),</span><br><span>                  .parts = {</span><br><span>                           PARTU32(SUA_IEI_DEST_REF, &sua_loc_ref_bsc),</span><br><span>                             PARTU32(SUA_IEI_SRC_REF, &sua_loc_ref_msc),</span><br><span>@@ -489,7 +489,7 @@</span><br><span>                .name = "TCAP",</span><br><span>            .sccp = PANDSIZ(tcap_global_title),</span><br><span>          .sua = {</span><br><span style="color: hsl(0, 100%, 40%);">-                        .hdr = XUA_HDR(SUA_MSGC_CL, SUA_CL_CLDT),</span><br><span style="color: hsl(120, 100%, 40%);">+                     .hdr = _XUA_HDR(SUA_MSGC_CL, SUA_CL_CLDT),</span><br><span>                   .parts = {</span><br><span>                   },</span><br><span>           },</span><br><span></span><br></pre><p>To view, visit <a href="https://gerrit.osmocom.org/c/libosmo-sccp/+/22629">change 22629</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/c/libosmo-sccp/+/22629"/><meta itemprop="name" content="View Change"/></div></div>

<div style="display:none"> Gerrit-Project: libosmo-sccp </div>
<div style="display:none"> Gerrit-Branch: master </div>
<div style="display:none"> Gerrit-Change-Id: I890432ee976043d012b01023f7dd2cfecf79d115 </div>
<div style="display:none"> Gerrit-Change-Number: 22629 </div>
<div style="display:none"> Gerrit-PatchSet: 1 </div>
<div style="display:none"> Gerrit-Owner: osmith <osmith@sysmocom.de> </div>
<div style="display:none"> Gerrit-MessageType: newchange </div>