mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-07-22 23:24:59 +00:00
[RuntimeDyld] Track symbol visibility in RuntimeDyld.
RuntimeDyld symbol info previously consisted of just a Section/Offset pair. This patch replaces that pair type with a SymbolInfo class that also tracks symbol visibility. A new method, RuntimeDyld::getExportedSymbolLoadAddress, is introduced which only returns a non-zero result for exported symbols. For non-exported or non-existant symbols this method will return zero. The RuntimeDyld::getSymbolAddress method retains its current behavior, returning non-zero results for all symbols regardless of visibility. No in-tree clients of RuntimeDyld are changed. The newly introduced functionality will be used by the Orc APIs. No test case: Since this patch doesn't modify the behavior for any in-tree clients we don't have a good tool to test this with yet. Once Orc is in we can use it to write regression tests that test these changes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@226341 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
@@ -81,10 +81,14 @@ public:
|
||||
/// and resolve relocatons based on where they put it).
|
||||
void *getSymbolAddress(StringRef Name) const;
|
||||
|
||||
/// Get the address of the target copy of the symbol. This is the address
|
||||
/// used for relocation.
|
||||
/// Get the address of the target copy of the symbol (works for both exported
|
||||
/// and non-exported symbols). This is the address used for relocation.
|
||||
uint64_t getSymbolLoadAddress(StringRef Name) const;
|
||||
|
||||
/// Get the address of the target copy of the symbol (works for exported
|
||||
/// symbols only). This is the address used for relocation.
|
||||
uint64_t getExportedSymbolLoadAddress(StringRef Name) const;
|
||||
|
||||
/// Resolve the relocations for all symbols we currently know about.
|
||||
void resolveRelocations();
|
||||
|
||||
|
Reference in New Issue
Block a user