From ca145f2e25e5aab86ff468cfcb409db7aa738be9 Mon Sep 17 00:00:00 2001 From: Jan-Simon Möller Date: Mon, 8 Oct 2018 22:30:44 +0200 Subject: Fix build of json-c on newer hosts MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Newer hosts with gcc >= 7.1 might fail to compile json-c. Fix by backporting patchset. Change-Id: Ic089a30d2ad1096ac3b1ef86f842eeab4460cfe1 Signed-off-by: Jan-Simon Möller --- ...-FALLTHRU-comment-to-handle-GCC7-warnings.patch | 100 +++++++++++++++++++++ .../recipes-devtools/json-c/json-c_0.12.bbappend | 4 + 2 files changed, 104 insertions(+) create mode 100644 meta-agl-bsp/meta-core/recipes-devtools/json-c/files/0001-Add-FALLTHRU-comment-to-handle-GCC7-warnings.patch create mode 100644 meta-agl-bsp/meta-core/recipes-devtools/json-c/json-c_0.12.bbappend diff --git a/meta-agl-bsp/meta-core/recipes-devtools/json-c/files/0001-Add-FALLTHRU-comment-to-handle-GCC7-warnings.patch b/meta-agl-bsp/meta-core/recipes-devtools/json-c/files/0001-Add-FALLTHRU-comment-to-handle-GCC7-warnings.patch new file mode 100644 index 000000000..fb130f2f1 --- /dev/null +++ b/meta-agl-bsp/meta-core/recipes-devtools/json-c/files/0001-Add-FALLTHRU-comment-to-handle-GCC7-warnings.patch @@ -0,0 +1,100 @@ +From 14edbe3c04101a2f967862ccf162f725235f627f Mon Sep 17 00:00:00 2001 +From: marxin +Date: Tue, 21 Mar 2017 08:42:11 +0100 +Subject: [PATCH] Add FALLTHRU comment to handle GCC7 warnings. + +--- + json_object.c | 30 +++++++++++++++++------------- + json_tokener.c | 1 + + linkhash.c | 22 +++++++++++----------- + 3 files changed, 29 insertions(+), 24 deletions(-) + +diff --git a/json_object.c b/json_object.c +index 6cc73bc..e271083 100644 +--- a/json_object.c ++++ b/json_object.c +@@ -542,19 +542,23 @@ int64_t json_object_get_int64(struct json_object *jso) + { + int64_t cint; + +- if(!jso) return 0; +- switch(jso->o_type) { +- case json_type_int: +- return jso->o.c_int64; +- case json_type_double: +- return (int64_t)jso->o.c_double; +- case json_type_boolean: +- return jso->o.c_boolean; +- case json_type_string: +- if (json_parse_int64(jso->o.c_string.str, &cint) == 0) return cint; +- default: +- return 0; +- } ++ if (!jso) ++ return 0; ++ switch(jso->o_type) ++ { ++ case json_type_int: ++ return jso->o.c_int64; ++ case json_type_double: ++ return (int64_t)jso->o.c_double; ++ case json_type_boolean: ++ return jso->o.c_boolean; ++ case json_type_string: ++ if (json_parse_int64(jso->o.c_string.str, &cint) == 0) ++ return cint; ++ /* FALLTHRU */ ++ default: ++ return 0; ++ } + } + + +diff --git a/json_tokener.c b/json_tokener.c +index 19de8ef..fbb5d68 100644 +--- a/json_tokener.c ++++ b/json_tokener.c +@@ -305,6 +305,7 @@ struct json_object* json_tokener_parse_ex(struct json_tokener *tok, + tok->err = json_tokener_error_parse_unexpected; + goto out; + } ++ /* FALLTHRU */ + case '"': + state = json_tokener_state_string; + printbuf_reset(tok->pb); +diff --git a/linkhash.c b/linkhash.c +index 712c387..74e3b0f 100644 +--- a/linkhash.c ++++ b/linkhash.c +@@ -376,17 +376,17 @@ static uint32_t hashlittle( const void *key, size_t length, uint32_t initval) + /*-------------------------------- last block: affect all 32 bits of (c) */ + switch(length) /* all the case statements fall through */ + { +- case 12: c+=((uint32_t)k[11])<<24; +- case 11: c+=((uint32_t)k[10])<<16; +- case 10: c+=((uint32_t)k[9])<<8; +- case 9 : c+=k[8]; +- case 8 : b+=((uint32_t)k[7])<<24; +- case 7 : b+=((uint32_t)k[6])<<16; +- case 6 : b+=((uint32_t)k[5])<<8; +- case 5 : b+=k[4]; +- case 4 : a+=((uint32_t)k[3])<<24; +- case 3 : a+=((uint32_t)k[2])<<16; +- case 2 : a+=((uint32_t)k[1])<<8; ++ case 12: c+=((uint32_t)k[11])<<24; /* FALLTHRU */ ++ case 11: c+=((uint32_t)k[10])<<16; /* FALLTHRU */ ++ case 10: c+=((uint32_t)k[9])<<8; /* FALLTHRU */ ++ case 9 : c+=k[8]; /* FALLTHRU */ ++ case 8 : b+=((uint32_t)k[7])<<24; /* FALLTHRU */ ++ case 7 : b+=((uint32_t)k[6])<<16; /* FALLTHRU */ ++ case 6 : b+=((uint32_t)k[5])<<8; /* FALLTHRU */ ++ case 5 : b+=k[4]; /* FALLTHRU */ ++ case 4 : a+=((uint32_t)k[3])<<24; /* FALLTHRU */ ++ case 3 : a+=((uint32_t)k[2])<<16; /* FALLTHRU */ ++ case 2 : a+=((uint32_t)k[1])<<8; /* FALLTHRU */ + case 1 : a+=k[0]; + break; + case 0 : return c; +-- +2.16.4 + diff --git a/meta-agl-bsp/meta-core/recipes-devtools/json-c/json-c_0.12.bbappend b/meta-agl-bsp/meta-core/recipes-devtools/json-c/json-c_0.12.bbappend new file mode 100644 index 000000000..29bd0226f --- /dev/null +++ b/meta-agl-bsp/meta-core/recipes-devtools/json-c/json-c_0.12.bbappend @@ -0,0 +1,4 @@ + +FILESEXTRAPATHS_append := ":${THISDIR}/files" + +SRC_URI_append = " file://0001-Add-FALLTHRU-comment-to-handle-GCC7-warnings.patch" \ No newline at end of file -- cgit 1.2.3-korg