From 40fd06d18832d52c9ab08914d8d5428ca68e5726 Mon Sep 17 00:00:00 2001 From: Alan Modra Date: Wed, 16 Apr 2014 11:47:13 +0930 Subject: [PATCH] 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. --- bfd/ChangeLog | 5 +++++ bfd/elf32-ppc.c | 16 ++++++++++++++-- 2 files changed, 19 insertions(+), 2 deletions(-) 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 -- 2.30.2