Fix the test for PR 18963 so that it will work on 16-bit targets.
authorStephen Casner <casner@acm.org>
Thu, 16 Apr 2020 15:13:31 +0000 (16:13 +0100)
committerNick Clifton <nickc@redhat.com>
Thu, 16 Apr 2020 15:13:31 +0000 (16:13 +0100)
PR ld/18963
* testsuite/ld-scripts/pr18963.s: New, replaces empty data.s to
allocate space in text, data, bss here rather than pr18963.t.
* testsuite/ld-scripts/pr18963.t: Remove assignments to dot.
* testsuite/ld-scripts/pr18963.d: Change addresses to fit 16 bits.

ld/ChangeLog
ld/pe-dll.c
ld/testsuite/ld-scripts/pr18963.d
ld/testsuite/ld-scripts/pr18963.s [new file with mode: 0644]
ld/testsuite/ld-scripts/pr18963.t

index 53a3c9d5dcd6ec93fdd4936f0054fa46220036ec..82893a92551c22bfb00adf1119d26e1da094e7d5 100644 (file)
@@ -1,3 +1,11 @@
+2020-04-16  Stephen Casner  <casner@acm.org>
+
+       PR ld/18963
+       * testsuite/ld-scripts/pr18963.s: New, replaces empty data.s to
+       allocate space in text, data, bss here rather than pr18963.t.
+       * testsuite/ld-scripts/pr18963.t: Remove assignments to dot.
+       * testsuite/ld-scripts/pr18963.d: Change addresses to fit 16 bits.
+
 2020-04-15  Fangrui Song <maskray@google.com>
 
        PR binutils/24613
index 0addde231863a50e7111e2ce23cd00699dcfb98c..1145d7a25147b2a105866e45c2638e684146a951 100644 (file)
@@ -1540,7 +1540,7 @@ generate_reloc (bfd *abfd, struct bfd_link_info *info)
          if (s->output_section->vma == 0)
            {
              /* Huh?  Shouldn't happen, but punt if it does.  */
-             einfo (_("%P: zero vma section reloc detected: `%s' #%d f=%d\n"),
+             einfo (_("%P: zero vma section reloc detected: `%s' index %d flags %x\n"),
                     s->output_section->name, s->output_section->index,
                     s->output_section->flags);
              continue;
index 699db594ac3a5f12239cc2c38ade55c18a85a695..293887f6a9b87abb629fa1affb19e1db3fd38195 100644 (file)
@@ -1,15 +1,22 @@
-# source: data.s
+# source: pr18963.s
 # ld: -T pr18963.t
 # nm: -B -n
+# notarget: tic*-*-*  ia64-*-* *-*-aix* microblaze-*-* *-*-vms
+# Skip this test on targets which have sizeof(byte) != sizeof(octet).
+# On these targets the ".lcomm _bss,0x100" directive does not create
+# a 0x100 byte long section as needed by the test.
+# Also skip it for AIX and IA64 targets because they use a non-standard version of .lcomm.
+# And skip for the microblaze target which does not support a .bss section at all.
+# Plus skip for VMS based targets as the linker automatically adds extra libraries that may not be present in a cross build.
 
 #...
-0+70000 A D
+0+a00 . D
 #...
-0+70000 A E
+0+a00 . E
 #...
-0+80000 T A
+[02]+b00 T A
 #...
-0+90000 T B
+[02]+c00 D B
 #...
-0+a0000 D C
+[02]+d00 . C
 #pass
diff --git a/ld/testsuite/ld-scripts/pr18963.s b/ld/testsuite/ld-scripts/pr18963.s
new file mode 100644 (file)
index 0000000..6a59f55
--- /dev/null
@@ -0,0 +1,7 @@
+       .globl  _start
+       .text
+_start:
+       .=.+0x800
+       .data
+       .=.+0x100
+       .lcomm _bss,0x100
index 830ded78dd916d6f505e1909f8faaef8ca25b4c0..94f8f164d00c041f14f2a663d04f67027dc89be1 100644 (file)
@@ -1,25 +1,20 @@
 SECTIONS
 {
-  . = 0x80000;
-  A = .;
-  .text :
+  .text 0x300 :
   {
-    _start = .;
     *(.text)
-    . = 0x10000;
   }
-  B = .;
+  A = .;
   .data :
   {
     *(.data)
-    . = 0x10000;
   }
-  C = .;
+  B = .;
   .bss :
   {
     *(.bss)
-    . = 0x10000;
   }
+  C = .;
   D = A - C + B;
   E = A + B - C;
   /DISCARD/ : {*(*)}