linux/tools
Cody P Schafer 3aafe5ae08 perf symbols: Use both runtime and debug images
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: Cody 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.com
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
2012-08-13 14:46:55 -03:00
..
firewire
hv Tools: hv: verify origin of netlink connector message 2012-06-10 00:29:46 +09:00
include/tools tools/include: Add byteshift headers for endian access 2012-02-28 10:22:51 -08:00
lguest lguest: move the lguest tool to the tools directory 2012-01-12 15:44:47 +10:30
lib/traceevent tools lib traceevent: Fix cast from pointer to integer for 32 bit 2012-08-08 12:40:44 -03:00
nfsd NFSD: Added fault injection script 2011-11-07 21:10:47 -05:00
perf perf symbols: Use both runtime and debug images 2012-08-13 14:46:55 -03:00
power tools/power: turbostat: fix large c1% issue 2012-07-19 22:26:33 -04:00
scripts perf: Build libtraceevent.a 2012-04-25 13:01:40 +02:00
testing fault-injection: fix failcmd.sh warning 2012-07-31 18:42:38 -07:00
usb testusb: expose looping forever option "l" to user 2012-06-13 16:15:03 -07:00
virtio virtio/tools: add delayed interupt mode 2012-05-02 18:22:14 +03:00
vm mm: Fix signal SIGFPE in slabinfo.c. 2012-07-02 23:11:14 +03:00
Makefile tools: Connect to the kernel build system 2012-04-11 15:00:17 -03:00