[PATCH] D76410: [ELF] Don't combine SHF_LINK_ORDER sections linking different output sections
Peter Collingbourne via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Fri Mar 20 17:23:00 PDT 2020
pcc requested changes to this revision.
pcc added inline comments.
This revision now requires changes to proceed.
================
Comment at: lld/test/ELF/partition-move-to-main-startstop.s:18
+// CHECK: part1
// CHECK: no_startstop
----------------
MaskRay wrote:
> grimar wrote:
> > I think this kind of breaks the logic of this test?
> >
> > See the output before this patch:
> >
> > ```
> > [ 4] .dynstr STRTAB 00000000002002b0 000002b0
> > 0000000000000039 0000000000000000 A 0 0 1
> > [ 5] has_startstop PROGBITS 00000000002002e9 000002e9
> > 0000000000000010 0000000000000000 AL 8 0 1
> > [ 6] no_startstop PROGBITS 00000000002002f9 000002f9
> > 0000000000000008 0000000000000000 AL 8 0 1
> > ...
> > [10] part1 LOOS+0xfff4c06 0000000000203000 00001000
> > 0000000000000040 0000000000000000 A 0 0 1
> >
> > Symbol table '.symtab' contains 6 entries:
> > Num: Value Size Type Bind Vis Ndx Name
> > ...
> > 2: 00000000002002e9 0 NOTYPE GLOBAL PROTECTED 5 __start_has_startstop
> > 3: 00000000002002f9 0 NOTYPE GLOBAL PROTECTED 5 __stop_has_startstop
> > ```
> >
> > And after:
> >
> >
> > ```
> > [ 5] has_startstop PROGBITS 00000000002002e9 000002e9
> > 0000000000000008 0000000000000000 AL 9 0 1
> > [ 6] has_startstop PROGBITS 00000000002002f1 000002f1
> > 0000000000000008 0000000000000000 AL 18 0 1
> > [ 7] no_startstop PROGBITS 00000000002002f9 000002f9
> > 0000000000000008 0000000000000000 AL 9 0 1
> > [ 8] .rodata PROGBITS 0000000000200304 00000304
> > 000000000000000c 0000000000000000 A 0 0 4
> > ...
> > [11] part1 LOOS+0xfff4c06 0000000000203000 00001000
> > 0000000000000040 0000000000000000 A 0 0 1
> >
> > Symbol table '.symtab' contains 6 entries:
> > Num: Value Size Type Bind Vis Ndx Name
> > ...
> > 2: 00000000002002e9 0 NOTYPE GLOBAL PROTECTED 5 __start_has_startstop
> > 3: 00000000002002f1 0 NOTYPE GLOBAL PROTECTED 5 __stop_has_startstop
> > ```
> >
> > `__stop_has_startstop` points to the begining of the second `has_startstop` section now.
> This demonstrates that `__start_`/`__stop_` symbols should not be used with SHF_LINK_ORDER sections.
> Added a comment.
`__start_`/`__stop_` are absolutely being used with SHF_LINK_ORDER sections right now. See e.g. `hwasan_globals` which may be linked to `.data`/`.data.rel.ro`/`.rodata`/`.bss`. We need a solution for such use cases before making this change, if it is to be made at all.
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D76410/new/
https://reviews.llvm.org/D76410
More information about the llvm-commits
mailing list