Skip to content
  1. Aug 10, 2017
  2. Aug 09, 2017
    • Rui Ueyama's avatar
      Add --icf=none option. · ae704a54
      Rui Ueyama authored
      --icf=none negates --icf=all.
      
      llvm-svn: 310526
      ae704a54
    • Zachary Turner's avatar
      [PDB] Fix an issue writing the publics stream. · 5448dabb
      Zachary Turner authored
      In the refactor to merge the publics and globals stream, a bug
      was introduced that wrote the wrong value for one of the fields
      of the PublicsStreamHeader.  This caused debugging in WinDbg
      to break.
      
      We had no way of dumping any of these fields, so in addition to
      fixing the bug I've added dumping support for them along with a
      test that verifies the correct value is written.
      
      llvm-svn: 310439
      5448dabb
    • Zachary Turner's avatar
      [PDB] Merge Global and Publics Builders. · 946204c8
      Zachary Turner authored
      The publics stream and globals stream are very similar. They both
      contain a list of hash buckets that refer into a single shared stream,
      the symbol record stream. Because of the need for each builder to manage
      both an independent hash stream as well as a single shared record
      stream, making the two builders be independent entities is not the right
      design. This patch merges them into a single class, of which only a
      single instance is needed to create all 3 streams.  PublicsStreamBuilder
      and GlobalsStreamBuilder are now merged into the single GSIStreamBuilder
      class, which writes all 3 streams at once.
      
      Note that this patch does not contain any functionality change. So we're
      still not yet writing any records to the globals stream. All we're doing
      is making it so that when we do start writing records to the globals,
      this refactor won't have to be part of that patch.
      
      Differential Revision: https://reviews.llvm.org/D36489
      
      llvm-svn: 310438
      946204c8
  3. Aug 08, 2017
    • Zachary Turner's avatar
      [PDB] Fix linking of function symbols and local variables. · 59e3ae82
      Zachary Turner authored
      The compiler outputs PROC32_ID symbols into the object files
      for functions, and these symbols have an embedded type index
      which, when copied to the PDB, refer to the IPI stream.  However,
      the symbols themselves are also converted into regular symbols
      (e.g. S_GPROC32_ID -> S_GPROC32), and type indices in the regular
      symbol records refer to the TPI stream.  So this patch applies
      two fixes to function records.
        1. It converts ID symbols to the proper non-ID record type.
        2. After remapping the type index from the object file's index
           space to the PDB file/IPI stream's index space, it then
           remaps that index to the TPI stream's index space by.
      
      Besides functions, during the remapping process we were also
      discarding symbol record types which we did not recognize.
      In particular, we were discarding S_BPREL32 records, which is
      what MSVC uses to describe local variables on the stack.  So
      this patch fixes that as well by copying them to the PDB.
      
      Differential Revision: https://reviews.llvm.org/D36426
      
      llvm-svn: 310394
      59e3ae82
  4. Aug 07, 2017
  5. Aug 05, 2017
  6. Aug 04, 2017
  7. Aug 03, 2017
  8. Aug 02, 2017
    • Rafael Espindola's avatar
      Use more consistent names · 3a8e4d98
      Rafael Espindola authored
      Reviewing another change I noticed that we use "getSymbols" to mean
      different things in different files. Depending on the file it can
      return
      
      ArrayRef<StringRef>
      ArrayRef<SymbolBody*>
      ArrayRef<Symbol*>
      ArrayRef<Elf_Sym>
      
      With this change it always returns an ArrayRef<SymbolBody*>. The other
      functions are renamed getELFsyms() and getSymbolNames().
      
      Note that we cannot return ArrayRef<Symbol*> instead of
      ArreyRef<SymbolBody*> because local symbols have a SymbolBody but not
      a Symbol.
      
      llvm-svn: 309840
      3a8e4d98
    • Petr Hosek's avatar
      [ELF] When the code segment is the last, align it to the page boundary · edd6c358
      Petr Hosek authored
      When the data segment is the last segment, it is correct to leave
      it unaligned. However, when the code segment is the last segment,
      it should be aligned to the page boundary to avoid loading the
      non-segment parts of the ELF file at the end of the file.
      
      Differential Revision: https://reviews.llvm.org/D33630
      
      llvm-svn: 309829
      edd6c358
    • George Rimar's avatar
      [ELF] - Recommit r309252 "[ELF] - Fix missing relocation when linking... · b0d9fbee
      George Rimar authored
      [ELF] - Recommit r309252 "[ELF] - Fix missing relocation when linking executable with --unresolved-symbols=ignore-all"
      
      With fix for undefined weak symbols in executable.
      
      Original commit message:
      This is PR32112. Previously when we linked executable with 
      --unresolved-symbols=ignore-all and undefined symbols, like:
      
      _start:
      callq und@PLT
      
      we did not create relocations, though it looks in that case
      we should delegate handling of such symbols to runtime linker,
      hence should emit them. Patch fixes that.
      
      Differential revision: https://reviews.llvm.org/D35724
      
      llvm-svn: 309796
      b0d9fbee
  9. Aug 01, 2017
  10. Jul 31, 2017
  11. Jul 28, 2017
Loading