-
I have a binary that is dynamically linked with a library of which it imports both functions and data. For the imported data entries in the extern section an ExternalSymbol entry is generated. For functions there is an ImportAddressSymbol that points to the GOT entry of the function. For locations that contain a pointer to an imported data reference, there is no ImportedDataSymbol generated, which I would expect / consider very useful if possible. Is this by design, something that requires specific information to be available in the binary or something else? |
Beta Was this translation helpful? Give feedback.
Replies: 2 comments
-
First, sorry this discussion some how slipped through and I didn't see this until just now. This could be a bug, and it could also be a bug that was already fixed. Do you have an example binary you could share. Also when you speak of " locations that contain a pointer to an imported data reference" what locations are you actually referring to? DataVariables you've created yourself or code in code or something else? Just a screenshot might be sufficient. |
Beta Was this translation helpful? Give feedback.
-
Per some discussions in slack, the root cause of this is actually some relocations not being handled for the architecture in question. |
Beta Was this translation helpful? Give feedback.
Per some discussions in slack, the root cause of this is actually some relocations not being handled for the architecture in question.
R_ARM_GLOB_DAT
was one of them, I believe. Or, rather than not handled, we should probably add ways for custom relocation types to opt-in to some of the special case behavior we give to jumpslots etc. re: ImportedDataSymbol generation because we can wind up with more than 3 relocations types that collectively perform copy/jumpslot/global relocations.