From 7a1a12f4d1c6152017142d74c736dc1cc6b0e81c Mon Sep 17 00:00:00 2001 From: Stephen Casner Date: Thu, 16 Apr 2020 16:13:31 +0100 Subject: Fix the test for PR 18963 so that it will work on 16-bit targets. 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 | 8 ++++++++ ld/pe-dll.c | 2 +- ld/testsuite/ld-scripts/pr18963.d | 19 +++++++++++++------ ld/testsuite/ld-scripts/pr18963.s | 7 +++++++ ld/testsuite/ld-scripts/pr18963.t | 13 ++++--------- 5 files changed, 33 insertions(+), 16 deletions(-) create mode 100644 ld/testsuite/ld-scripts/pr18963.s (limited to 'ld') diff --git a/ld/ChangeLog b/ld/ChangeLog index 53a3c9d5dcd..82893a92551 100644 --- a/ld/ChangeLog +++ b/ld/ChangeLog @@ -1,3 +1,11 @@ +2020-04-16 Stephen Casner + + 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 PR binutils/24613 diff --git a/ld/pe-dll.c b/ld/pe-dll.c index 0addde23186..1145d7a2514 100644 --- a/ld/pe-dll.c +++ b/ld/pe-dll.c @@ -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; diff --git a/ld/testsuite/ld-scripts/pr18963.d b/ld/testsuite/ld-scripts/pr18963.d index 699db594ac3..293887f6a9b 100644 --- a/ld/testsuite/ld-scripts/pr18963.d +++ b/ld/testsuite/ld-scripts/pr18963.d @@ -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 index 00000000000..6a59f5583ea --- /dev/null +++ b/ld/testsuite/ld-scripts/pr18963.s @@ -0,0 +1,7 @@ + .globl _start + .text +_start: + .=.+0x800 + .data + .=.+0x100 + .lcomm _bss,0x100 diff --git a/ld/testsuite/ld-scripts/pr18963.t b/ld/testsuite/ld-scripts/pr18963.t index 830ded78dd9..94f8f164d00 100644 --- a/ld/testsuite/ld-scripts/pr18963.t +++ b/ld/testsuite/ld-scripts/pr18963.t @@ -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/ : {*(*)} -- cgit v1.2.1