On Tue, Nov 4, 2025 at 3:33 AM Siddhesh Poyarekar <[email protected]> wrote: > > On 2025-11-03 21:26, Siddhesh Poyarekar wrote: > > On i686, offsets into object archives could be 64-bit, but they're > > inconsistently treated across the lto, which may sometimes result in > > truncation of those offsets for large archives. > > > > Use int64_t/off_t consistently across all uses of archive offsets to > > make sure that they're always read and mapped correctly. > > > > gcc/lto/ChangeLog > > > > PR lto/122515 > > * lto.h (lto_section_slot): Set type of START to off_t. > > * lto-common.cc (lto_read_section_data): Adjust. > > * lto-object.cc (lto_obj_file_open): Set type of OFFSET to > > int64_t. > > > > gcc/ChangeLog > > > > PR lto/122515 > > * lto-wrapper.cc (debug_objcopy): Set type of INOFF to int64_t. > > (run_gcc): Set type of FILE_OFFSET to int64_t. > > > > gcc/testsuite/ChangeLog > > > > PR lto/122515 > > * lib/lto.exp (lto-build-archive): New procedure. > > (lto-execute-1): Use it. > > (lto-link-and-maybe-run, lto-get-options-main): Handle ar-link. > > * gcc.dg/lto/pr122515_0.c: New test case. > > * gcc.dg/lto/pr122515_1.c: New file. > > * gcc.dg/lto/pr122515_2.c: Likewise. > > * gcc.dg/lto/pr122515_3.c: Likewise. > > * gcc.dg/lto/pr122515_4.c: Likewise. > > * gcc.dg/lto/pr122515_5.c: Likewise. > > * gcc.dg/lto/pr122515_6.c: Likewise. > > * gcc.dg/lto/pr122515_7.c: Likewise. > > * gcc.dg/lto/pr122515_8.c: Likewise. > > * gcc.dg/lto/pr122515_9.c: Likewise. > > > > Signed-off-by: Siddhesh Poyarekar <[email protected]> > > --- > > > > Testing notes: > > > > - Built and tested in an i686 mock root, where the issue is reproducible > > - Built and tested config=i686, no new regressions > > - Bootstrapped on x86_64 in progress > > - Bootstrap config=ubsan in progress (not needed for this, but my > > harness does it anyway) > > I forgot to mention, I'd like to backport this all the way to gcc14 if > it's OK.
The patch is OK for trunk. Please give it some time to settle and ports to figure issues with the choice of PRI* vs. int64_t vs. off_t. If all looks green it's OK to backport as well. Thanks, Richard. > > Thanks, > Sid
