bfd/pdb: Increase PDB block size to 4096
Increases PDB block size to 4096 bytes to support larger files and align with MSVC.
This patch increases the PDB block size in the BFD library from 1024 to 4096 bytes. The previous 1024-byte block size limited PDB files to approximately 64 MB due to the block map’s capacity. The new size, matching MSVC’s standard, increases the limit to about 4 GB and resolves issues with tools like llvm-pdbutil that rejected larger files.
In Details
This change in binutils' BFD library modifies the internal block size used for PDB files. The original 1024-byte blocks were insufficient for larger PDBs because the stream directory's block map, being a single block itself, could only reference a limited number of subsequent blocks. Increasing this to 4096 bytes (the size used by Microsoft's compiler) allows for significantly larger PDB files, up to approximately 4 GB, and aligns with common tooling expectations.
- PDB
- Program Database. A file format used by Microsoft for storing debugging and project-related information for Microsoft Windows applications.
- BFD
- Binary File Descriptor library. A library used by GNU software, including binutils, to abstract away differences between various object file formats.
- MSVC
- Microsoft Visual C++. A suite of C and C++ development tools from Microsoft, which includes a compiler and linker.
- stream directory
- In the PDB format, this is a data structure that maps logical block numbers to their physical locations within the PDB file.