summaryrefslogtreecommitdiff
path: root/ld
diff options
context:
space:
mode:
Diffstat (limited to 'ld')
-rw-r--r--ld/ChangeLog9
-rw-r--r--ld/testsuite/ld-msp430-elf/attr-gnu-main.s8
-rw-r--r--ld/testsuite/ld-msp430-elf/attr-gnu-obj.s2
-rw-r--r--ld/testsuite/ld-msp430-elf/attr-gnu-region-lower-upper.d6
-rw-r--r--ld/testsuite/ld-msp430-elf/attr-gnu-region-lower.d12
-rw-r--r--ld/testsuite/ld-msp430-elf/attr-gnu-region-upper.d13
-rw-r--r--ld/testsuite/ld-msp430-elf/msp430-elf.exp12
7 files changed, 61 insertions, 1 deletions
diff --git a/ld/ChangeLog b/ld/ChangeLog
index ddec8c79ce3..a5457654088 100644
--- a/ld/ChangeLog
+++ b/ld/ChangeLog
@@ -1,3 +1,12 @@
+2019-10-07 Jozef Lawrynowicz <jozef.l@mittosystems.com>
+
+ * testsuite/ld-msp430-elf/attr-gnu-main.s: New test.
+ * testsuite/ld-msp430-elf/attr-gnu-obj.s: New test.
+ * testsuite/ld-msp430-elf/attr-gnu-region-lower-upper.d: New test.
+ * testsuite/ld-msp430-elf/attr-gnu-region-lower.d: New test.
+ * testsuite/ld-msp430-elf/attr-gnu-region-upper.d: New test.
+ * testsuite/ld-msp430-elf/msp430-elf.exp: Run new tests.
+
2019-10-07 Alan Modra <amodra@gmail.com>
* ldmisc.c (vfinfo): Save and restore bfd_error around bfd
diff --git a/ld/testsuite/ld-msp430-elf/attr-gnu-main.s b/ld/testsuite/ld-msp430-elf/attr-gnu-main.s
new file mode 100644
index 00000000000..e07a58ca709
--- /dev/null
+++ b/ld/testsuite/ld-msp430-elf/attr-gnu-main.s
@@ -0,0 +1,8 @@
+.text
+ .balign 2
+ .global main
+ .type main, @function
+main:
+.L2:
+ BRA #.L2
+ .size main, .-main
diff --git a/ld/testsuite/ld-msp430-elf/attr-gnu-obj.s b/ld/testsuite/ld-msp430-elf/attr-gnu-obj.s
new file mode 100644
index 00000000000..d256e409c20
--- /dev/null
+++ b/ld/testsuite/ld-msp430-elf/attr-gnu-obj.s
@@ -0,0 +1,2 @@
+.text
+ .comm a,2,2
diff --git a/ld/testsuite/ld-msp430-elf/attr-gnu-region-lower-upper.d b/ld/testsuite/ld-msp430-elf/attr-gnu-region-lower-upper.d
new file mode 100644
index 00000000000..70f8e350041
--- /dev/null
+++ b/ld/testsuite/ld-msp430-elf/attr-gnu-region-lower-upper.d
@@ -0,0 +1,6 @@
+#name: prevent merging of lower and upper attributes
+#source: attr-gnu-main.s -ml -mdata-region=lower
+#source: attr-gnu-obj.s -ml -mdata-region=upper
+#ld:
+#error: .*can use the upper region for data, but.*assumes data is exclusively in lower memory.*
+#error: .*failed to merge target specific data of file.*
diff --git a/ld/testsuite/ld-msp430-elf/attr-gnu-region-lower.d b/ld/testsuite/ld-msp430-elf/attr-gnu-region-lower.d
new file mode 100644
index 00000000000..57345aadebd
--- /dev/null
+++ b/ld/testsuite/ld-msp430-elf/attr-gnu-region-lower.d
@@ -0,0 +1,12 @@
+#source: attr-gnu-main.s -ml -mdata-region=lower
+#source: attr-gnu-obj.s -ml
+#readelf: -A
+
+Attribute Section: mspabi
+File Attributes
+ Tag_ISA: MSP430X
+ Tag_Code_Model: Large
+ Tag_Data_Model: Large
+Attribute Section: gnu
+File Attributes
+ Tag_GNU_MSP430_Data_Region: Lower Region Only
diff --git a/ld/testsuite/ld-msp430-elf/attr-gnu-region-upper.d b/ld/testsuite/ld-msp430-elf/attr-gnu-region-upper.d
new file mode 100644
index 00000000000..225968dc445
--- /dev/null
+++ b/ld/testsuite/ld-msp430-elf/attr-gnu-region-upper.d
@@ -0,0 +1,13 @@
+#source: attr-gnu-main.s -ml -mdata-region=upper
+#source: attr-gnu-obj.s -ml -mdata-region=none
+#ld: --data-region=either
+#readelf: -A
+
+Attribute Section: mspabi
+File Attributes
+ Tag_ISA: MSP430X
+ Tag_Code_Model: Large
+ Tag_Data_Model: Large
+Attribute Section: gnu
+File Attributes
+ Tag_GNU_MSP430_Data_Region: Any Region
diff --git a/ld/testsuite/ld-msp430-elf/msp430-elf.exp b/ld/testsuite/ld-msp430-elf/msp430-elf.exp
index b6f3151c80d..08620b57ff5 100644
--- a/ld/testsuite/ld-msp430-elf/msp430-elf.exp
+++ b/ld/testsuite/ld-msp430-elf/msp430-elf.exp
@@ -46,6 +46,7 @@ if { ![istarget "msp430*elf*"] } {
# treated as a sign of an error and FAILs the test.
#
#
+
set msp430regionprefixtests {
{"Move main() to .upper.text" "-T msp430.ld --code-region=upper"
"" "" {main-with-text-rodata.s} {{objdump -d main-text-upper.d}} "main-upper"}
@@ -162,7 +163,7 @@ set msp430warntests {
{{ld warn-no-lower-data.r}} "warn-no-lower-data"}
}
-# Don't run section shuffle tests when msp430 ISA is selected
+# Don't run further tests when msp430 ISA is selected
if {[string match "*-mcpu=msp430 *" [board_info [target_info name] multilib_flags]]
|| [string match "*-mcpu=msp430" [board_info [target_info name] multilib_flags]]} {
return
@@ -173,3 +174,12 @@ run_ld_link_tests $msp430eithershuffletests
run_ld_link_tests $msp430warntests
run_dump_test valid-map
+
+# Don't run data region tests if a data region is specified
+if {[string match "*-mdata-region*" [board_info [target_info name] multilib_flags]]} {
+ return
+}
+# GNU object attribute dump tests
+run_dump_test attr-gnu-region-lower
+run_dump_test attr-gnu-region-upper
+run_dump_test attr-gnu-region-lower-upper