diff options
-rw-r--r-- | bfd/ChangeLog | 6 | ||||
-rw-r--r-- | bfd/elf.c | 3 | ||||
-rw-r--r-- | ld/ChangeLog | 6 | ||||
-rw-r--r-- | ld/testsuite/ld-elf/pr26907.d | 9 | ||||
-rw-r--r-- | ld/testsuite/ld-elf/pr26907.ld | 7 | ||||
-rw-r--r-- | ld/testsuite/ld-elf/pr26907.s | 9 |
6 files changed, 39 insertions, 1 deletions
diff --git a/bfd/ChangeLog b/bfd/ChangeLog index 1e5e923..83eb645 100644 --- a/bfd/ChangeLog +++ b/bfd/ChangeLog @@ -1,3 +1,9 @@ +2020-11-28 Alan Modra <amodra@gmail.com> + + PR 26907 + * elf.c (elf_sort_sections): Don't sort zero size !load sections + after load sections. + 2020-11-27 Jozef Lawrynowicz <jozef.l@mittosystems.com> * elf.c (special_sections_g): Add .gnu.linkonce.n and .gnu.linkonce.p. @@ -5257,7 +5257,8 @@ elf_sort_sections (const void *arg1, const void *arg2) /* Put !SEC_LOAD sections after SEC_LOAD ones. */ -#define TOEND(x) (((x)->flags & (SEC_LOAD | SEC_THREAD_LOCAL)) == 0) +#define TOEND(x) (((x)->flags & (SEC_LOAD | SEC_THREAD_LOCAL)) == 0 \ + && (x)->size != 0) if (TOEND (sec1)) { diff --git a/ld/ChangeLog b/ld/ChangeLog index fbc2d8a..b6d1aef 100644 --- a/ld/ChangeLog +++ b/ld/ChangeLog @@ -1,3 +1,9 @@ +2020-11-28 Alan Modra <amodra@gmail.com> + + * testsuite/ld-elf/pr26907.ld, + * testsuite/ld-elf/pr26907.s, + * testsuite/ld-elf/pr26907.d: New test. + 2020-11-27 Jozef Lawrynowicz <jozef.l@mittosystems.com> * emulparams/armelf.sh (OTHER_SECTIONS): Remove .noinit section diff --git a/ld/testsuite/ld-elf/pr26907.d b/ld/testsuite/ld-elf/pr26907.d new file mode 100644 index 0000000..1efb8cc --- /dev/null +++ b/ld/testsuite/ld-elf/pr26907.d @@ -0,0 +1,9 @@ +#ld: -T pr26907.ld +#readelf: -lW +#xfail: dlx-*-* ft32-*-* h8300-*-* ip2k-*-* m32r*-*-elf* m32r*-*-rtems* +#xfail: moxie-*-* msp430-*-* mt-*-* pru*-*-* visium-*-* + +#failif +#... + +LOAD +0x[0-9a-f]+ 0x[0-9a-f]+ 0x[0-9a-f]+ 0x0+ 0x0+ .* +#... diff --git a/ld/testsuite/ld-elf/pr26907.ld b/ld/testsuite/ld-elf/pr26907.ld new file mode 100644 index 0000000..2cce1ee --- /dev/null +++ b/ld/testsuite/ld-elf/pr26907.ld @@ -0,0 +1,7 @@ +ENTRY (_start) +SECTIONS +{ + .text : { *(.text) } + .bss : { . = .; *(.bss) } + .data : { *(.data) } +} diff --git a/ld/testsuite/ld-elf/pr26907.s b/ld/testsuite/ld-elf/pr26907.s new file mode 100644 index 0000000..13b3a54 --- /dev/null +++ b/ld/testsuite/ld-elf/pr26907.s @@ -0,0 +1,9 @@ + .text + .global _start +_start: + .quad 0 + + .data + .quad 0 + + .section .bss,"aw",%nobits |