* ldlang.c (lang_check): Emit fatal error if relocatable link
authorHans-Peter Nilsson <hp@axis.com>
Tue, 19 Jun 2001 19:57:39 +0000 (19:57 +0000)
committerHans-Peter Nilsson <hp@axis.com>
Tue, 19 Jun 2001 19:57:39 +0000 (19:57 +0000)
between different object flavours with relocations in input.

ld/ChangeLog
ld/ldlang.c

index 9810435cf0690093bdaea0e243af98be6ede2774..9858969f42975775d4f8619eab2d63a06959e197 100644 (file)
@@ -1,3 +1,8 @@
+2001-06-19  Hans-Peter Nilsson  <hp@axis.com>
+
+       * ldlang.c (lang_check): Emit fatal error if relocatable link
+       between different object flavours with relocations in input.
+
 2001-06-19  H.J. Lu  <hjl@gnu.org>
 
        * ld.texinfo (-E, --export-dynamic): Mention --version-script.
index 5e57cacb45dbc1e636ec86fec49edc97a6946341..2b88068b8afe4cb70b103d1e3e246384d2ec85a7 100644 (file)
@@ -3520,6 +3520,18 @@ lang_check ()
                   bfd_printable_name (input_bfd), input_bfd,
                   bfd_printable_name (output_bfd));
        }
+      else if (link_info.relocateable
+              /* In general it is not possible to perform a relocatable
+                 link between differing object formats when the input
+                 file has relocations, because the relocations in the
+                 input format may not have equivalent representations in
+                 the output format (and besides BFD does not translate
+                 relocs for other link purposes than a final link).  */
+              && bfd_get_flavour (input_bfd) != bfd_get_flavour (output_bfd)
+              && (bfd_get_file_flags (input_bfd) & HAS_RELOC) != 0)
+       einfo (_("%P%F: Relocatable linking with relocations from format %s (%B) to format %s (%B) is not supported\n"),
+              bfd_get_target (input_bfd), input_bfd,
+              bfd_get_target (output_bfd), output_bfd);
       else if (bfd_count_sections (input_bfd))
        {
          /* If the input bfd has no contents, it shouldn't set the