[all-commits] [llvm/llvm-project] 646299: [Support] Convert BinaryStream class zoo to 64-bit...

Nico Weber via All-commits all-commits at lists.llvm.org
Thu Sep 16 16:15:59 PDT 2021


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: 646299d183ca72cbafd3a2d64629ce8cb3fcdd9d
      https://github.com/llvm/llvm-project/commit/646299d183ca72cbafd3a2d64629ce8cb3fcdd9d
  Author: Nico Weber <thakis at chromium.org>
  Date:   2021-09-16 (Thu, 16 Sep 2021)

  Changed paths:
    M llvm/include/llvm/DebugInfo/MSF/MappedBlockStream.h
    M llvm/include/llvm/Support/BinaryByteStream.h
    M llvm/include/llvm/Support/BinaryItemStream.h
    M llvm/include/llvm/Support/BinaryStream.h
    M llvm/include/llvm/Support/BinaryStreamReader.h
    M llvm/include/llvm/Support/BinaryStreamRef.h
    M llvm/include/llvm/Support/BinaryStreamWriter.h
    M llvm/lib/DebugInfo/MSF/MappedBlockStream.cpp
    M llvm/lib/DebugInfo/PDB/Native/NativeEnumInjectedSources.cpp
    M llvm/lib/Support/BinaryStreamReader.cpp
    M llvm/lib/Support/BinaryStreamRef.cpp
    M llvm/lib/Support/BinaryStreamWriter.cpp
    M llvm/tools/llvm-pdbutil/LinePrinter.cpp
    M llvm/tools/llvm-pdbutil/LinePrinter.h
    M llvm/unittests/DebugInfo/MSF/MappedBlockStreamTest.cpp
    M llvm/unittests/Support/BinaryStreamTest.cpp

  Log Message:
  -----------
  [Support] Convert BinaryStream class zoo to 64-bit offsets

Most PDB fields on disk are 32-bit but describe the file in terms of MSF
blocks, which are 4 kiB by default.

So PDB files can be a bit larger than 4 GiB, and much larger if you create them
with a block size > 4 kiB.

This is a first (necessary, but by far not not sufficient) step towards
supporting such PDB files.  Now we don't truncate in-memory file offsets (which
are in terms of bytes, not in terms of blocks).

No effective behavior change. lld-link will still error out if it were to
produce PDBs > 4 GiB.

Differential Revision: https://reviews.llvm.org/D109923




More information about the All-commits mailing list