Skip to content
  1. 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
  2. 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
  3. 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
    • Rui Ueyama's avatar
      Refactor tests by using short identifiers. · ccb8f168
      Rui Ueyama authored
      This patch is to improve the readability of the tests before making a change
      to /merge option.
      
      llvm-svn: 195863
      ccb8f168
    • Rui Ueyama's avatar
      [PECOFF] Rename getFinalSectionName -> getOutputSectionName. · 951dd1d4
      Rui Ueyama authored
      llvm-svn: 195855
      951dd1d4
  4. Nov 26, 2013
  5. Nov 22, 2013
  6. Nov 21, 2013
  7. Nov 20, 2013
  8. Nov 19, 2013
  9. 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 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
  10. Oct 26, 2013
    • Rui Ueyama's avatar
      [PECOFF] Parse /merge command line option. · 863931c9
      Rui Ueyama authored
      /merge:<from>=<to> option makes the linker to combine "from" section to "to"
      section. This patch is to parse the option. The actual feature will be
      implemented in a subsequent patch.
      
      llvm-svn: 193454
      863931c9
  11. Oct 22, 2013
  12. Oct 16, 2013
    • Rui Ueyama's avatar
      Make undefines check into an assertion. · f3630fe4
      Rui Ueyama authored
      Dead-strip root symbols can be undefined atoms, but should not really be
      nonexistent, because dead-strip root symbols should be added to initial
      undefined atoms at startup. Whenever you look up its name in the symbol
      table, some type of atom will always exist.
      
      llvm-svn: 192831
      f3630fe4
  13. Sep 27, 2013
  14. Sep 25, 2013
  15. Sep 24, 2013
    • Rui Ueyama's avatar
      [PECOFF] Ignore /verbose and /wx (warnings as errors) options. · a32150c3
      Rui Ueyama authored
      llvm-svn: 191317
      a32150c3
    • Rui Ueyama's avatar
      [PECOFF] Add /swaprun:{cd,net} options. · 98f269f9
      Rui Ueyama authored
      llvm-svn: 191276
      98f269f9
    • Rui Ueyama's avatar
      [PECOFF] Ignore /pdbaltpath option. · 0e08d775
      Rui Ueyama authored
      /PDBALTPATH:<path> is an option to embed a different path for the PDB file to
      the binary than the actual PDB file location. Because we don't support PDB
      file, we'll just ignore the option for now.
      
      llvm-svn: 191273
      0e08d775
    • Rui Ueyama's avatar
      [PECOFF] Ignore /pdb option. · c583d17a
      Rui Ueyama authored
      llvm-svn: 191269
      c583d17a
    • Rui Ueyama's avatar
      [PECOFF] Ignore /debug option. · 5ee413ed
      Rui Ueyama authored
      llvm-svn: 191268
      5ee413ed
    • Rui Ueyama's avatar
      Try to fix test failure on buildbot. · 12c0d773
      Rui Ueyama authored
      llvm-svn: 191259
      12c0d773
    • Rui Ueyama's avatar
      [PECOFF] Add /nodefaultlib command line option. · f062c84a
      Rui Ueyama authored
      llvm-svn: 191254
      f062c84a
    • Rui Ueyama's avatar
      [PECOFF] Do not allow space to separate command line option and its value. · 456740c7
      Rui Ueyama authored
      We used to support both Windows and Unix style command line options. In Windows
      style, an option and its value are separated by ":" (colon). In Unix, separator
      is a space. Accepting both styles were convenient, but we can no longer allow
      Unix style because I found that can be ambiguous.
      
      For example, /nodefaultlib option takes an optional argument. In Windows style
      it's going to be something like "/nodefaultlib:foo". There's no ambiguity what
      "foo" means. However, if the option is "/nodefaultlib foo", "foo" can be
      interpreted either an optional argument for "/nodefaultlib" or an input file
      "foo.obj". We should just stop accepting the non-standard command line style.
      
      llvm-svn: 191247
      456740c7
    • Rui Ueyama's avatar
      [PECOFF] Ignore /delay and /delayload options. · 5c59ab7f
      Rui Ueyama authored
      These options are to enable DLL delay loading. If enabled, DLL is loaded
      at run time by a helper routine when a function in the DLL is actually called
      for the first time, instead of making the Windows loader to load all DLLs at
      startup time. This should shorten startup delay if an executable have many
      imported symbols.
      
      The linker needs to create a "delayed import table" and link delayimp.lib in
      which helper functions are defined to support the feature.
      
      For now, we just ignore the options, so that the linker does not complain when
      it sees these options. We want to support them in the future.
      
      llvm-svn: 191232
      5c59ab7f
  16. Sep 23, 2013
  17. Sep 20, 2013
    • Rui Ueyama's avatar
      [PECOFF] Ignore /incremental option. · 50893942
      Rui Ueyama authored
      /incremental is an option to enable incremental linking. We will eventually
      want to implement the feature for better performance, but in the meantime,
      we want to just ignore the option so that the linker does not output unknown
      option error when it sees /incremental option.
      
      llvm-svn: 191063
      50893942
Loading