More just-syms changes
authorAlan Modra <amodra@gmail.com>
Tue, 28 Jul 2020 02:14:16 +0000 (11:44 +0930)
committerAlan Modra <amodra@gmail.com>
Tue, 28 Jul 2020 03:39:20 +0000 (13:09 +0930)
* ldlang.c (lang_check): Don't complain about relocs or merge
attributes from --just-symbols input.
* testsuite/ld-misc/just-symbols.exp: Just dump .data section.
Don't run test on a number of targets.

ld/ChangeLog
ld/ldlang.c
ld/testsuite/ld-misc/just-symbols.exp

index 7ef623c1b57f4126a201b4042b8333a1bd63956d..9cee3ca275bbda8659fcd8379937f830b78cb1b4 100644 (file)
@@ -1,3 +1,10 @@
+2020-07-28  Alan Modra  <amodra@gmail.com>
+
+       * ldlang.c (lang_check): Don't complain about relocs or merge
+       attributes from --just-symbols input.
+       * testsuite/ld-misc/just-symbols.exp: Just dump .data section.
+       Don't run test on a number of targets.
+
 2020-07-28  Alan Modra  <amodra@gmail.com>
 
        * testsuite/ld-misc/just-symbols-1.dd: Revert last change.
index 6943adfdc31a60a5b881ae5ee46b02d9693ecc5d..1dd17ffff2234cb54b896b91c902938e63cb46c2 100644 (file)
@@ -7001,8 +7001,9 @@ lang_check (void)
         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).  */
-      if ((bfd_link_relocatable (&link_info)
-          || link_info.emitrelocations)
+      if (!file->flags.just_syms
+         && (bfd_link_relocatable (&link_info)
+             || link_info.emitrelocations)
          && (compatible == NULL
              || (bfd_get_flavour (input_bfd)
                  != bfd_get_flavour (link_info.output_bfd)))
@@ -7026,8 +7027,9 @@ lang_check (void)
 
       /* If the input bfd has no contents, it shouldn't set the
         private data of the output bfd.  */
-      else if ((input_bfd->flags & DYNAMIC) != 0
-              || bfd_count_sections (input_bfd) != 0)
+      else if (!file->flags.just_syms
+              && ((input_bfd->flags & DYNAMIC) != 0
+                  || bfd_count_sections (input_bfd) != 0))
        {
          bfd_error_handler_type pfn = NULL;
 
index 59c725d0d2c5be28284b29df4b7f018e9067da5f..e3c012f0f6eda04e7d574ec10f0a12490947af49 100644 (file)
 #
 
 # SH/PE targets complain about zero VMA.
-if { [istarget sh-*-pe] } {
+# i386-msdos doesn't have .data
+# tic30-coff has a weird 32-bit reloc that divides sym value by four
+# alpha-dec-vms wants a bunch of libs to link
+if { [istarget sh-*-pe]
+     || [istarget *-*-msdos]
+     || [istarget *c30-*-*]
+     || [istarget alpha-*-vms] } {
     return
 }
 
@@ -49,13 +55,13 @@ run_ld_link_tests [list \
      "$LDFLAGS -e 0 -T just-symbols.ld --just-symbols=tmpdir/just-symbols-0.o" "" \
      "" \
      {just-symbols-1.s} \
-     {{objdump -s just-symbols-1.dd}} \
+     {{objdump {-s -j .data} just-symbols-1.dd}} \
      "just-symbols-1obj"] \
     [list "Executable with --just-symbols test" \
      "$LDFLAGS -e 0 -T just-symbols.ld --just-symbols=tmpdir/just-symbols-0" "" \
      "" \
      {just-symbols-1.s} \
-     {{objdump -s just-symbols-1.dd}} \
+     {{objdump {-s -j .data} just-symbols-1.dd}} \
      "just-symbols-1exe"] \
 ]