aboutsummaryrefslogtreecommitdiff
path: root/ld/emultempl
diff options
context:
space:
mode:
authorNick Clifton <nickc@redhat.com>2017-11-21 14:15:51 +0000
committerNick Clifton <nickc@redhat.com>2017-11-21 14:15:51 +0000
commit2824e1bd4fc93f112875969b1ba606980aaa55ba (patch)
tree6372662755123d3efc88469a379be9964611d4d7 /ld/emultempl
parentbd560f571fe7a83755a17e7b5951e70f5e4c5039 (diff)
downloadgdb-2824e1bd4fc93f112875969b1ba606980aaa55ba.zip
gdb-2824e1bd4fc93f112875969b1ba606980aaa55ba.tar.gz
gdb-2824e1bd4fc93f112875969b1ba606980aaa55ba.tar.bz2
Stop the v850 linker from converting to other output formats whilst linking.
PR 22419 * emultempl/v850elf.em (v850_create_output_section_statements): New function. Generate an error if attempting to convert the format of the output file. * testsuite/ld-unique/pr21529.d: Skip for the V850. * testsuite/ld-elf/pr21884.d: Skip for the V850.
Diffstat (limited to 'ld/emultempl')
-rw-r--r--ld/emultempl/v850elf.em21
1 files changed, 21 insertions, 0 deletions
diff --git a/ld/emultempl/v850elf.em b/ld/emultempl/v850elf.em
index 2d59023..5bc82cc 100644
--- a/ld/emultempl/v850elf.em
+++ b/ld/emultempl/v850elf.em
@@ -49,6 +49,27 @@ v850_after_open (void)
gld${EMULATION_NAME}_after_open ();
}
+/* This is a convenient point to tell BFD about target specific flags.
+ After the output has been created, but before inputs are read. */
+
+static void
+v850_create_output_section_statements (void)
+{
+ /* See PR 22419 for an example of why this is necessary. */
+ if (strstr (bfd_get_target (link_info.output_bfd), "v850") == NULL)
+ {
+ /* The V850 backend needs special fields in the output hash structure.
+ These will only be created if the output format is an arm format,
+ hence we do not support linking and changing output formats at the
+ same time. Use a link followed by objcopy to change output formats. */
+ einfo (_("%F%X%P: error: Cannot change output format (to %s) whilst linking V850 binaries.\n"),
+ bfd_get_target (link_info.output_bfd));
+ return;
+ }
+}
+
+
EOF
LDEMUL_AFTER_OPEN=v850_after_open
+LDEMUL_CREATE_OUTPUT_SECTION_STATEMENTS=v850_create_output_section_statements