From e299b3551edbe81be2062fcaef9319d681d0d15b Mon Sep 17 00:00:00 2001 From: Alan Modra Date: Sat, 11 Mar 2017 10:51:56 +1030 Subject: [PATCH] Don't run new orphan tests on i860 and i960 These targets use the generic ELF support, so don't handle orphans well. The patch also updates the orphan doco to reflect this fact, and deletes some ELF details that don't really add anything. * ld.texinfo (Orphan Sections): Mention that not all targets handle orphans well. Delete ELF details. * testsuite/ld-elf/orphan-9.d: Don't run for i860 and i960. * testsuite/ld-elf/orphan-10.d: Likewise. --- ld/ChangeLog | 7 +++++++ ld/ld.texinfo | 13 +++++-------- ld/testsuite/ld-elf/orphan-10.d | 2 +- ld/testsuite/ld-elf/orphan-9.d | 2 +- 4 files changed, 14 insertions(+), 10 deletions(-) diff --git a/ld/ChangeLog b/ld/ChangeLog index adefe321ea..2ea7630336 100644 --- a/ld/ChangeLog +++ b/ld/ChangeLog @@ -1,3 +1,10 @@ +2017-03-11 Alan Modra + + * ld.texinfo (Orphan Sections): Mention that not all targets + handle orphans well. + * testsuite/ld-elf/orphan-9.d: Don't run for i860 and i960. + * testsuite/ld-elf/orphan-10.d: Likewise. + 2017-03-09 Andrew Burgess * ldlang.c (lang_size_sections_1): Shortcut loop only after diff --git a/ld/ld.texinfo b/ld/ld.texinfo index 176b9f2688..769725d28e 100644 --- a/ld/ld.texinfo +++ b/ld/ld.texinfo @@ -5777,14 +5777,11 @@ one new output section. If new output sections are created to hold orphaned input sections, then the linker must decide where to place these new output sections -in relation to existing output sections. The linker uses a simple -heuristic to do this. It attempts to place orphan sections after -sections of the same attribute, such as code vs data, loadable vs -non-loadable, etc. If no sections with matching attributes are found, -the orphan section is placed at the end of the file. - -For ELF targets, the attribute of the section includes section type as -well as section flag. +in relation to existing output sections. On most modern targets, the +linker attempts to place orphan sections after sections of the same +attribute, such as code vs data, loadable vs non-loadable, etc. If no +sections with matching attributes are found, or your target lacks this +support, the orphan section is placed at the end of the file. The command line options @samp{--orphan-handling} and @samp{--unique} (@pxref{Options,,Command Line Options}) can be used to control which diff --git a/ld/testsuite/ld-elf/orphan-10.d b/ld/testsuite/ld-elf/orphan-10.d index a5cf6d9eb0..1dbec42e63 100644 --- a/ld/testsuite/ld-elf/orphan-10.d +++ b/ld/testsuite/ld-elf/orphan-10.d @@ -1,7 +1,7 @@ #source: orphan-10.s #ld: -N -T orphan-9.ld #objdump: -h -#notarget: d30v-* dlx-* fr30-* frv-* ft32-* iq2000-* mn10200-* moxie-* ms1-* msp430-* mt-* pj-* +#notarget: d30v-* dlx-* fr30-* frv-* ft32-* i860-* i960-* iq2000-* mn10200-* moxie-* ms1-* msp430-* mt-* pj-* #... . \.text 0+(08|10) [0-9a-f]+ 0+200 .* diff --git a/ld/testsuite/ld-elf/orphan-9.d b/ld/testsuite/ld-elf/orphan-9.d index 637e8c5d37..790cff1a74 100644 --- a/ld/testsuite/ld-elf/orphan-9.d +++ b/ld/testsuite/ld-elf/orphan-9.d @@ -1,7 +1,7 @@ #source: orphan-9.s #ld: -N -T orphan-9.ld #objdump: -h -#notarget: d30v-* dlx-* fr30-* frv-* ft32-* iq2000-* mn10200-* moxie-* ms1-* msp430-* mt-* pj-* +#notarget: d30v-* dlx-* fr30-* frv-* ft32-* i860-* i960-* iq2000-* mn10200-* moxie-* ms1-* msp430-* mt-* pj-* #... . \.text 0+(08|10) [0-9a-f]+ 0+200 .*