diff options
author | b'Nigel Croxon <allura@localhost> | 2023-05-16 13:06:32 +0000 |
---|---|---|
committer | b'Nigel Croxon <allura@localhost> | 2023-05-16 13:06:32 +0000 |
commit | 9835e11ebe95ed8372ac2a6671de07cc970cdee0 (patch) | |
tree | f2f1d166ba12123605c3dc3e12790e9391d2a31c /gnuefi/elf_x86_64_efi.lds | |
parent | bbc2b528e08e5b99e08e103302ee90046135a039 (diff) | |
parent | 99730f29b2f8874bc7bfad383ea8eb52679e8897 (diff) | |
download | gnu-efi-9835e11ebe95ed8372ac2a6671de07cc970cdee0.tar.gz |
https://sourceforge.net/p/gnu-efi/code/merge-requests/51/
Diffstat (limited to 'gnuefi/elf_x86_64_efi.lds')
-rw-r--r-- | gnuefi/elf_x86_64_efi.lds | 27 |
1 files changed, 19 insertions, 8 deletions
diff --git a/gnuefi/elf_x86_64_efi.lds b/gnuefi/elf_x86_64_efi.lds index 2e0e0cb..0f4b63b 100644 --- a/gnuefi/elf_x86_64_efi.lds +++ b/gnuefi/elf_x86_64_efi.lds @@ -46,18 +46,25 @@ SECTIONS * have NULLs which aren't guaranteed to be at the end. */ . = ALIGN(16); - _init_array = .; - *(SORT_BY_NAME(.init_array)) - _init_array_end = .; + __init_array_start = .; + *(SORT(.init_array.*)) + *(.init_array) + __init_array_end = .; + . = ALIGN(16); __CTOR_LIST__ = .; - *(SORT_BY_NAME(.ctors)) + *(SORT(.ctors.*)) + *(.ctors) __CTOR_END__ = .; + . = ALIGN(16); __DTOR_LIST__ = .; - *(SORT_BY_NAME(.dtors)) + *(SORT(.dtors.*)) + *(.dtors) __DTOR_END__ = .; - _fini_array = .; - *(SORT_BY_NAME(.fini_array)) - _fini_array_end = .; + . = ALIGN(16); + __fini_array_start = .; + *(SORT(.fini_array.*)) + *(.fini_array) + __fini_array_end = .; /* the EFI loader doesn't seem to like a .bss section, so we stick it all into .data: */ @@ -82,6 +89,10 @@ SECTIONS *(.rela.got) *(.rela.dyn) *(.rela.stab) + *(.rela.init_array*) + *(.rela.fini_array*) + *(.rela.ctors*) + *(.rela.dtors*) } . = ALIGN(4096); .rela.plt : { *(.rela.plt) } |