removes section and other symbols in ELF #1220
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.
Apparently, we were running our tests on LLVM 6, not LLVM 9 as we used to believe. This PR switches to LLVM 9 for running tests and fixes a bug that was not present in LLVM 6 and below (it could be that it appears before 9 though). The problem was in the emission of section symbols from the
eh_frame
section, which apparently should represent call frames, so it is not obvious to me why they are tagged as STT_SECTION that is mapped to LLVM's ST_Debug. It is unclear what those symbols encode, but is quite obvious that llvm misinterprets them as at the end of the day we have a bunch of symbols named.text
that hides the real symbols. This PR prevents the emission of such symbols, as well as other symbols, such as file, object, and abi-specific symbols, as we don't really know the interpretation of their fields.This PR also removes the LLVM 6 dependency from our CI file as well as makes changing the llvm version more straightforward when the omake backend is used, e.g.,
Yes, it is awkward but you have to specify both the version and llvm-config path.