Skip to content
  1. Dec 12, 2013
    • Rui Ueyama's avatar
      [PECOFF] Add /dllexport option. · 4cf5a161
      Rui Ueyama authored
      /DLLEXPORT is a command line option to export a symbol. __declspec(dllexport)
      uses that to make the linker to export DLLExport'ed functions, by adding the
      option to .drectve section.
      
      This patch implements the parser of the command line option.
      
      llvm-svn: 197122
      4cf5a161
  2. Dec 09, 2013
    • Rui Ueyama's avatar
      [PECOFF] Add /alternatename option parser. · 34d6e9b3
      Rui Ueyama authored
      /ALTERNATENAME is a rarely-used, undocumented command line option that is
      needed to link LLD for release build. It seems that the option is for defining
      an weak alias; /alternatename:foo=bar defines weak symbol "foo" for "bar".
      If "foo" is defined in an input file, it'll be linked normally and the command
      line option will have no effect. If it's not defined, "foo" will be handled
      as an alias for "bar".
      
      This patch implements the parser for the option. The actual weak alias handling
      will be implemented in a separate patch.
      
      llvm-svn: 196743
      34d6e9b3
  3. 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
  4. 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
  5. Dec 03, 2013
  6. Dec 02, 2013
  7. 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
  8. 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
  9. Nov 26, 2013
  10. Nov 25, 2013
  11. Nov 24, 2013
  12. Nov 23, 2013
  13. Nov 22, 2013
  14. Nov 21, 2013
  15. Nov 20, 2013
  16. Nov 19, 2013
  17. Nov 15, 2013
  18. Nov 14, 2013
  19. Nov 13, 2013
  20. Nov 11, 2013
  21. Nov 06, 2013
Loading