aboutsummaryrefslogtreecommitdiff
path: root/gas
diff options
context:
space:
mode:
authorJozef Lawrynowicz <jozef.l@mittosystems.com>2020-11-12 19:10:18 +0000
committerJozef Lawrynowicz <jozef.l@mittosystems.com>2020-11-12 19:27:04 +0000
commit1de037a0c526a3e034ca11020cf4dd89785487c3 (patch)
tree36d8a900ad577098b63fb6898ac86723cfc6f964 /gas
parent10c19fadfd45da5262d2f8b9624be71c274ff15d (diff)
downloadgdb-1de037a0c526a3e034ca11020cf4dd89785487c3.zip
gdb-1de037a0c526a3e034ca11020cf4dd89785487c3.tar.gz
gdb-1de037a0c526a3e034ca11020cf4dd89785487c3.tar.bz2
MSP430: gas: Ignore -md option required for GCC backward compatibility
The redundant -md option was removed in e4ae357fe8, but it is required for backwards compatibility with GCC 10, which passes it to the assembler implicitly in certain situations. It is now silently ignored. gas/ChangeLog: * config/tc-msp430.c (OPTION_MOVE_DATA): Define. (md_parse_option): Ignore OPTION_MOVE_DATA. (md_longopts): Handle -md option. * testsuite/gas/msp430/msp430.exp: Run new test. * testsuite/gas/msp430/empty.s: New test. * testsuite/gas/msp430/ignore-md.d: New test.
Diffstat (limited to 'gas')
-rw-r--r--gas/ChangeLog9
-rw-r--r--gas/config/tc-msp430.c8
-rw-r--r--gas/testsuite/gas/msp430/empty.s4
-rw-r--r--gas/testsuite/gas/msp430/ignore-md.d8
-rw-r--r--gas/testsuite/gas/msp430/msp430.exp1
5 files changed, 30 insertions, 0 deletions
diff --git a/gas/ChangeLog b/gas/ChangeLog
index f412f9d..8976025 100644
--- a/gas/ChangeLog
+++ b/gas/ChangeLog
@@ -1,3 +1,12 @@
+2020-11-12 Jozef Lawrynowicz <jozef.l@mittosystems.com>
+
+ * config/tc-msp430.c (OPTION_MOVE_DATA): Define.
+ (md_parse_option): Ignore OPTION_MOVE_DATA.
+ (md_longopts): Handle -md option.
+ * testsuite/gas/msp430/msp430.exp: Run new test.
+ * testsuite/gas/msp430/empty.s: New test.
+ * testsuite/gas/msp430/ignore-md.d: New test.
+
2020-11-12 Nick Clifton <nickc@redhat.com>
PR 26850
diff --git a/gas/config/tc-msp430.c b/gas/config/tc-msp430.c
index 6d18032..322ad7c 100644
--- a/gas/config/tc-msp430.c
+++ b/gas/config/tc-msp430.c
@@ -690,6 +690,9 @@ static bfd_boolean upper_data_region_in_use = FALSE;
/* The default is to use the lower region only. */
static bfd_boolean lower_data_region_only = TRUE;
+/* Deprecated option, silently ignore it for compatibility with GCC <= 10. */
+#define OPTION_MOVE_DATA 'd'
+
enum
{
OPTION_SILICON_ERRATA = OPTION_MD_BASE,
@@ -1465,6 +1468,10 @@ md_parse_option (int c, const char * arg)
do_unknown_interrupt_nops = FALSE;
return 1;
+ case OPTION_MOVE_DATA:
+ /* Silently ignored. */
+ return 1;
+
case OPTION_DATA_REGION:
if (strcmp (arg, "upper") == 0
|| strcmp (arg, "either") == 0)
@@ -1750,6 +1757,7 @@ struct option md_longopts[] =
{"my", no_argument, NULL, OPTION_WARN_INTR_NOPS},
{"mu", no_argument, NULL, OPTION_UNKNOWN_INTR_NOPS},
{"mU", no_argument, NULL, OPTION_NO_UNKNOWN_INTR_NOPS},
+ {"md", no_argument, NULL, OPTION_MOVE_DATA},
{"mdata-region", required_argument, NULL, OPTION_DATA_REGION},
{NULL, no_argument, NULL, 0}
};
diff --git a/gas/testsuite/gas/msp430/empty.s b/gas/testsuite/gas/msp430/empty.s
new file mode 100644
index 0000000..910559d
--- /dev/null
+++ b/gas/testsuite/gas/msp430/empty.s
@@ -0,0 +1,4 @@
+.text
+.global foo
+foo:
+.word 0
diff --git a/gas/testsuite/gas/msp430/ignore-md.d b/gas/testsuite/gas/msp430/ignore-md.d
new file mode 100644
index 0000000..2e55f22
--- /dev/null
+++ b/gas/testsuite/gas/msp430/ignore-md.d
@@ -0,0 +1,8 @@
+#name: Silently Ignore -md Option
+#source: empty.s
+#as: -md --fatal-warnings
+#DUMPPROG: nm
+
+#...
+.*foo.*
+#pass
diff --git a/gas/testsuite/gas/msp430/msp430.exp b/gas/testsuite/gas/msp430/msp430.exp
index 624867f..ae9499c 100644
--- a/gas/testsuite/gas/msp430/msp430.exp
+++ b/gas/testsuite/gas/msp430/msp430.exp
@@ -53,4 +53,5 @@ if [expr [istarget "msp430-*-*"]] then {
run_dump_test "attr-430x-large-any-bad"
run_dump_test "attr-430x-large-any-good"
run_dump_test "reloc-lo-430x"
+ run_dump_test "ignore-md"
}