gdb/23712: Test case for multidictionary
[deliverable/binutils-gdb.git] / ld / emultempl / v850elf.em
index 6f9f0d2f7056f00da00be7db66f8d0d0b0f91aee..887880d78615ffd6c774060c4154fdded0d8945a 100644 (file)
@@ -1,5 +1,5 @@
 # This shell script emits a C file. -*- C -*-
-#   Copyright 2013-2015 Free Software Foundation, Inc.
+#   Copyright (C) 2013-2019 Free Software Foundation, Inc.
 #
 # This file is part of the GNU Binutils.
 #
@@ -41,14 +41,35 @@ static void
 v850_after_open (void)
 {
   if (is_v850_target ()
-      && ! link_info.relocatable
+      && !bfd_link_relocatable (&link_info)
       && link_info.input_bfds != NULL
       && ! v850_elf_create_sections (& link_info))
-       einfo ("%X%P: can not create note section: %E\n");
+       einfo (_("%X%P: can not create note section: %E\n"));
 
   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%P: error: cannot change output format"
+              " whilst linking %s binaries\n"), "V850");
+      return;
+    }
+}
+
+
 EOF
 
 LDEMUL_AFTER_OPEN=v850_after_open
+LDEMUL_CREATE_OUTPUT_SECTION_STATEMENTS=v850_create_output_section_statements
This page took 0.02406 seconds and 4 git commands to generate.