Skip to content
  1. Nov 22, 2013
  2. Nov 21, 2013
  3. Nov 20, 2013
    • Rui Ueyama's avatar
      [PECOFF] Recognize but ignore /implib and /safeseh for now. · f8b41867
      Rui Ueyama authored
      So that the LLD won't print error message saying that it couldn't find
      /implib or /safeseh files.
      
      llvm-svn: 195276
      f8b41867
    • Rui Ueyama's avatar
      Use NativeReferenceIvarsV2 if necessary. · e05b629d
      Rui Ueyama authored
      NativeReferenceIvarsV1 cannot handle more than 65535 relocation targets
      because its field to point to the target table is of type uint16_t. Because
      of that limitation, the LLD couldn't link a file containing more than 65535
      relocations. 65535 is not a big number - the LLD couldn't even link itself
      with V1.
      
      This patch solves the issue by adding NativeReferenceIvarsV2 support. The
      new structure has more bits for the target table, so it can handle a large
      number of relocatinos.
      
      V2 structure is larger than V1. In order to prevent file bloating, V2 format
      is used only when the resulting file cannot be represented in V1 format. The
      writer and the reader support both V1 and V2 formats.
      
      Differential Revision: http://llvm-reviews.chandlerc.com/D2217
      
      llvm-svn: 195270
      e05b629d
    • Rui Ueyama's avatar
      Fix Weak External symbol handling. · 70f11d75
      Rui Ueyama authored
      The fallback atom was used only when it's searching for a symbol in a library;
      if an undefined symbol was not found in a library, the LLD looked for its
      fallback symbol in the library.
      
      Although it worked in most cases, because symbols with fallbacks usually occur
      only in OLDNAMES.LIB (a standard library), that behavior was incompatible with
      link.exe. This patch fixes the issue so that the semantics is the same as
      MSVC's link.exe
      
      The new (and correct, I believe) behavior is this:
      
       - If there's no definition for an undefined atom, replace the undefined atom
         with its fallback and then proceed (e.g. look in the next file or stop
         linking as usual.)
      
      Weak External symbols are underspecified in the Microsoft PE/COFF spec. However,
      as long as I observed the behavior of link.exe, this seems to be what we want
      for compatibility.
      
      Differential Revision: http://llvm-reviews.chandlerc.com/D2162
      
      llvm-svn: 195269
      70f11d75
    • Rui Ueyama's avatar
      Do not inline large member functions. No functionality change. · 7b3c42a5
      Rui Ueyama authored
      llvm-svn: 195169
      7b3c42a5
  4. Nov 19, 2013
  5. Nov 18, 2013
    • Rui Ueyama's avatar
      Simplify. No functionality change. · 69c71cc8
      Rui Ueyama authored
      llvm-svn: 195051
      69c71cc8
    • Rui Ueyama's avatar
      Replace unnecessary vector copy with reference. · 11d1f187
      Rui Ueyama authored
      llvm-svn: 194988
      11d1f187
    • Rui Ueyama's avatar
      Add an assert for NativeReferenceIvarsV1. · 2bafe735
      Rui Ueyama authored
      The maximum number of references the file with NativeReferenceIvarsV1 can
      contain is 65534. If a file larger than that is converted to Native format,
      the conversion will fail without any error message. This caused a subtle bug
      that the LLD would produce a broken executable only when input files contain
      too many references.
      
      This issue exists since the RoundTripNativeTest is introduced in r193585. Since
      then, it seems that nobody have linked any program having more than 65534
      relocations with the LLD. Otherwise we would have found it earlier.
      
      llvm-svn: 194987
      2bafe735
  6. Nov 17, 2013
  7. Nov 16, 2013
  8. Nov 15, 2013
Loading