From: Alan Modra Date: Wed, 16 Apr 2014 02:17:13 +0000 (+0930) Subject: fill ppc476 fixup area X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=40fd06d18832d52c9ab08914d8d5428ca68e5726;p=binutils-gdb.git fill ppc476 fixup area Stops false positive warnings from scanner. * elf32-ppc.c (ppc_elf_relocate_section): Fill 476 fixup area with "ba 0" rather than zeros. --- diff --git a/bfd/ChangeLog b/bfd/ChangeLog index 55d4828cc6a..99285f3a605 100644 --- a/bfd/ChangeLog +++ b/bfd/ChangeLog @@ -1,3 +1,8 @@ +2014-04-16 Alan Modra + + * elf32-ppc.c (ppc_elf_relocate_section): Fill 476 fixup area + with "ba 0" rather than zeros. + 2014-04-15 Marcus Shawcroft * (elfNN_aarch64_tls_relax): Fix instruction mask. diff --git a/bfd/elf32-ppc.c b/bfd/elf32-ppc.c index 8492732d9e3..ae68b5de206 100644 --- a/bfd/elf32-ppc.c +++ b/bfd/elf32-ppc.c @@ -9225,8 +9225,20 @@ ppc_elf_relocate_section (bfd *output_bfd, relax_info = elf_section_data (input_section)->sec_info; if (relax_info->workaround_size != 0) - memset (contents + input_section->size - relax_info->workaround_size, - 0, relax_info->workaround_size); + { + bfd_byte *p; + unsigned int n; + bfd_byte fill[4]; + + bfd_put_32 (input_bfd, BA, fill); + p = contents + input_section->size - relax_info->workaround_size; + n = relax_info->workaround_size >> 2; + while (n--) + { + memcpy (p, fill, 4); + p += 4; + } + } /* The idea is: Replace the last instruction on a page with a branch to a patch area. Put the insn there followed by a