[RTEMS Project] #4265: Add rtems_get_build_hash()
RTEMS trac
trac at rtems.org
Wed Feb 24 07:04:45 UTC 2021
#4265: Add rtems_get_build_hash()
-----------------------------+------------------------------
Reporter: Sebastian Huber | Owner: Sebastian Huber
Type: enhancement | Status: assigned
Priority: normal | Milestone: 6.1
Component: rtems | Version: 6
Severity: normal | Resolution:
Keywords: | Blocked By:
Blocking: |
-----------------------------+------------------------------
Comment (by Sebastian Huber):
Yes, you can iterate over conf.env:
{{{#!diff
diff --git a/wscript b/wscript
index 6626fafb74..84b845dce4 100755
--- a/wscript
+++ b/wscript
@@ -1359,6 +1359,27 @@ def get_compiler(conf, cp, variant):
return value
+def _generate_build_hash(conf):
+ import hashlib
+ import base64
+
+ build_hash = ""
+ for key in sorted(conf.env):
+ build_hash = build_hash + key + str(conf.env[key])
+ for discard in [
+ conf.env.PREFIX,
+ conf.bldnode.make_node(conf.env.VARIANT).abspath(),
+ conf.path.abspath(),
+ ]:
+ build_hash = build_hash.replace(discard, "")
+ state = hashlib.sha256()
+ state.update(build_hash.encode("utf-8"))
+ conf.define("RTEMS_BUILD_HASH",
base64.urlsafe_b64encode(state.digest()))
+ conf.write_config_header(
+ conf.env.VARIANT + "/cpukit/include/rtems/build-hash.h"
+ )
+
+
def configure_variant(conf, cp, bsp_map, path_list, top_group, variant):
conf.msg("Configure board support package (BSP)", variant,
color="YELLOW")
@@ -1391,9 +1412,10 @@ def configure_variant(conf, cp, bsp_map, path_list,
top_group, variant):
conf.fatal("No such base BSP: '{}'".format(variant))
bsp_item.configure(conf, cic)
- options = set([o[0].upper() for o in cp.items(variant)])
+ options = set(o[0].upper() for o in cp.items(variant))
for o in options.difference(cic.options):
conf.msg("Unknown configuration option", o.upper(), color="RED")
+ _generate_build_hash(conf)
def check_forbidden_options(ctx, opts):
}}}
An alternative would be to explicitly add (or remove) build options.
--
Ticket URL: <http://devel.rtems.org/ticket/4265#comment:2>
RTEMS Project <http://www.rtems.org/>
RTEMS Project
More information about the bugs
mailing list