Move .dynstr before _edata to fix image size calculation. The PE
authorpatrick <patrick@openbsd.org>
Thu, 30 Aug 2018 14:39:46 +0000 (14:39 +0000)
committerpatrick <patrick@openbsd.org>
Thu, 30 Aug 2018 14:39:46 +0000 (14:39 +0000)
header contains an image size field that is calculated using the
difference between the start of the header and edata.  Since we
copy out .dynstr into the EFI binary, make sure that .dynstr is
before edata so that it's included in the image size.  This makes
it consistent with efiboot on armv7.

ok kettenis@

sys/arch/arm64/stand/efiboot/ldscript.arm64

index cdf6876..b408f10 100644 (file)
@@ -1,4 +1,4 @@
-/* $OpenBSD: ldscript.arm64,v 1.1 2016/12/17 23:38:33 patrick Exp $ */
+/* $OpenBSD: ldscript.arm64,v 1.2 2018/08/30 14:39:46 patrick Exp $ */
 /*
 OUTPUT_FORMAT("elf64-aarch64-freebsd", "elf64-aarch64-freebsd", "elf64-aarch64-freebsd")
 */
@@ -77,9 +77,9 @@ SECTIONS
   .reloc       : { *(.reloc) }
   . = ALIGN(16);
   .dynsym      : { *(.dynsym) }
+  .dynstr      : { *(.dynstr) }
   _edata = .;
 
   /* Unused sections */
-  .dynstr      : { *(.dynstr) }
   .hash                : { *(.hash) }
 }