mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-06-23 17:24:48 +00:00
Add a method to indicate section address re-assignment is finished.
Prior to this patch RuntimeDyld attempted to re-apply relocations every time reassignSectionAddress was called (via MCJIT::mapSectionAddress). In addition to being inefficient and redundant, this led to a problem when a section was temporarily moved too far away from another section with a relative relocation referencing the section being moved. To fix this, I'm adding a new method (finalizeObject) which the client can call to indicate that it is finished rearranging section addresses so the relocations can safely be applied. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@167400 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
@ -249,6 +249,13 @@ public:
|
||||
"EE!");
|
||||
}
|
||||
|
||||
// finalizeObject - This method should be called after sections within an
|
||||
// object have been relocated using mapSectionAddress. When this method is
|
||||
// called the MCJIT execution engine will reapply relocations for a loaded
|
||||
// object. This method has no effect for the legacy JIT engine or the
|
||||
// interpeter.
|
||||
virtual void finalizeObject() {}
|
||||
|
||||
/// runStaticConstructorsDestructors - This method is used to execute all of
|
||||
/// the static constructors or destructors for a program.
|
||||
///
|
||||
|
Reference in New Issue
Block a user