Make dynamic string table simpler to use #95
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.
Currently, dynamic string table is used as follows:
traversing over dynamic symbols, sonames, DT_NEEDED entries and so
on.
sonames, DT_NEEDED entries, ..., This time copy the string into the
dynamic string table and set the string offset in the dynamic-related
section that was referring the string.
This separation of computing size, offsets and actually writing makes the dynamic string table use cumbersome and error-prone. Especially for sections such as
.gnu.version_r
and.gnu.version_d
.With this commit, the dynamic string table can be used as:
There is no need to separate size and offset computation anymore.
Another added benefit is that now we reuse the
.dynstr
table entrieswherever possible instead of repeating the same string multiple times in
the dynamic string table.
Closes #94