Improve MSP430 section placement.
authorJozef Lawrynowicz <jozef.l@somniumtech.com>
Tue, 29 Aug 2017 16:18:43 +0000 (17:18 +0100)
committerNick Clifton <nickc@redhat.com>
Tue, 29 Aug 2017 16:18:43 +0000 (17:18 +0100)
commit7ef3addbe195b6283d0baf59e081146dfb211c97
treec201cf7915b7d05e32742dc90d4c0716e62babcf
parent3819af136deb7ba6bc2058d7848cf80b33dbe51c
Improve MSP430 section placement.

ld * emultempl/msp430.em (change_output_section): New function.
(move_prefixed_section): New function.
(add_region_prefix): New function.
(msp430_elf_after_open): New function.
(gld${EMULATION_NAME}_add_options): Implement.
(gld${EMULATION_NAME}_list_options): Implement.
(gld${EMULATION_NAME}_handle_option): Implement.
* ld.texinfo: Document new options.
* testsuite/ld-msp430-elf/main-bss-lower.d: New.
* testsuite/ld-msp430-elf/main-bss-upper.d: New.
* testsuite/ld-msp430-elf/main-const-lower.d: New.
* testsuite/ld-msp430-elf/main-const-upper.d: New.
* testsuite/ld-msp430-elf/main-text-lower.d: New.
* testsuite/ld-msp430-elf/main-text-upper.d: New.
* testsuite/ld-msp430-elf/main-var-lower.d: New.
* testsuite/ld-msp430-elf/main-var-upper.d: New.
* testsuite/ld-msp430-elf/main-with-data-bss-unique-sec.s: New.
* testsuite/ld-msp430-elf/main-with-data-bss.s: New.
* testsuite/ld-msp430-elf/main-with-text-rodata-unique-sec.s: New.
* testsuite/ld-msp430-elf/main-with-text-rodata.s: New.
* testsuite/ld-msp430-elf/msp430-elf.exp: New.
* testsuite/ld-msp430-elf/msp430-no-lower.ld: New.
* testsuite/ld-msp430-elf/msp430.ld: New.
* emultempl/msp430.em (data_statement_size): New.
(eval_upper_either_sections): New.
(eval_lower_either_sections): New.
(intermediate_relax_sections): New.
(msp430_elf_after_allocation): New.
* emultempl/msp430.em (gld${EMULATION_NAME}_place_orphan): Always
place sections in the lower region.

gas * config/tc-msp430.c (md_parse_option): Define high data and high
bss symbols if -mdata-region is passed.
Define -mdata-region open.
* doc/c-msp430.texi: Document -mdata-region.
* testsuite/gas/msp430/high-data-bss-sym.d: New test.
* testsuite/gas/msp430/high-data-bss-sym.s: New.
* testsuite/gas/msp430/msp430.exp: Add -mdata-region tests.
26 files changed:
gas/ChangeLog
gas/config/tc-msp430.c
gas/doc/c-msp430.texi
gas/testsuite/gas/msp430/high-data-bss-sym.d [new file with mode: 0644]
gas/testsuite/gas/msp430/high-data-bss-sym.s [new file with mode: 0644]
gas/testsuite/gas/msp430/msp430.exp
ld/ChangeLog
ld/emultempl/msp430.em
ld/ld.texinfo
ld/testsuite/ld-msp430-elf/main-bss-lower.d [new file with mode: 0644]
ld/testsuite/ld-msp430-elf/main-bss-upper.d [new file with mode: 0644]
ld/testsuite/ld-msp430-elf/main-const-lower.d [new file with mode: 0644]
ld/testsuite/ld-msp430-elf/main-const-upper.d [new file with mode: 0644]
ld/testsuite/ld-msp430-elf/main-text-lower.d [new file with mode: 0644]
ld/testsuite/ld-msp430-elf/main-text-upper.d [new file with mode: 0644]
ld/testsuite/ld-msp430-elf/main-var-lower.d [new file with mode: 0644]
ld/testsuite/ld-msp430-elf/main-var-upper.d [new file with mode: 0644]
ld/testsuite/ld-msp430-elf/main-with-data-bss-unique-sec.s [new file with mode: 0644]
ld/testsuite/ld-msp430-elf/main-with-data-bss.s [new file with mode: 0644]
ld/testsuite/ld-msp430-elf/main-with-text-rodata-unique-sec.s [new file with mode: 0644]
ld/testsuite/ld-msp430-elf/main-with-text-rodata.s [new file with mode: 0644]
ld/testsuite/ld-msp430-elf/msp430-elf.exp [new file with mode: 0644]
ld/testsuite/ld-msp430-elf/msp430-no-lower.ld [new file with mode: 0644]
ld/testsuite/ld-msp430-elf/msp430-tiny-ram.ld [new file with mode: 0644]
ld/testsuite/ld-msp430-elf/msp430-tiny-rom.ld [new file with mode: 0644]
ld/testsuite/ld-msp430-elf/msp430.ld [new file with mode: 0644]