PRU LD Port
authorDimitar Dimitrov <dimitar@dinux.eu>
Fri, 30 Dec 2016 10:39:49 +0000 (12:39 +0200)
committerAlan Modra <amodra@gmail.com>
Sat, 31 Dec 2016 01:34:11 +0000 (12:04 +1030)
commit0220170b4d87ce940d40ac98387ff2d7fbed3ab2
tree7b2208add3316c08c6e087b37f648690861c1f68
parent93f11b16ec1f5775c7f6c32b4a39d6dd0fb0c92a
PRU LD Port

* NEWS: Mention new PRU target.
* Makefile.am: Add PRU target.
* configure.tgt: Ditto.
* emulparams/pruelf.sh: New file.
* emultempl/pruelf.em: New file.
* scripttempl/pru.sc: New file.
* Makefile.in: Regenerate.
* testsuite/ld-pru/emit-relocs-1.d: New PRU testcase file.
* testsuite/ld-pru/emit-relocs-1.ld: Ditto.
* testsuite/ld-pru/emit-relocs-1a.s: Ditto.
* testsuite/ld-pru/emit-relocs-1b.s
* testsuite/ld-pru/ldi32.d: Ditto.
* testsuite/ld-pru/ldi32.s: Ditto.
* testsuite/ld-pru/ldi32_symbol.s: Ditto.
* testsuite/ld-pru/norelax_ldi32-data.d: Ditto.
* testsuite/ld-pru/norelax_ldi32-dis.d: Ditto.
* testsuite/ld-pru/pcrel_s10.d: Ditto.
* testsuite/ld-pru/pcrel_s10.s: Ditto.
* testsuite/ld-pru/pcrel_s10_label.s: Ditto.
* testsuite/ld-pru/pcrel_u8-illegal.d: Ditto.
* testsuite/ld-pru/pcrel_u8-illegal.s: Ditto.
* testsuite/ld-pru/pcrel_u8-illegal2.d: Ditto.
* testsuite/ld-pru/pcrel_u8-illegal2.s: Ditto.
* testsuite/ld-pru/pcrel_u8-illegal3.d: Ditto.
* testsuite/ld-pru/pcrel_u8-illegal3.s: Ditto.
* testsuite/ld-pru/pcrel_u8.d: Ditto.
* testsuite/ld-pru/pcrel_u8.s: Ditto.
* testsuite/ld-pru/pcrel_u8_label.s: Ditto.
* testsuite/ld-pru/pmem.d: Ditto.
* testsuite/ld-pru/pmem.s: Ditto.
* testsuite/ld-pru/pmem_symbol.s: Ditto.
* testsuite/ld-pru/pru.exp: Ditto.
* testsuite/ld-pru/relax_ldi32-data.d: Ditto.
* testsuite/ld-pru/relax_ldi32-dis.d: Ditto.
* testsuite/ld-pru/relax_ldi32.s: Ditto.
* testsuite/ld-pru/relax_ldi32_symbol.s: Ditto.
* testsuite/ld-pru/reloc.d: Ditto.
* testsuite/ld-pru/reloc.s: Ditto.
* testsuite/ld-pru/reloc_symbol.s: Ditto.
* testsuite/ld-pru/u16.d: Ditto.
* testsuite/ld-pru/u16.s: Ditto.
* testsuite/ld-pru/u16_symbol.s: Ditto.

PRU does not export __end symbol because it is ambiguous for it.
Users are expected to use instead the section markers __text_end,
__data_end, __bss_end or __noinit_end.

* testsuite/lib/ld-lib.exp (check_shared_lib_support): No shared
libraries are supported for PRU.
(check_gc_sections_available): Mark PRU as not supported.
* testsuite/ld-elf/eh-frame-hdr.d: Disable for PRU.
* testsuite/ld-elf/endsym.d: Likewise.
* testsuite/ld-elf/group8a.d: Likewise.
* testsuite/ld-elf/group8b.d: Likewise.
* testsuite/ld-elf/group9a.d: Likewise.
* testsuite/ld-elf/group9b.d: Likewise.
* testsuite/ld-elf/merge.d: Likewise.
* testsuite/ld-elf/pr12851.d: Likewise.
* testsuite/ld-elf/pr14926.d: Likewise.
* testsuite/ld-elf/sec-to-seg.exp: Likewise.
* testsuite/ld-elf/sec64k.exp: Mark sec64k case as too big for PRU.
* testsuite/ld-srec/srec.exp (run_srec_test): Add setup for PRU.

Signed-off-by: Dimitar Dimitrov <dimitar@dinux.eu>
56 files changed:
ld/ChangeLog
ld/Makefile.am
ld/Makefile.in
ld/NEWS
ld/configure.tgt
ld/emulparams/pruelf.sh [new file with mode: 0644]
ld/emultempl/pruelf.em [new file with mode: 0644]
ld/scripttempl/pru.sc [new file with mode: 0644]
ld/testsuite/ld-elf/eh-frame-hdr.d
ld/testsuite/ld-elf/endsym.d
ld/testsuite/ld-elf/group8a.d
ld/testsuite/ld-elf/group8b.d
ld/testsuite/ld-elf/group9a.d
ld/testsuite/ld-elf/group9b.d
ld/testsuite/ld-elf/merge.d
ld/testsuite/ld-elf/pr12851.d
ld/testsuite/ld-elf/pr14926.d
ld/testsuite/ld-elf/sec-to-seg.exp
ld/testsuite/ld-elf/sec64k.exp
ld/testsuite/ld-pru/emit-relocs-1.d [new file with mode: 0644]
ld/testsuite/ld-pru/emit-relocs-1.ld [new file with mode: 0644]
ld/testsuite/ld-pru/emit-relocs-1a.s [new file with mode: 0644]
ld/testsuite/ld-pru/emit-relocs-1b.s [new file with mode: 0644]
ld/testsuite/ld-pru/ldi32.d [new file with mode: 0644]
ld/testsuite/ld-pru/ldi32.s [new file with mode: 0644]
ld/testsuite/ld-pru/ldi32_symbol.s [new file with mode: 0644]
ld/testsuite/ld-pru/norelax_ldi32-data.d [new file with mode: 0644]
ld/testsuite/ld-pru/norelax_ldi32-dis.d [new file with mode: 0644]
ld/testsuite/ld-pru/pcrel_s10.d [new file with mode: 0644]
ld/testsuite/ld-pru/pcrel_s10.s [new file with mode: 0644]
ld/testsuite/ld-pru/pcrel_s10_label.s [new file with mode: 0644]
ld/testsuite/ld-pru/pcrel_u8-illegal.d [new file with mode: 0644]
ld/testsuite/ld-pru/pcrel_u8-illegal.s [new file with mode: 0644]
ld/testsuite/ld-pru/pcrel_u8-illegal2.d [new file with mode: 0644]
ld/testsuite/ld-pru/pcrel_u8-illegal2.s [new file with mode: 0644]
ld/testsuite/ld-pru/pcrel_u8-illegal3.d [new file with mode: 0644]
ld/testsuite/ld-pru/pcrel_u8-illegal3.s [new file with mode: 0644]
ld/testsuite/ld-pru/pcrel_u8.d [new file with mode: 0644]
ld/testsuite/ld-pru/pcrel_u8.s [new file with mode: 0644]
ld/testsuite/ld-pru/pcrel_u8_label.s [new file with mode: 0644]
ld/testsuite/ld-pru/pmem.d [new file with mode: 0644]
ld/testsuite/ld-pru/pmem.s [new file with mode: 0644]
ld/testsuite/ld-pru/pmem_symbol.s [new file with mode: 0644]
ld/testsuite/ld-pru/pru.exp [new file with mode: 0644]
ld/testsuite/ld-pru/relax_ldi32-data.d [new file with mode: 0644]
ld/testsuite/ld-pru/relax_ldi32-dis.d [new file with mode: 0644]
ld/testsuite/ld-pru/relax_ldi32.s [new file with mode: 0644]
ld/testsuite/ld-pru/relax_ldi32_symbol.s [new file with mode: 0644]
ld/testsuite/ld-pru/reloc.d [new file with mode: 0644]
ld/testsuite/ld-pru/reloc.s [new file with mode: 0644]
ld/testsuite/ld-pru/reloc_symbol.s [new file with mode: 0644]
ld/testsuite/ld-pru/u16.d [new file with mode: 0644]
ld/testsuite/ld-pru/u16.s [new file with mode: 0644]
ld/testsuite/ld-pru/u16_symbol.s [new file with mode: 0644]
ld/testsuite/ld-srec/srec.exp
ld/testsuite/lib/ld-lib.exp