Support compiling on bare metal when logging is disabled #191
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
For the zkEVM support in Nimbus we need to be able to compile the stateless execution function to bare metal. Even when setting the chronicles_enabled compile time flag to false the library still imports and uses code that depends on the os such as
std/osandstd/timeswhich cause the compilation to fail when targeting bare metal (--os:any). Ideally the code should compile without having to remove all the logging throughout the codebase.The approach taken here is to disable the
dynamic_scopeandlog_outputon bare metal which are the modules that depend on the os libraries. I didn't use awhen loggingEnabledfor this part because that would be a breaking change on all other platforms.I've also added
when loggingEnabledto a few places to disable the code when the logging is disabled.