summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCiro Santilli <ciro.santilli@arm.com>2019-01-26 13:16:17 +0000
committerCiro Santilli <ciro.santilli@arm.com>2019-02-06 16:11:24 +0000
commitff5ad434d95403005cbf229a0f4b077b6dbc502b (patch)
tree97813e14a37dc472e0a3223e71c3e5cf7fd07ff5
parent930979744009b4cec970bb9e851cff3259c895b8 (diff)
downloadgem5-ff5ad434d95403005cbf229a0f4b077b6dbc502b.tar.xz
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 <jason@lowepower.com> Maintainer: Jason Lowe-Power <jason@lowepower.com>
-rw-r--r--src/SConscript3
1 files changed, 2 insertions, 1 deletions
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