Skip to content
  1. Dec 05, 2013
    • Rui Ueyama's avatar
      [PECOFF] Handle .lib files as if they are grouped by --{start,end}-group. · 16c025e2
      Rui Ueyama authored
      Currently we do not de-duplicate library files specified by /defaultlib option.
      As a result, the same files are added multiple times to the input graph. In
      particular, some popular files, such as kernel32.lib or oldnames.lib, are added
      more than 10 times during linking of LLD. That makes the linker slower, as it
      needs to parse the same file again and again.
      
      This patch solves the issue by de-duplicating. The same file will be added only
      once to the input graph. This patch improved the LLD linking time from 10.5
      seconds to 7.7 seconds on my 4-core Core i7 Macbook Pro.
      
      llvm-svn: 196504
      16c025e2
  2. Dec 04, 2013
    • Rui Ueyama's avatar
      [PECOFF] Ignore /functionpadmin option. · ea35c0ba
      Rui Ueyama authored
      If /functionpadmin is specified, the linker is supposed to make room at the
      beginning of each function, so that self-modifying program would easily
      hotpatch existing functions. Since I'm not sure if this feature is really used,
      I'll make LLD to ignore the option for now.
      
      llvm-svn: 196363
      ea35c0ba
  3. Dec 03, 2013
  4. Dec 02, 2013
  5. Dec 01, 2013
    • Rui Ueyama's avatar
      [PECOFF] Fix /debug option. · 8de2250a
      Rui Ueyama authored
      /DEBUG option is to make the linker to emit debug information to the resulting
      executable. It's not for enable debugging of the linker itself.
      
      llvm-svn: 196040
      8de2250a
  6. Nov 27, 2013
    • Rui Ueyama's avatar
      [PECOFF] Improve /merge option handling. · 615b200c
      Rui Ueyama authored
      /MERGE option is a bit complicated for many reasons. Firstly, it takes both
      positive and negative arguments. That means we have to have one of three
      distinctive values (set, clear or unchange) for each permission bit. In this
      patch we represent the three values using two bitmasks.
      
      Secondly, the permissions specified by the parameter is bitwise or-ed with the
      default permissions of a section. There is an exception for that rule; if one
      of READ, WRITE or EXECUTE bit is specified, unspecified bits need to be
      cleared. (So if you specify only WRITE for example, the resulting section will
      not have WRITE nor EXECUTE bits.)
      
      Lastly, multiple /merge options are allowed.
      
      llvm-svn: 195882
      615b200c
  7. Nov 26, 2013
  8. Nov 25, 2013
  9. Nov 24, 2013
  10. Nov 23, 2013
  11. Nov 22, 2013
  12. Nov 21, 2013
  13. Nov 20, 2013
  14. Nov 19, 2013
  15. Nov 15, 2013
  16. Nov 14, 2013
  17. Nov 13, 2013
  18. Nov 11, 2013
  19. Nov 06, 2013
    • Rui Ueyama's avatar
      [PECOFF] Rename getSectionAlignment -> getSectionDefaultAlignment. · 41b99dce
      Rui Ueyama authored
      These fields are for /align option. Section alignment can be set per-section
      basis with /section option too. In order to avoid name conflicts, rename the
      existing identifiers to become more specific. No functionality change.
      
      llvm-svn: 194160
      41b99dce
    • Rui Ueyama's avatar
      [PECOFF] Add /section option. · 108b3713
      Rui Ueyama authored
      /section command line option is to set/reset attributes of the Characteristics
      field in the section header. You can set non-default values with this option.
      You can make .data section executable with this, for example.
      
      This patch implements the parser of the command line option. The code to use
      the parsed values will be committed in a separate patch.
      
      llvm-svn: 194133
      108b3713
    • Rui Ueyama's avatar
      [PECOFF] Make /disallowlib an alias for /nodefaultlib. · 67b277c3
      Rui Ueyama authored
      I'm not sure if it is really an alias for /nodefaultlib, but I can say that
      they are at least similar. Making it an alias would be better than ignoring it.
      
      llvm-svn: 194131
      67b277c3
    • Rui Ueyama's avatar
      [PECOFF] Do not expose _noDefaultLibs. No functionality change. · 589276cd
      Rui Ueyama authored
      llvm-svn: 194130
      589276cd
    • Rui Ueyama's avatar
      [PECOFF] Do not add the same library to the input graph more than once. · 249c7b33
      Rui Ueyama authored
      /defaultlib options can be specified implicitly via the .drectve section, and
      it's pretty common that multiple object files add the same library, such as
      user32.lib, to the input. We shouldn't add the same library multiple times.
      
      llvm-svn: 194129
      249c7b33
    • Rui Ueyama's avatar
      [PECOFF] Ignore /disallowlib. · c13f43f4
      Rui Ueyama authored
      msvcrt.lib contains "/disallowlib" command line option in its .drectve section.
      I couldn't spot any documentation for the option. Ignore it for now so that we
      can link the library without error.
      
      llvm-svn: 194114
      c13f43f4
Loading