On Fri, Mar 01, 2024 at 03:59:22PM +0100, Mark Wielaard wrote: > Hi Omar, > > On Mon, 2024-02-26 at 11:32 -0800, Omar Sandoval wrote: > > Meta uses DWARF package files for our large, statically-linked C++ > > applications. Some of our largest applications have more than 4GB in > > .debug_info.dwo, but the section offsets in .debug_cu_index and > > .debug_tu_index are 32 bits; see the discussion here [1]. We > > implemented a workaround/extension for this in LLVM. Implement the > > equivalent in libdw. > > > > To test this, we need files with more than 4GB in .debug_info.dwo. I > > created these artificially by editing GCC's assembly output. They > > compress down to 6KB. I test them from run-large-elf-file.sh to take > > advantage of the existing checks for large file support. > > > > 1: https://discourse.llvm.org/t/dwarf-dwp-4gb-limit/63902. > > > > * libdw/dwarf_end.c (dwarf_package_index_free): New function. > > * tests/testfile-dwp-4-cu-index-overflow.bz2: New test file. > > * tests/testfile-dwp-4-cu-index-overflow.dwp.bz2: New test file. > > * tests/testfile-dwp-5-cu-index-overflow.bz2: New test file. > > * tests/testfile-dwp-5-cu-index-overflow.dwp.bz2: New test file. > > * tests/testfile-dwp-cu-index-overflow.source: New file. > > * tests/run-large-elf-file.sh: Check > > testfile-dwp-5-cu-index-overflow and > > testfile-dwp-4-cu-index-overflow. > > The hack is kind of horrible, but given that this doesn't really > impacts "normal" dwp files and it does work with clang/lldb, lets just > support it too.
Yup, I hate it, too. Thanks for merging this series and for the followup fixes!