Skip to content
  1. Feb 08, 2017
  2. Feb 07, 2017
  3. Feb 06, 2017
  4. Feb 05, 2017
  5. Feb 03, 2017
    • Rafael Espindola's avatar
      Simplify. NFC. · 2b074553
      Rafael Espindola authored
      Now that each OutputSectionCommand maps to just one OutputSection, we
      can remove a few std::vectors.
      
      llvm-svn: 294060
      2b074553
    • Rafael Espindola's avatar
      Simplify. NFC. · cfe53dff
      Rafael Espindola authored
      llvm-svn: 294057
      cfe53dff
    • Rafael Espindola's avatar
      Don't worry about dropping SHF_MERGE. · c06f5412
      Rafael Espindola authored
      Now that it doesn't impact which sections are merged, this is not a
      problem.
      
      llvm-svn: 294054
      c06f5412
    • Rafael Espindola's avatar
      Stop propagating Entsize. · 25324313
      Rafael Espindola authored
      Now that we combine multiple synthetic merge section into one output
      section there is no point in trying to propagate a value.
      
      llvm-svn: 294048
      25324313
    • Rafael Espindola's avatar
      Handle numbers followed by ":" in linker scripts. · 4524268c
      Rafael Espindola authored
      This is a fix for Bugzilla 31813.
      
      The problem is that the tokenizer does not create a separate token for
      ":" unless there's white space before it. Changed it to always create
      a token for ":" and reworked some logic that relied on ":" being
      attached to some tokens like "global:" and "local:".
      
      llvm-svn: 294006
      4524268c
    • Rafael Espindola's avatar
      Replace MergeOutputSection with a synthetic section. · 9e9754b5
      Rafael Espindola authored
      With a synthetic merge section we can have, for example, a single
      .rodata section with stings, fixed sized constants and non merge
      constants.
      
      I can be simplified further by not setting Entsize, but that is
      probably better done is a followup patch.
      
      This should allow some cleanup in the linker script code now that
      every output section command maps to just one output section.
      
      llvm-svn: 294005
      9e9754b5
    • Bob Haarman's avatar
      add the ability to call InitTargetOptionsFromCodeGenFlags from multiple objects · 35989d6b
      Bob Haarman authored
      Summary: llvm/CodeGen/CommandFlags.h a utility function InitTargetOptionsFromCodeGenFlags which is used to set target options from flags based on the command line. The command line flags are stored in globals defined in the same file, and including the file in multiple places causes the globals to be defined multiple times, leading to linker errors. This change adds a single place in lld where these globals are defined and exports only the utility function. This makes it possible to call InitTargetOptionsFromCodeGenFlags from multiple places in lld, which a follow-up change will do.
      
      Reviewers: davide, ruiu
      
      Reviewed By: davide, ruiu
      
      Subscribers: mgorny
      
      Differential Revision: https://reviews.llvm.org/D29058
      
      llvm-svn: 293965
      35989d6b
    • Rui Ueyama's avatar
      Update comments. · 6697ec29
      Rui Ueyama authored
      llvm-svn: 293963
      6697ec29
  6. Feb 02, 2017
  7. Feb 01, 2017
    • Rui Ueyama's avatar
      Simplify createPhdrs. NFC. · db00b618
      Rui Ueyama authored
      Instead of creating multiple PHDRs in a single loop, this patch
      runs one for loop for each PHDR type. I think this improves code
      readability.
      
      llvm-svn: 293832
      db00b618
    • Petr Hosek's avatar
      [ELF] Handle multiple discontiguous .note sections · 4d65ef3b
      Petr Hosek authored
      There could be multiple discontiguous output .note sections in which
      case we need to put these into separate PT_NOTE segments rather then
      placing them into a single segment. Where possible, we could reorder
      the input sections to make sure that all .note are layed out next to
      each other to avoid creation multiple PT_NOTE segments, but even in
      that case, it's still possible to construct a discontiguous case e.g.
      by using a linker script.
      
      Differential Revision: https://reviews.llvm.org/D29364
      
      llvm-svn: 293811
      4d65ef3b
    • Rafael Espindola's avatar
      Strip file path from the -o option while creating reproduce.txt. · bba87168
      Rafael Espindola authored
      This is a fix for Bugzilla 28579.
      
      The problem is that in --reproduce links the file path in -o option is
      copied verbatim. When "lld @response.txt" link is run against the
      extracted test case, if -o contains anything other that a plain file
      name, the link will likely fail because the target directory in -o may
      not exists. Stripping the directory path will create the output file
      in the top level test directory.
      
      Patch by Dmitry Mikulin!
      
      llvm-svn: 293792
      bba87168
    • Peter Smith's avatar
      [ELF] Use SyntheticSections for Thunks · 3a52eb00
      Peter Smith authored
          
      Thunks are now implemented by redirecting the relocation to the
      symbol S, to a symbol TS in a Thunk. The Thunk will transfer control
      to S. This has the following implications:
      - All the side-effects of Thunks happen within createThunks()
      - Thunks are no longer stored in InputSections and Symbols no longer
        need to hold a pointer to a Thunk
      - The synthetic Thunk sections need to be merged into OutputSections
          
      This implementation is almost a direct conversion of the existing
      Thunks with the following exceptions:
      - Mips LA25 Thunks are placed before the InputSection that defines
        the symbol that needs a Thunk.
      - All ARM Thunks are placed at the end of the OutputSection of the
        first caller to the Thunk.
          
      Range extension Thunks are not supported yet so it is optimistically
      assumed that all Thunks can be reused.
      
      This is a recommit of r293283 with a fixed comparison predicate as
      std::merge requires a strict weak ordering.
      
      Differential revision: https://reviews.llvm.org/D29327
      
      llvm-svn: 293757
      3a52eb00
    • George Rimar's avatar
      [ELF] - Recommit r293749. Improve comment. NFC. · 69750755
      George Rimar authored
      llvm-svn: 293751
      69750755
    • George Rimar's avatar
      [ELF] - Revert r293749 · 091f9b35
      George Rimar authored
      Accidentally lost the commit title and message,
      will recommit.
      
      llvm-svn: 293750
      091f9b35
    • George Rimar's avatar
      (no commit message) · f46e54f0
      George Rimar authored
      llvm-svn: 293749
      f46e54f0
    • George Rimar's avatar
      [ELF] - Linkerscript: properly mark minus expression with non-absolute flag · cc4d3e57
      George Rimar authored
      This is alternative to D28857 which was incorrect.
      
      One of linux scripts contains:
      
      vvar_start = . - 2 * (1 << 12);
      vvar_page = vvar_start;
      vvar_vsyscall_gtod_data = vvar_page + 128;
      Previously we did not mark first expression as non-absolute,
      though it contains location counter.
      
      And LLD failed with error:
      relocation R_X86_64_PC32 cannot refer to absolute symbol
      
      This patch should fix the issue, and opens road for doing the same for other operators
      (though not clear if that is needed).
      
      Differential revision: https://reviews.llvm.org/D29332
      
      llvm-svn: 293748
      cc4d3e57
  8. Jan 31, 2017
  9. Jan 30, 2017
  10. Jan 29, 2017
Loading