From ff5ad434d95403005cbf229a0f4b077b6dbc502b Mon Sep 17 00:00:00 2001 From: Ciro Santilli Date: Sat, 26 Jan 2019 13:16:17 +0000 Subject: [PATCH] scons: fix unused auto-generated blob variable in clang Since f2bda876f73af4ecc38406f3562a3d16fd28a5a9, the build system started adding a length for generated blobs as in: const std::size_t variable_len = 123; There were two types of blob files, ones with a header and the ones without. The ones with the header, also include the header in the .cc of the blob, which contains a declaration: extern const std::size_t variable_len; Therefore, the ones without header, don't have that extern declaration, which makes them static according to the C++ standard. clang then correctly interprets that as problematic due to -Wunused-const-variable, while GCC does not notice this. This patch removes the length declaration from the blob files that don't have the header. Those files currently don't use the length. Change-Id: I3fc61b28f887fc1015288857328ead2f3b34c6e6 Reviewed-on: https://gem5-review.googlesource.com/c/15955 Reviewed-by: Jason Lowe-Power Maintainer: Jason Lowe-Power --- src/SConscript | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/SConscript b/src/SConscript index 74adf3c88..0b66d6a62 100644 --- a/src/SConscript +++ b/src/SConscript @@ -255,7 +255,8 @@ def blobToCpp(data, symbol, cpp_code, hpp_code=None, namespace=None): hpp_code('}') if namespace is not None: cpp_code('namespace {} {{'.format(namespace)) - cpp_code(symbol_len_declaration + ' = {};'.format(len(data))) + if hpp_code is not None: + cpp_code(symbol_len_declaration + ' = {};'.format(len(data))) cpp_code(symbol_declaration + ' = {') cpp_code.indent() step = 16 -- 2.30.2