diff options
author | 2009-08-06 13:05:24 +0000 | |
---|---|---|
committer | 2009-08-06 13:05:24 +0000 | |
commit | 3ae046ccd31e26df008776124e52fce6174aa0df (patch) | |
tree | f91e2a978e0420c5c22d5f64e49b93818befdb35 /bfd/elf32-arm.c | |
parent | * score-tdep.c: Support a new Sunplus CT S+core variant, S+core 3. (diff) | |
download | binutils-gdb-3ae046ccd31e26df008776124e52fce6174aa0df.tar.gz binutils-gdb-3ae046ccd31e26df008776124e52fce6174aa0df.tar.bz2 binutils-gdb-3ae046ccd31e26df008776124e52fce6174aa0df.zip |
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.
Diffstat (limited to 'bfd/elf32-arm.c')
-rw-r--r-- | bfd/elf32-arm.c | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/bfd/elf32-arm.c b/bfd/elf32-arm.c index 5aba3f360a7..fbb4454ae94 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; |