+2009-08-06 Nathan Sidwell <nathan@codesourcery.com>
+
+ * elf32-arm.c (elf32_arm_size_stubs): Call layout_sections_again
+ at least once when fixing cortex-a8.
+
2009-08-05 Chao-ying Fu <fu@mips.com>
* elf32-mips.c (mips_reloc_map): Add BFD_RELOC_MIPS_JALR.
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;
+2009-08-06 Nathan Sidwell <nathan@codesourcery.com>
+
+ * 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.
+
2009-08-05 Trevor Smigiel <Trevor_Smigiel@playstation.sony.com>
* ld-spu/fixup.d: New.
"-EL -Ttext=0x00 --fix-cortex-a8 --defsym far_fn1=0x80000000 --defsym far_fn2=0x80000004 --defsym far_fn=0x7fff0000 --defsym _start=0" "-EL" {cortex-a8-far-1.s cortex-a8-far-2.s}
{{objdump -dr cortex-a8-far.d}}
"cortex-a8-far"}
+ {"Cortex-A8 erratum fix, headers"
+ "-EL --fix-cortex-a8 -T cortex-a8-fix-hdr.t" "-EL" {cortex-a8-fix-hdr.s}
+ {{objdump -dr cortex-a8-fix-hdr.d}}
+ "cortex-a8-fix-hdr"}
{"Unwinding and -gc-sections" "-gc-sections" "" {gc-unwind.s}
{{objdump -sj.data gc-unwind.d}}
"gc-unwind"}
--- /dev/null
+
+.*: file format .*
+
+
+Disassembly of section \.text:
+
+00000fe0 <_start>:
+ fe0: bf00 nop
+ fe2: bf00 nop
+ fe4: bf00 nop
+ fe6: bf00 nop
+ fe8: bf00 nop
+ fea: bf00 nop
+ fec: bf00 nop
+ fee: bf00 nop
+ ff0: bf00 nop
+ ff2: bf00 nop
+ ff4: bf00 nop
+ ff6: bf00 nop
+ ff8: bf00 nop
+ ffa: ea81 0002 eor.w r0, r1, r2
+ ffe: f000 b80f b.w 1020 <_start\+0x40>
+#...
+ 1020: f7ff bfde b.w fe0 <_start>
--- /dev/null
+ .syntax unified
+
+ .section .text, "ax"
+
+ .align 5
+ .globl _start
+ .thumb_func
+_start:
+ .rept 13
+ nop
+ .endr
+ eor r0, r1, r2
+ b.w _start
+
--- /dev/null
+
+
+SECTIONS {
+ . = SIZEOF_HEADERS;
+ . += 0xf80;
+ .text : {
+ *(.text)
+ } = 0
+ /DISCARD/ : { *(*) }
+}