Adds support for ppc64_linux linker stubs (SecurePLT)
authorRay Chen <rchen@cs.umd.edu>
Mon, 13 Sep 2010 18:38:52 +0000 (14:38 -0400)
committerRay Chen <rchen@cs.umd.edu>
Thu, 16 Sep 2010 20:27:42 +0000 (16:27 -0400)
commit7afca634d7442074d731d6ee24dc336eaab13840
treec0f178b3cc25a33c71299f92ba24dcb407f515c2
parent1ba9ec9f26e764aa351773c106d343fd26ea2714
Adds support for ppc64_linux linker stubs (SecurePLT)

The PPC64 architecture is limited to a 24-bit branch instruction.  To
circumvent this limitation, binutils linkers generate "stub" code close
to the original branch which, using multiple instructions, jump to the
actual target.

This confuses our current parsing scheme, causing it to generate a number of
unwanted "targXXXXX" functions.  While technically correct, this prevents the
ability to do callsite instrumentation.

This commit allows our parser to correctly recognize these targets as stubs,
determine their true target, and return it to the parser as if it were a
normal call.
28 files changed:
common/h/Types.h
common/ppc64_linux/Makefile
dyninstAPI/ppc32_linux/Makefile
dyninstAPI/ppc64_linux/Makefile
dyninstAPI/src/linux-power.C
dyninstAPI/src/unix.C
dyninstAPI_RT/ppc64_linux/Makefile
instructionAPI/src/InstructionDecoder-power.h
parseAPI/h/CodeSource.h
parseAPI/ppc64_linux/Makefile [new file with mode: 0644]
parseAPI/src/IA_IAPI.C
parseAPI/src/IA_IAPI.h
parseAPI/src/IA_power.C
parseAPI/src/IA_x86.C
parseAPI/src/ParserDetails.C
parseAPI/src/SymtabCodeSource.C
parseThat/Makefile.in
symtabAPI/h/Function.h
symtabAPI/h/Symbol.h
symtabAPI/src/Aggregate.C
symtabAPI/src/Function.C
symtabAPI/src/Object-elf.C
symtabAPI/src/Object-elf.h
symtabAPI/src/Symbol.C
symtabAPI/src/Symtab-lookup.C
symtabAPI/src/Symtab.C
testsuite/make.module.tmpl
testsuite/ppc64_linux/Makefile