PR24311, FAIL: S-records with constructors
authorAlan Modra <amodra@gmail.com>
Fri, 8 Mar 2019 12:11:55 +0000 (22:41 +1030)
committerAlan Modra <amodra@gmail.com>
Fri, 8 Mar 2019 12:58:34 +0000 (23:28 +1030)
commitebd2263ba9a9124d93bbc0ece63d7e0fae89b40e
tree20eb508b47ec3c8ae1e30ecaaf247776d0e6b933
parent65d8004072ccb15441c143c380949d785a8446cd
PR24311, FAIL: S-records with constructors

Not padding string merge section output to its alignment can cause
failures of the S-record tests when input string merge sections are
padded, since the ELF linker output for the single string section
would shrink compared to the SREC linker output.  That might result in
following sections having different addresses.
On the other hand, padding string merge section output when input
string merge sections are *not* padded can also cause failures, in
this case due to the ELF linker output for the string section being
larger (due to padding) than the SREC linker output.

It would be better to write a more robust test, but it is also nice
to leave input unchanged when no string merges occur.

PR 24311
* merge.c (merge_strings): Return secinfo.  Don't pad section
to alignment here.
(_bfd_merge_sections): Pad section to alignment here, if input
sections contributing to merged output all pad to alignment.
Formatting.
bfd/ChangeLog
bfd/merge.c