To help converted ELF images perform self-relocation, export a symbol 'ElfImageBase' that can be used in the code to discover the start of the image in memory.
Note the use of PROVIDE() - this ensures that the symbol is only emitted if a reference to it exists in the code being linked, but no definition. This means the symbol is never emitted in a way that can conflict with existing code. Signed-off-by: Ard Biesheuvel <[email protected]> --- BaseTools/Scripts/GccBase.lds | 2 ++ 1 file changed, 2 insertions(+) diff --git a/BaseTools/Scripts/GccBase.lds b/BaseTools/Scripts/GccBase.lds index a9dd2138d4b5..e73c1206a2e2 100644 --- a/BaseTools/Scripts/GccBase.lds +++ b/BaseTools/Scripts/GccBase.lds @@ -12,6 +12,8 @@ SECTIONS { + PROVIDE(ElfImageBase = .); + /* * The PE/COFF binary consists of DOS and PE/COFF headers, and a sequence of * section headers adding up to PECOFF_HEADER_SIZE bytes (which differs -- 2.26.2 -=-=-=-=-=-=-=-=-=-=-=- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#60893): https://edk2.groups.io/g/devel/message/60893 Mute This Topic: https://groups.io/mt/74757210/21656 Group Owner: [email protected] Unsubscribe: https://edk2.groups.io/g/devel/unsub [[email protected]] -=-=-=-=-=-=-=-=-=-=-=-
