capi: fix capi_test with ASAN (#1881) #2576
Merged
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.
Problem:
Linking silkworm_node.lib to both silkworm_capi.dll and silkworm_capi_test.exe produces 2 sets of global data (identical symbols),
which is a conflict according to ASAN ODR:
https://github.com/google/sanitizers/wiki/AddressSanitizerOneDefinitionRuleViolation
Solution:
Build silkworm_capi_static.lib separately, and use it with silkworm_capi_static_test.exe and capi/execute.exe so
that the linker can resolve duplicate symbols.
fixes #1881