• simonb's avatar
    Alter how relocation packing cuts holes from libchrome.so. · 1ce08892
    simonb authored
    The current ELF file rewrite alters both offsets and addresses.
    Altering addresses affects debugging tools such as breakpad.
    
    This change leaves addresses unchanged, and instead splits a single
    LOAD segment into two, leaving a mapping hole at the point where
    the hole was created in the ELF file.  It works by repurposing the
    PT_GNU_STACK segment, unused on Android.
    
    The split into two LOAD segments no longer requires relocation
    packing to adjust relocations or the symbol table, and in particular
    means the the call frame information extracted by Dwarf DIE data
    extractors for breakpad from an unstripped (and not packed) library
    will match the stripped and packed one.
    
    BUG=385553
    
    Review URL: https://codereview.chromium.org/535943002
    
    Cr-Commit-Position: refs/heads/master@{#294413}
    1ce08892
elf_file.cc 49.1 KB