• Cody P Schafer's avatar
    perf symbols: Use both runtime and debug images · 3aafe5ae
    Cody P Schafer authored
    We keep both a 'runtime' elf image as well as a 'debug' elf image around
    and generate symbols by looking at both of these.
    
    This eliminates the need for the want_symtab/goto restart mechanism
    combined with iterating over and reopening the elf images a second time.
    
    Also give dso__synthsize_plt_symbols() the runtime image (which has
    dynsyms) instead of the symbol image (which may only have a symtab and
    no dynsyms).
    
    Previously if a debug image was found all runtime images were ignored.
    
    This fixes 2 issues:
    
     - Symbol resolution to failure on PowerPC systems with debug symbols
       installed, as the debug images lack a '.opd' section which contains
       function descriptors.
    
     - On all archs, plt synthesis failed when a debug image was loaded and
       that debug image lacks a dynsym section while a runtime image has a
       dynsym section.
    
    Assumptions:
    
     - If a .opd section exists, it is contained in the highest priority
       image with a dynsym section.
    
     - This generally implies that the debug image lacks a dynsym section
       (ie: it is marked as NO_BITS).
    Signed-off-by: default avatarCody P Schafer <cody@linux.vnet.ibm.com>
    Cc: David Hansen <dave@linux.vnet.ibm.com>
    Cc: Ingo Molnar <mingo@redhat.com>
    Cc: Matt Hellsley <matthltc@us.ibm.com>
    Cc: Namhyung Kim <namhyung@kernel.org>
    Cc: Paul Mackerras <paulus@samba.org>
    Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
    Cc: Sukadev Bhattiprolu <sukadev@linux.vnet.ibm.com>
    Link: http://lkml.kernel.org/r/1344637382-22789-17-git-send-email-cody@linux.vnet.ibm.comSigned-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
    3aafe5ae
symbol-elf.c 18.6 KB