PR46, cygwin: FAIL: cdtest with -Ur
[deliverable/binutils-gdb.git] / ld / emultempl / v850elf.em
index 2d590234986861aeec5b6a08702868ec793f2f94..3e3e09d4bbf4d7d2a0ebbffe23a1900ebe599796 100644 (file)
@@ -1,5 +1,5 @@
 # This shell script emits a C file. -*- C -*-
-#   Copyright (C) 2013-2017 Free Software Foundation, Inc.
+#   Copyright (C) 2013-2019 Free Software Foundation, Inc.
 #
 # This file is part of the GNU Binutils.
 #
 # MA 02110-1301, USA.
 #
 
-# This file is sourced from elf32.em, and defines extra cpu specific
+# This file is sourced from elf.em, and defines extra cpu specific
 # features.
 #
 fragment <<EOF
 #include "ldctor.h"
+#include "elf32-v850.h"
 
 static bfd_boolean
 is_v850_target (void)
@@ -49,6 +50,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%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.026717 seconds and 4 git commands to generate.