MSP430: Add input section rules for .upper sections to default linker script

ld/ChangeLog:

2020-01-16  Jozef Lawrynowicz  <jozef.l@mittosystems.com>

	* scripttempl/elf32msp430.sc: Add input section rules for
	.upper.{text,data,rodata,bss}.
	* testsuite/ld-msp430-elf/msp430-elf.exp: Run new test.
	* testsuite/ld-msp430-elf/upper-input-sections.s: New test.
This commit is contained in:
Jozef Lawrynowicz
2020-01-16 11:32:23 +00:00
parent 45a4bb2010
commit 0c3d948509
4 changed files with 50 additions and 0 deletions

View File

@ -1,3 +1,10 @@
2020-01-16 Jozef Lawrynowicz <jozef.l@mittosystems.com>
* scripttempl/elf32msp430.sc: Add input section rules for
.upper.{text,data,rodata,bss}.
* testsuite/ld-msp430-elf/msp430-elf.exp: Run new test.
* testsuite/ld-msp430-elf/upper-input-sections.s: New test.
2020-01-15 Lars Brinkhoff <lars@nocrew.org>
PR 20694

View File

@ -171,6 +171,8 @@ SECTIONS
*(.either.text.* .either.text)
*(.upper.text.* .upper.text)
. = ALIGN(2);
*(SORT_NONE(.fini9))
*(SORT_NONE(.fini8))
@ -198,6 +200,9 @@ SECTIONS
${RELOCATING+*(.rodata1)
*(.either.rodata.*) *(.either.rodata)
*(.upper.rodata.* .upper.rodata)
*(.eh_frame_hdr)
KEEP (*(.eh_frame))
@ -267,6 +272,8 @@ SECTIONS
*(.either.data.* .either.data)
*(.upper.data.* .upper.data)
*(.got.plt) *(.got)
. = ALIGN(2);
*(.sdata .sdata.* .gnu.linkonce.s.*)
@ -286,6 +293,7 @@ SECTIONS
. = ALIGN(2);}
*(.bss)
${RELOCATING+*(.either.bss.* .either.bss)
*(.upper.bss.* .upper.bss)
*(COMMON)
PROVIDE (__bss_end = .);}
} ${RELOCATING+ > data}

View File

@ -176,6 +176,8 @@ run_ld_link_tests $msp430warntests
run_dump_test valid-map
run_ld_link_tests {{ "Check no reloc overflow with #lo and data in the upper region"
"-m msp430X" "" "" {reloc-lo-430x.s} {} "reloc-lo-430x"}}
run_ld_link_tests {{ "Check .upper prefixed input sections can be placed"
"-m msp430X" "" "" {upper-input-sections.s} {} "upper-input-sections"}}
# Don't run data region tests if a data region is specified
if {[string match "*-mdata-region*" [board_info [target_info name] multilib_flags]]} {

View File

@ -0,0 +1,33 @@
.text
.balign 2
.section .upper.text,"ax",@progbits
.global foo
.type foo, @function
foo:
MOV.W #42, R8
RETA
.size foo, .-foo
.balign 2
.global main
.type main, @function
main:
CALLA #foo
.L4:
BRA #.L4
.size main, .-main
.section .upper.bss,"aw",@nobits
.balign 2
.global P
P:
.zero 4
.section .upper.data,"aw",@progbits
.balign 2
.global Q
Q:
.long 4
.section .upper.rodata,"aw",@progbits
.balign 2
.global R
R:
.word 8