summaryrefslogtreecommitdiff
path: root/gnuefi/elf_ia32_efi.lds
diff options
context:
space:
mode:
authorCallum Farmer <gmbr3@opensuse.org>2023-04-28 17:46:24 +0100
committerCallum Farmer <gmbr3@opensuse.org>2023-05-04 14:29:36 +0100
commite2aa099738e1bd527929b5fb6fe7312962b6b4e4 (patch)
tree50212479249b73390ee018662048017746822a98 /gnuefi/elf_ia32_efi.lds
parent4c938fac30954a54456300bcdad2fdd0b34b6210 (diff)
downloadgnu-efi-e2aa099738e1bd527929b5fb6fe7312962b6b4e4.tar.gz
lds: Support ctors/dtors with a priority
Signed-off-by: Callum Farmer <gmbr3@opensuse.org>
Diffstat (limited to 'gnuefi/elf_ia32_efi.lds')
-rw-r--r--gnuefi/elf_ia32_efi.lds20
1 files changed, 12 insertions, 8 deletions
diff --git a/gnuefi/elf_ia32_efi.lds b/gnuefi/elf_ia32_efi.lds
index 8694d82..964530c 100644
--- a/gnuefi/elf_ia32_efi.lds
+++ b/gnuefi/elf_ia32_efi.lds
@@ -40,16 +40,20 @@ SECTIONS
*/
. = ALIGN(16);
_init_array = .;
- *(SORT_BY_NAME(.init_array))
+ *(SORT(.init_array.*))
+ *(.init_array)
_init_array_end = .;
__CTOR_LIST__ = .;
- *(SORT_BY_NAME(.ctors))
+ *(SORT(.ctors.*))
+ *(.ctors)
__CTOR_END__ = .;
__DTOR_LIST__ = .;
- *(SORT_BY_NAME(.dtors))
+ *(SORT(.dtors.*))
+ *(.dtors)
__DTOR_END__ = .;
_fini_array = .;
- *(SORT_BY_NAME(.fini_array))
+ *(SORT(.fini_array.*))
+ *(.fini_array)
_fini_array_end = .;
/* the EFI loader doesn't seem to like a .bss section, so we stick
@@ -70,10 +74,10 @@ SECTIONS
*(.rel.got)
*(.rel.dyn)
*(.rel.stab)
- *(.rel.init_array)
- *(.rel.fini_array)
- *(.rel.ctors)
- *(.rel.dtors)
+ *(.rel.init_array*)
+ *(.rel.fini_array*)
+ *(.rel.ctors*)
+ *(.rel.dtors*)
*(.data.rel.ro.local)
*(.data.rel.local)
*(.data.rel.ro)