summaryrefslogtreecommitdiff
path: root/gnuefi/elf_ia32_fbsd_efi.lds
diff options
context:
space:
mode:
Diffstat (limited to 'gnuefi/elf_ia32_fbsd_efi.lds')
-rw-r--r--gnuefi/elf_ia32_fbsd_efi.lds27
1 files changed, 19 insertions, 8 deletions
diff --git a/gnuefi/elf_ia32_fbsd_efi.lds b/gnuefi/elf_ia32_fbsd_efi.lds
index 9e9baec..61ae5c5 100644
--- a/gnuefi/elf_ia32_fbsd_efi.lds
+++ b/gnuefi/elf_ia32_fbsd_efi.lds
@@ -48,18 +48,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: */
@@ -80,6 +87,10 @@ SECTIONS
*(.rel.data.*)
*(.rel.got)
*(.rel.stab)
+ *(.rel.init_array*)
+ *(.rel.fini_array*)
+ *(.rel.ctors*)
+ *(.rel.dtors*)
*(.data.rel.ro.local)
*(.data.rel.local)
*(.data.rel.ro)