[PATCH] libelf: Fix some 32bit offset/size issues that break updating 4G+ files.

Mark Wielaard mark@klomp.org
Wed Jul 3 14:53:00 GMT 2019


Hi,

On Tue, 2019-07-02 at 16:21 -0700, Lei Zhang wrote:
> On Tue, Jul 2, 2019 at 4:15 PM Mark Wielaard <mark@klomp.org> wrote:
> > I'll try to create a testcase to replicate the issue to see if I can
> > debug where the offset value gets truncated.
> 
> Sounds good to me.
> 
> > Or do you happen to have the 5.4 GB binary named "chrome" create before
> > splitting still around somewhere where I could download it?
> 
> I still have the file here. I'll send you a link in a separate email.

Thanks for the file, it is indeed pretty big :)
But I am not able to replicate the issue with elfutils from git trunk.
commit 31c8b3f098b0654db8f573b2a15d5b6d07d4d3b0

If I do:
$ export LD_LIBRARY_PATH=/opt/local/install/elfutils/lib
$ /opt/local/install/elfutils/bin/eu-strip \
  -o chrome_elfutil_test.stripped \
  -f chrome_elfutil_test.debug chrome_elfutil_test

then the sections seem to come out correctly:

 36 .debug_info   bb8fa075  0000000000000000  0000000000000000  00000400  2**0
                  CONTENTS, READONLY, DEBUGGING
 37 .debug_abbrev 02e97444  0000000000000000  0000000000000000  bb8fa475  2**0
                  CONTENTS, READONLY, DEBUGGING
 38 .debug_aranges 00000540  0000000000000000  0000000000000000  be7918b9  2**0
                  CONTENTS, READONLY, DEBUGGING
 39 .debug_line   0a680122  0000000000000000  0000000000000000  be791df9  2**0
                  CONTENTS, READONLY, DEBUGGING
 40 .debug_loc    22f253c9  0000000000000000  0000000000000000  c8e11f1b  2**0
                  CONTENTS, READONLY, DEBUGGING
 41 .debug_str    3176443a  0000000000000000  0000000000000000  ebd372e4  2**0
                  CONTENTS, READONLY, DEBUGGING
 42 .debug_ranges 053cdc00  0000000000000000  0000000000000000  11d49b71e  2**0
                  CONTENTS, READONLY, DEBUGGING
 43 .debug_macinfo 000064fb  0000000000000000  0000000000000000  12286931e  2**0
                  CONTENTS, READONLY, DEBUGGING
 44 .debug_frame  011dfe98  0000000000000000  0000000000000000  12286f820  2**3
                  CONTENTS, READONLY, DEBUGGING
 45 .gdb_index    24d27f19  0000000000000000  0000000000000000  123a4f6b8  2**0
                  CONTENTS, READONLY, DEBUGGING

And both the produced chrome_elfutil_test.stripped and
chrome_elfutil_test.debug files seem valid ELF files.

But you might not be using the upstream build system, and you might use
different flags to call it. So, two questions. How did you build your
eu-strip binary? And how do you invoke it?

Thanks,

Mark



More information about the Elfutils-devel mailing list