[all-commits] [llvm/llvm-project] 011b78: [ELF] Create readonly PT_LOAD in the presence of a...

Fangrui Song via All-commits all-commits at lists.llvm.org
Thu Mar 19 19:11:34 PDT 2020


  Branch: refs/heads/master
  Home:   https://github.com/llvm/llvm-project
  Commit: 011b785505b1f6d315a93fd0a0409576ad8d1805
      https://github.com/llvm/llvm-project/commit/011b785505b1f6d315a93fd0a0409576ad8d1805
  Author: Fangrui Song <maskray at google.com>
  Date:   2020-03-19 (Thu, 19 Mar 2020)

  Changed paths:
    M lld/ELF/ScriptParser.cpp
    M lld/test/ELF/arm-force-pi-thunk.s
    M lld/test/ELF/arm-thumb-thunk-v6m.s
    M lld/test/ELF/arm-thunk-linkerscript-dotexpr.s
    M lld/test/ELF/arm-thunk-linkerscript.s
    M lld/test/ELF/linkerscript/absolute-expr.test
    M lld/test/ELF/linkerscript/align-empty.test
    M lld/test/ELF/linkerscript/at.s
    M lld/test/ELF/linkerscript/at4.s
    M lld/test/ELF/linkerscript/extend-pt-load1.test
    M lld/test/ELF/linkerscript/extend-pt-load2.test
    M lld/test/ELF/linkerscript/extend-pt-load3.test
    M lld/test/ELF/linkerscript/loadaddr.s
    M lld/test/ELF/linkerscript/map-file2.test
    M lld/test/ELF/linkerscript/merge-header-load.s
    M lld/test/ELF/linkerscript/merge-sections-syms.s
    M lld/test/ELF/linkerscript/merge-sections.s
    M lld/test/ELF/linkerscript/non-alloc.s
    M lld/test/ELF/linkerscript/orphan-align.s
    M lld/test/ELF/linkerscript/overlapping-sections.s
    M lld/test/ELF/linkerscript/overlay.test
    M lld/test/ELF/linkerscript/repsection-symbol.s
    M lld/test/ELF/linkerscript/rosegment.test
    M lld/test/ELF/linkerscript/sections-keep.s
    M lld/test/ELF/linkerscript/sizeofheaders.s
    M lld/test/ELF/linkerscript/synthetic-symbols1.test

  Log Message:
  -----------
  [ELF] Create readonly PT_LOAD in the presence of a SECTIONS command

This essentially drops the change by r288021 (discussed with Georgii Rymar
and Peter Smith and noted down in the release note of lld 10).

GNU ld>=2.31 enables -z separate-code by default for Linux x86. By
default (in the absence of a PHDRS command) a readonly PT_LOAD is
created, which is different from its traditional behavior.

Not emulating GNU ld's traditional behavior is good for us because it
improves code consistency (we create a readonly PT_LOAD in the absence
of a SECTIONS command).

Users can add --no-rosegment to restore the previous behavior (combined
readonly and read-executable sections in a single RX PT_LOAD).




More information about the All-commits mailing list