[PATCH] D61186: [LLD][ELF] /DISCARD/ output sections should not be orphans
Andrew Ng via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Mon Apr 29 06:11:12 PDT 2019
andrewng marked 4 inline comments as done.
andrewng added inline comments.
================
Comment at: test/ELF/linkerscript/discard-phdr.s:44
+.section .baz,"aw"
+ .byte 0
----------------
grimar wrote:
> grimar wrote:
> > andrewng wrote:
> > > grimar wrote:
> > > > andrewng wrote:
> > > > > grimar wrote:
> > > > > > Does not seem you need all of this sections for the test? Please reduce the number.
> > > > > These are actually required to provoke the issue. It is a somewhat unusual situation (based on a real scenario), so whether this test should be "kept" is debatable.
> > > > No need to replicate the full real case. The test case should show the minimal reproducible scenario of the different output before/after the patch. That is how we do in LLD.
> > > Just to be clear, you are saying that there is no need to demonstrate the issue being addressed? So the only requirement for a test is to show a change in the output?
> > I am saying that I think this test case can be reduced. For example,
> > I was able to remove 2 sections and 1 PT_LOAD and I think it still demonstrates
> > that the issue you're fixing is addressed:
> >
> > ```
> > # RUN: echo "PHDRS { \
> > # RUN: text PT_LOAD FLAGS(0x4 | 0x1); \
> > # RUN: } \
> > # RUN: SECTIONS { \
> > # RUN: .text : { *(.text) } :text \
> > # RUN: .bar : { *(.bar) } \
> > # RUN: .baz : { *(.baz) } \
> > # RUN: /DISCARD/ : { *(.comment) } :NONE \
> > # RUN: }" > %t.script
> > # RUN: ld.lld -o %t --script %t.script %t.o
> > # RUN: llvm-readelf -S -l %t | FileCheck %s dd
> >
> > .....
> >
> > .section .text,"ax"
> > ret
> >
> > .section .bar,"a"
> > .byte 0
> >
> > .section .baz,"ax"
> > .byte 0
> > ```
> Output before patch:
>
> ```
> Section to Segment mapping:
> Segment Sections...
> 00 .text
> None /DISCARD/ .bar .baz .symtab .shstrtab .strtab
> ```
>
> Output after patch:
>
> ```
> Section to Segment mapping:
> Segment Sections...
> 00 .text .bar .baz
> None /DISCARD/ .symtab .shstrtab .strtab
> ```
>
>
I have simplified as suggested, although this use case is even "stranger" than the original.
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D61186/new/
https://reviews.llvm.org/D61186
More information about the llvm-commits
mailing list