* [PATCH][MSP430][LD][COMMITTED] Add input section rules for .upper sections to default linker script
@ 2020-01-16 13:42 Jozef Lawrynowicz
0 siblings, 0 replies; only message in thread
From: Jozef Lawrynowicz @ 2020-01-16 13:42 UTC (permalink / raw)
To: binutils
[-- Attachment #1: Type: text/plain, Size: 761 bytes --]
When compiling using GCC for msp430-elf, the -mdata-region=upper and
-mcode-region=upper target flags will generate sections prefixed with ".upper"
i.e. .upper.{text,data,rodata,bss}*.
The default linker script does not know how to place these sections, and the
following error message is emitted:
./ld-new: warning: no input section rule matches .upper.text in linker script
./ld-new: warning: no input section rule matches .upper.bss in linker script
./ld-new: warning: no input section rule matches .upper.data in linker script
./ld-new: warning: no input section rule matches .upper.rodata in linker script
This patch fixes this by adding input section rules for .upper.* sections.
Regtested the binutils testsuite for msp430-elf.
Committed as obvious.
[-- Attachment #2: 0001-MSP430-Add-input-section-rules-for-.upper-sections-t.patch --]
[-- Type: text/x-patch, Size: 3835 bytes --]
From 0c3d9485091753e6d9c4d317a9219cf4b6dce116 Mon Sep 17 00:00:00 2001
From: Jozef Lawrynowicz <jozef.l@mittosystems.com>
Date: Thu, 16 Jan 2020 11:32:23 +0000
Subject: [PATCH] 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.
---
ld/ChangeLog | 7 ++++
ld/scripttempl/elf32msp430.sc | 8 +++++
ld/testsuite/ld-msp430-elf/msp430-elf.exp | 2 ++
.../ld-msp430-elf/upper-input-sections.s | 33 +++++++++++++++++++
4 files changed, 50 insertions(+)
create mode 100644 ld/testsuite/ld-msp430-elf/upper-input-sections.s
diff --git a/ld/ChangeLog b/ld/ChangeLog
index 5208f62cfe..7799d7d9fe 100644
--- a/ld/ChangeLog
+++ b/ld/ChangeLog
@@ -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
diff --git a/ld/scripttempl/elf32msp430.sc b/ld/scripttempl/elf32msp430.sc
index 6f716c75e6..f9ee9ff65b 100644
--- a/ld/scripttempl/elf32msp430.sc
+++ b/ld/scripttempl/elf32msp430.sc
@@ -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}
diff --git a/ld/testsuite/ld-msp430-elf/msp430-elf.exp b/ld/testsuite/ld-msp430-elf/msp430-elf.exp
index 777b358a74..e9a0fdc629 100644
--- a/ld/testsuite/ld-msp430-elf/msp430-elf.exp
+++ b/ld/testsuite/ld-msp430-elf/msp430-elf.exp
@@ -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]]} {
diff --git a/ld/testsuite/ld-msp430-elf/upper-input-sections.s b/ld/testsuite/ld-msp430-elf/upper-input-sections.s
new file mode 100644
index 0000000000..c816f30248
--- /dev/null
+++ b/ld/testsuite/ld-msp430-elf/upper-input-sections.s
@@ -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
--
2.17.1
^ permalink raw reply [flat|nested] only message in thread
only message in thread, other threads:[~2020-01-16 13:42 UTC | newest]
Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-01-16 13:42 [PATCH][MSP430][LD][COMMITTED] Add input section rules for .upper sections to default linker script Jozef Lawrynowicz
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).