[PATCH] D67482: [ELF][X86] Allow PT_LOAD to have overlapping p_offset ranges on EM_X86_64

Fangrui Song via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Thu Sep 12 01:43:08 PDT 2019


MaskRay created this revision.
MaskRay added reviewers: grimar, peter.smith, ruiu.
Herald added subscribers: llvm-commits, jfb, arphaman, arichardson, emaste.
Herald added a reviewer: espindola.
Herald added a project: LLVM.
MaskRay added a comment.

This patch is the (awful) reason I posted D67325 <https://reviews.llvm.org/D67325> before this one. 🤔

The dependency order D67324 <https://reviews.llvm.org/D67324> (omagic & nmagic) -> D67325 <https://reviews.llvm.org/D67325> (image base) -> D67482 <https://reviews.llvm.org/D67482> (EM_X86_64) -> D67481 <https://reviews.llvm.org/D67481> (-z separate-segments) will cause the least number of redundantly updated tests. Say, I do D67482 <https://reviews.llvm.org/D67482> before D67325 <https://reviews.llvm.org/D67325>, the following tests will be updated redundantly.

  Failing Tests (6):                                                                                              
      lld :: ELF/avoid-empty-program-headers.s                                                                    
      lld :: ELF/common-page.s                                                                                    
      lld :: ELF/gnu-ifunc-empty.s                                                                               
      lld :: ELF/image-base.s                                                                                    
      lld :: ELF/linkerscript/page-size.s              
      lld :: ELF/linkerscript/symbol-reserved.s
  ``` 🤔


Port the D64906 <https://reviews.llvm.org/D64906> technique to EM_X86_64.


Repository:
  rLLD LLVM Linker

https://reviews.llvm.org/D67482

Files:
  ELF/Writer.cpp
  test/ELF/Inputs/copy-rel-abs.s
  test/ELF/Inputs/copy-rel-tls.s
  test/ELF/abs-hidden.s
  test/ELF/apply-dynamic-relocs.s
  test/ELF/avoid-empty-program-headers.s
  test/ELF/basic.s
  test/ELF/build-id.s
  test/ELF/cgprofile-bad-clusters.s
  test/ELF/cgprofile-icf.s
  test/ELF/cgprofile-obj.s
  test/ELF/cgprofile-reproduce.s
  test/ELF/cgprofile-txt.s
  test/ELF/cgprofile-txt2.s
  test/ELF/combreloc.s
  test/ELF/comdat.s
  test/ELF/common-page.s
  test/ELF/common.s
  test/ELF/copy-rel-large.s
  test/ELF/copy-rel-tls.s
  test/ELF/defsym-reserved-syms.s
  test/ELF/edata-etext.s
  test/ELF/edata-no-bss.s
  test/ELF/eh-align-cie.s
  test/ELF/eh-frame-hdr-abs-fde.s
  test/ELF/eh-frame-hdr-augmentation.s
  test/ELF/eh-frame-hdr-icf-fde.s
  test/ELF/eh-frame-hdr.s
  test/ELF/eh-frame-merge.s
  test/ELF/eh-frame-pcrel-overflow.s
  test/ELF/eh-frame-value-format7.s
  test/ELF/eh-frame-value-format8.s
  test/ELF/ehframe-relocation.s
  test/ELF/emit-relocs-icf1.s
  test/ELF/emit-relocs-mergeable.s
  test/ELF/emit-relocs.s
  test/ELF/end-dso-defined.s
  test/ELF/end-update.s
  test/ELF/end.s
  test/ELF/entry.s
  test/ELF/fill-trap.s
  test/ELF/gdb-index-base-addr.s
  test/ELF/gdb-index-dwarf5-low-high.s
  test/ELF/gdb-index-gc-sections.s
  test/ELF/gdb-index-ranges-discarded.s
  test/ELF/gdb-index-ranges.s
  test/ELF/gdb-index-rng-lists.s
  test/ELF/gdb-index.s
  test/ELF/global_offset_table_shared.s
  test/ELF/gnu-ifunc-canon.s
  test/ELF/gnu-ifunc-dyntags.s
  test/ELF/gnu-ifunc-noplt.s
  test/ELF/gnu-ifunc-plt.s
  test/ELF/gnu-ifunc-shared.s
  test/ELF/gnu-ifunc.s
  test/ELF/got.s
  test/ELF/image-base.s
  test/ELF/just-symbols.s
  test/ELF/linkerscript/absolute.s
  test/ELF/linkerscript/page-size.s
  test/ELF/linkerscript/symbol-reserved.s
  test/ELF/linkerscript/synthetic-symbols3.test
  test/ELF/local-got-pie.s
  test/ELF/local-got-shared.s
  test/ELF/local-got.s
  test/ELF/map-file.s
  test/ELF/no-inhibit-exec.s
  test/ELF/partition-notes.s
  test/ELF/partition-pack-dyn-relocs.s
  test/ELF/partition-synthetic-sections.s
  test/ELF/pre_init_fini_array_missing.s
  test/ELF/rel-offset.s
  test/ELF/relative-dynamic-reloc-pie.s
  test/ELF/relocatable.s
  test/ELF/relocation-common.s
  test/ELF/relocation-copy-align-common.s
  test/ELF/relocation-copy-flags.s
  test/ELF/relocation-copy-relro.s
  test/ELF/relocation-copy.s
  test/ELF/relocation-non-alloc.s
  test/ELF/relocation-undefined-weak.s
  test/ELF/relocation.s
  test/ELF/relro-bss.s
  test/ELF/relro-tls.s
  test/ELF/segments.s
  test/ELF/startstop-shared2.s
  test/ELF/startstop.s
  test/ELF/symbol-ordering-file-cgprofile-conflicts.s
  test/ELF/symbol-ordering-file-icf.s
  test/ELF/symbols.s
  test/ELF/tls-offset.s
  test/ELF/tls.s
  test/ELF/ttext-tdata-tbss.s
  test/ELF/undef-with-plt-addr.s
  test/ELF/verdef-defaultver.s
  test/ELF/x86-64-got-plt-header.s
  test/ELF/x86-64-gotpc-relax-nopic.s
  test/ELF/x86-64-gotpc-relax-und-dso.s
  test/ELF/x86-64-gotpc-relax.s
  test/ELF/x86-64-plt-high-addr.s
  test/ELF/x86-64-plt.s
  test/ELF/x86-64-relax-got-abs.s
  test/ELF/x86-64-reloc-error2.s
  test/ELF/x86-64-reloc-gotoff64.s
  test/ELF/x86-64-reloc-gotpc64.s
  test/ELF/x86-64-reloc-range.s
  test/ELF/x86-64-reloc-size.s
  test/ELF/x86-64-retpoline-znow-static-iplt.s
  test/ELF/x86-64-retpoline-znow.s
  test/ELF/x86-64-retpoline.s
  test/ELF/x86-64-tls-dynamic.s
  test/ELF/x86-64-tls-gd-local.s
  test/ELF/x86-64-tls-gdie.s
  test/ELF/x86-64-tls-ie-local.s
  test/ELF/x86-64-tls-ie.s
  test/ELF/x86-64-tls-opt-noplt.s
  test/ELF/x86-64-tlsdesc-gd.s
  test/ELF/x86-64-tlsdesc-ld.s
  test/ELF/ztext.s

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D67482.219855.patch
Type: text/x-patch
Size: 153272 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20190912/2adfc0d8/attachment.bin>


More information about the llvm-commits mailing list