coff-go32: consistent 16-byte section alignment
authorJan W. Jagersma <jwjagersma@gmail.com>
Wed, 24 Nov 2021 13:17:21 +0000 (14:17 +0100)
committerAlan Modra <amodra@gmail.com>
Thu, 25 Nov 2021 12:49:58 +0000 (23:19 +1030)
commit423e91d347cf6050ac17c7098cad6cbc15e5e50f
treebc93239ecbd8f43a52edb4cf419f1f301aa4dc4d
parent32384aa396e7e87fe02cc838722b8e80ec88ec10
coff-go32: consistent 16-byte section alignment

Section alignment for coff-go32 is inconsistent - The '.text' and
'.data' sections are 16-byte aligned, but named sections '.text.*' and
'.data.*' are only 4-byte aligned.  '.gnu.linkonce.r.*' is aligned to
16 bytes, yet '.rodata' and '.rodata.*' are aligned to 4 bytes.  For
'.bss' all input sections are only aligned to 4 bytes.

This primarily can cause trouble when using SSE instructions, which
require their memory operands to be aligned to 16-byte boundaries.

This patch solves the issue simply by setting the section alignment
to 16 bytes, for all code and data sections referenced in the default
linker script.

* coff-go32.c (COFF_SECTION_ALIGNMENT_ENTRIES):  Use partial
name match for .text, .data.  Add entries for .const, .rodata,
.bss, .gnu.linkonce.b.
bfd/coff-go32.c