From 3ae046ccd31e26df008776124e52fce6174aa0df Mon Sep 17 00:00:00 2001 From: Nathan Sidwell Date: Thu, 6 Aug 2009 13:05:24 +0000 Subject: bfd/ * elf32-arm.c (elf32_arm_size_stubs): Call layout_sections_again at least once when fixing cortex-a8. ld/testsuite/ * ld-arm/arm-elf.exp: Add new test. * ld-arm/cortex-a8-fix-hdr.d: New. * ld-arm/cortex-a8-fix-hdr.s: New. * ld-arm/cortex-a8-fix-hdr.t: New. --- bfd/ChangeLog | 5 +++++ bfd/elf32-arm.c | 10 ++++++++++ 2 files changed, 15 insertions(+) (limited to 'bfd') diff --git a/bfd/ChangeLog b/bfd/ChangeLog index 95e033c..c63bc2f 100644 --- a/bfd/ChangeLog +++ b/bfd/ChangeLog @@ -1,3 +1,8 @@ +2009-08-06 Nathan Sidwell + + * elf32-arm.c (elf32_arm_size_stubs): Call layout_sections_again + at least once when fixing cortex-a8. + 2009-08-05 Chao-ying Fu * elf32-mips.c (mips_reloc_map): Add BFD_RELOC_MIPS_JALR. diff --git a/bfd/elf32-arm.c b/bfd/elf32-arm.c index 5aba3f3..fbb4454 100644 --- a/bfd/elf32-arm.c +++ b/bfd/elf32-arm.c @@ -4246,6 +4246,16 @@ elf32_arm_size_stubs (bfd *output_bfd, group_sections (htab, stub_group_size, stubs_always_after_branch); + /* If we're applying the cortex A8 fix, we need to determine the + program header size now, because we cannot change it later -- + that could alter section placements. Notice the A8 erratum fix + ends up requiring the section addresses to remain unchanged + modulo the page size. That's something we cannot represent + inside BFD, and we don't want to force the section alignment to + be the page size. */ + if (htab->fix_cortex_a8) + (*htab->layout_sections_again) (); + while (1) { bfd *input_bfd; -- cgit v1.1