summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKai Kang <kai.kang@windriver.com>2015-08-26 17:05:48 +0800
committerJoe MacDonald <joe_macdonald@mentor.com>2015-09-14 14:48:17 -0400
commit9b20fb3f8ca6d22cfb22dd5d9454f13e47224d7a (patch)
treecdf4523a702863ee6beb32262d13e54fc91d9532
parent43188cd97418e1456abd564a4464beadbdb3f345 (diff)
downloadmeta-openembedded-9b20fb3f8ca6d22cfb22dd5d9454f13e47224d7a.tar.gz
opensaf: fix build errors with gcc 5
Backport patches from upstream to fix opensaf build failures with gcc 5. Signed-off-by: Kai Kang <kai.kang@windriver.com> Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com> Signed-off-by: Joe MacDonald <joe_macdonald@mentor.com>
-rw-r--r--meta-networking/recipes-daemons/opensaf/opensaf/Fix_GCC_5.1.0_compiler_warning.patch64
-rw-r--r--meta-networking/recipes-daemons/opensaf/opensaf/Revert_imma_client_node_replyPending_to_unsigned_char.patch80
-rw-r--r--meta-networking/recipes-daemons/opensaf/opensaf_4.6.0.bb2
3 files changed, 146 insertions, 0 deletions
diff --git a/meta-networking/recipes-daemons/opensaf/opensaf/Fix_GCC_5.1.0_compiler_warning.patch b/meta-networking/recipes-daemons/opensaf/opensaf/Fix_GCC_5.1.0_compiler_warning.patch
new file mode 100644
index 000000000..860d61245
--- /dev/null
+++ b/meta-networking/recipes-daemons/opensaf/opensaf/Fix_GCC_5.1.0_compiler_warning.patch
@@ -0,0 +1,64 @@
1Upstream-Status: Backport
2
3Signed-off-by: Kai Kang <kai.kang@windriver.com>
4---
5# HG changeset patch
6# User Anders Widell <anders.widell@ericsson.com>
7# Date 1431081180 -7200
8# Fri May 08 12:33:00 2015 +0200
9# Branch opensaf-4.5.x
10# Node ID ee74d1846cadf5c237f420279610968216e3bbe0
11# Parent 32079e2039d2a31c1adfbe7eef2e6ee8a2e25810
12amf: Fix GCC 5.1.0 compiler warning [#1340]
13
14The following warning was fixed by replacing the case statement with an if
15statement:
16
17susm.cc: In function 'uint32_t avnd_evt_avd_su_pres_evh(AVND_CB*, AVND_EVT*)':
18susm.cc:1237:26: error: switch condition has type bool [-Werror=switch-bool]
19 switch (info->term_state) {
20 ^
21
22diff -r 32079e2039d2 -r ee74d1846cad osaf/services/saf/amf/amfnd/susm.cc
23--- a/osaf/services/saf/amf/amfnd/susm.cc Fri May 08 12:10:55 2015 +0530
24+++ b/osaf/services/saf/amf/amfnd/susm.cc Fri May 08 12:33:00 2015 +0200
25@@ -1234,8 +1234,7 @@
26 goto done;
27 }
28
29- switch (info->term_state) {
30- case true: /* => terminate the su */
31+ if (info->term_state) { /* => terminate the su */
32 /* Stop saAmfSGSuRestartProb timer if started */
33 if (su->su_err_esc_level == AVND_ERR_ESC_LEVEL_1) {
34 tmr_su_err_esc_stop(cb, su);
35@@ -1269,9 +1268,7 @@
36 if (NCSCC_RC_SUCCESS != rc)
37 goto done;
38 }
39- break;
40-
41- case false: /* => instantiate the su */
42+ } else { /* => instantiate the su */
43 TRACE("SU term state is set to false");
44 /* Reset admn term operation flag */
45 m_AVND_SU_ADMN_TERM_RESET(su);
46@@ -1299,7 +1296,7 @@
47 /* Will transition to instantiation-failed when instantiated */
48 LOG_ER("'%s':FAILED", __FUNCTION__);
49 rc = NCSCC_RC_FAILURE;
50- break;
51+ goto done;
52 }
53 /* trigger su instantiation for pi su */
54 if (m_AVND_SU_IS_PREINSTANTIABLE(su)) {
55@@ -1315,8 +1312,7 @@
56 } else
57 osafassert(0);
58 }
59- break;
60- } /* switch */
61+ }
62
63 done:
64 TRACE_LEAVE2("%u", rc);
diff --git a/meta-networking/recipes-daemons/opensaf/opensaf/Revert_imma_client_node_replyPending_to_unsigned_char.patch b/meta-networking/recipes-daemons/opensaf/opensaf/Revert_imma_client_node_replyPending_to_unsigned_char.patch
new file mode 100644
index 000000000..68d051e3c
--- /dev/null
+++ b/meta-networking/recipes-daemons/opensaf/opensaf/Revert_imma_client_node_replyPending_to_unsigned_char.patch
@@ -0,0 +1,80 @@
1Upstream-Status: Backport
2
3Signed-off-by: Kai Kang <kai.kang@windriver.com>
4---
5# HG changeset patch
6# User Anders Bjornerstedt <anders.bjornerstedt@ericsson.com>
7# Date 1430120883 -7200
8# Mon Apr 27 09:48:03 2015 +0200
9# Branch opensaf-4.6.x
10# Node ID 97eb2e7b29bbe0aacee0ad9b13cf84f1a4d5d9b0
11# Parent 60b2136fcadf82f653b43ba1b5790f6dc3be3161
12immsv: Revert imma_client_node->replyPending to unsigned char [#1341]
13
14
15The member imma_client_node->replyPending was in OpenSAF4.1 and earlier
16defined as 'uns8', i.e. a byte. But this member is a counter and not a boolean.
17The uns8 type was often used as a proxy for a boolean type in OpenSAF 4.1 and
18earlier. This was before 'bool' was available as a first class type for gcc.
19At some point in OpenSAF 4.2 the bool C type became available in gcc. There
20was then a general sweep across all services to change the use of uns8 to bool.
21The replyPending member was swept along in this change, but code actually
22still increments and decrements the value, which makes no sense for a boolean
23type.
24
25The intent of the replyPending member is to keep track of outstanding
26replies on requests from imma library to immnd server using the handle.
27This so that a restart of the local IMMND will result in the handle being
28marked as 'exposed' and not resurrected.
29An IMMND restart will mean that any unreplied requests will have lost
30their replies. This violates the interface contract from the imm service
31side towards the client using the handle and so the handle must not be
32allowed to get resurrected. Instead the handle must be marked as exposed.
33The client will then get an ERR_BAD_HANDLE from either saImmOxDispatch
34(failed active resurrect) or from the next syncronous downcall made after
35IMMND went down (failed reactive resurrect).
36
37For syncronous requests, the count will only go from 0 to 1 and back to 0 on
38reply. This ticket does not affect syncronous requests. For asyncronous
39requests it is possible for the client to invoke more than one request,
40before entering poll to receive replies. For asyncronous requests the
41replyPending member must work as a counter and not a boolean. The effect
42of being a boolean is that a handle may get resurrected when there is
43still asyncronous requests unreplied to, i.e. the replies would get silently
44lost.
45
46This changeset restores the type of the repliesPending member to unsigned char.
47
48diff -r 60b2136fcadf -r 97eb2e7b29bb osaf/libs/agents/saf/imma/imma_cb.h
49--- a/osaf/libs/agents/saf/imma/imma_cb.h Fri Apr 24 14:40:09 2015 +0200
50+++ b/osaf/libs/agents/saf/imma/imma_cb.h Mon Apr 27 09:48:03 2015 +0200
51@@ -50,13 +50,13 @@
52 SaUint32T mImplementerId; /*Only used for OI.*/
53 SaImmOiImplementerNameT mImplementerName; /* needed for active resurrect*/
54 SaUint32T syncr_timeout;/* Timeout on syncr downcalls, dflt 10s, or setenv IMMA_SYNCR_TIMEOUT */
55+ unsigned char replyPending; /* Syncronous or asyncronous call made towards IMMND */
56 bool isOm; /*If true => then this is an OM client */
57 bool stale; /*Loss of connection with immnd
58 will set this to true for the
59 connection. A resurrect can remove it.*/
60 bool exposed; /* Exposed => stale is irreversible */
61 bool selObjUsable; /* Active resurrect possible for this client */
62- bool replyPending; /* Syncronous or asyncronous call made towards IMMND */
63 bool isPbe; /* True => This is the PBE-OI */
64 bool isImmA2b; /* Version A.02.11 */
65 bool isImmA2bCbk; /* Version A.02.11 callback*/
66diff -r 60b2136fcadf -r 97eb2e7b29bb osaf/libs/agents/saf/imma/imma_proc.c
67--- a/osaf/libs/agents/saf/imma/imma_proc.c Fri Apr 24 14:40:09 2015 +0200
68+++ b/osaf/libs/agents/saf/imma/imma_proc.c Mon Apr 27 09:48:03 2015 +0200
69@@ -3346,7 +3346,10 @@
70 cl_node->handle);
71 }
72 } else {
73- /* Reaching 255 is sticky. */
74+ /* Decrementing from zero implies a bug in the library logic.
75+ The real count has been lost. Set the value to 255. This does not
76+ disturb current function, but makes the handle not resurrectable in
77+ case of iMMND restart while handle is still open. */
78 TRACE_3("Will not decrement zero pending reply count for handle %llx",
79 cl_node->handle);
80 cl_node->replyPending = 0xff;
diff --git a/meta-networking/recipes-daemons/opensaf/opensaf_4.6.0.bb b/meta-networking/recipes-daemons/opensaf/opensaf_4.6.0.bb
index 83cb1be94..28f4c006d 100644
--- a/meta-networking/recipes-daemons/opensaf/opensaf_4.6.0.bb
+++ b/meta-networking/recipes-daemons/opensaf/opensaf_4.6.0.bb
@@ -18,6 +18,8 @@ SRC_URI = "${SOURCEFORGE_MIRROR}/${BPN}/releases/${BPN}-${PV}.tar.gz \
18 file://plmcd.service \ 18 file://plmcd.service \
19 file://plmcboot.service \ 19 file://plmcboot.service \
20 file://0001-plmcd-error-fix.patch \ 20 file://0001-plmcd-error-fix.patch \
21 file://Revert_imma_client_node_replyPending_to_unsigned_char.patch \
22 file://Fix_GCC_5.1.0_compiler_warning.patch \
21 " 23 "
22 24
23SRC_URI[md5sum] = "a1ceddb517c0972aa7e899b092d7f464" 25SRC_URI[md5sum] = "a1ceddb517c0972aa7e899b092d7f464"