Skip to content
  1. Jun 29, 2015
    • Chandler Carruth's avatar
      [opt] Hoist the call throuh SymbolBody::getReplacement out of the inline · be6e80b0
      Chandler Carruth authored
      method to get a SymbolBody and into the callers, and kill now dead
      includes.
      
      This removes the need to have the SymbolBody definition when we're
      defining the inline method and makes it a better inline method. That was
      the only reason for a lot of header includes here. Removing these and
      using forward declarations actually uncovers a bunch of cross-header
      dependencies that I've fixed while I'm here, and will allow me to
      introduce some *important* inline code into Chunks.h that requires the
      definition of ObjectFile.
      
      No functionality changed at this point.
      
      Differential Revision: http://reviews.llvm.org/D10789
      
      llvm-svn: 240982
      be6e80b0
    • Rui Ueyama's avatar
      COFF: Handle mangled entry symbol name. · 2d5e917b
      Rui Ueyama authored
      Compilers recognize "main" function and don't mangle its name.
      But if you use a different function as a user-defined entry name,
      and if you didn't define that function with extern C, your entry
      point function name is mangled. And the linker has to be able to
      find that. This is relatively rare but can happen.
      
      llvm-svn: 240953
      2d5e917b
    • Rafael Espindola's avatar
      Update for llvm api change. · fdeb19ff
      Rafael Espindola authored
      llvm-svn: 240951
      fdeb19ff
    • Rui Ueyama's avatar
      COFF: Create an empty file for /pdb. · 0fc26d21
      Rui Ueyama authored
      Most build system depends on existence or time stamp of a file.
      This patch is to create an empty file for /pdb:<filename> option
      just to satisfy some build rules.
      
      llvm-svn: 240948
      0fc26d21
    • Rui Ueyama's avatar
      COFF: Fix /export. · 6b79ed12
      Rui Ueyama authored
      Mangled dllexported symbols may be defined in a library.
      If that's the case, we have to read a member file from the library.
      
      llvm-svn: 240947
      6b79ed12
    • Rafael Espindola's avatar
      Update for llvm change. · 4d24127a
      Rafael Espindola authored
      llvm-svn: 240940
      4d24127a
    • Rui Ueyama's avatar
      COFF: Fix logic to find default entry name or subsystem. · 45044f47
      Rui Ueyama authored
      The previous logic to find default entry name or subsystem does not
      seem correct (i.e. was not compatible with MSVC linker). Previously,
      default entry name was inferred from CRT functions and user-defined
      entry functions. Subsystem was inferred from CRT functions.
      
      Default entry name and subsystem are now inferred based on the
      following table. Note that we no longer use CRT functions to infer
      them.
      
                     Entry name           Subsystem
        main         mainCRTStartup       console
        wmain        wmainCRTStartup      console
        WinMain      WinMainCRTStartup    windows
        wWinMain     wWinMainCRTStartup   windows
      
      llvm-svn: 240922
      45044f47
    • Rui Ueyama's avatar
      COFF: Allow mangled symbols as arguments for /export. · f5313b34
      Rui Ueyama authored
      Usually dllexported symbols are defined with 'extern "C"',
      so identifying them is easy. We can just do hash table lookup
      to look up exported symbols.
      
      However, C++ non-member functions are also allowed to be exported,
      and they can be specified with unmangled name. So, if /export:foo
      is given, we need to look up not only "foo" but also its all
      mangled names. In MSVC mangling scheme, that means that we need to
      look up any symbol which starts with "?foo@@Y".
      
      In this patch, we scan the entire symbol table to search for
      a mangled symbol. The symbol table is a DenseMap, and that doesn't
      support table lookup by string prefix. This is of course very
      inefficient. But that should be probably OK because the user
      should always add 'extern "C"' to dllexported symbols.
      
      llvm-svn: 240919
      f5313b34
    • Rui Ueyama's avatar
      COFF: Fix flaky test. · 091b1a65
      Rui Ueyama authored
      This test was flaky because stdout and stderr can be mixed.
      
      llvm-svn: 240918
      091b1a65
  2. Jun 28, 2015
  3. Jun 27, 2015
  4. Jun 26, 2015
Loading