Fix tests in PIC mode (#553)
authorXiaozhu Meng <mxz297@gmail.com>
Thu, 7 Mar 2019 00:06:54 +0000 (18:06 -0600)
committerTim Haines <thaines.astro@gmail.com>
Thu, 7 Mar 2019 00:06:54 +0000 (18:06 -0600)
commitb60f5eb067108847dda6f5d405bdfd30a8adc53d
tree821b4a0b96067ed05997c15fe726bdfcb77678c3
parent052b51da4040c4f1b7b5d91e23d437b5c5af1bd7
Fix tests in PIC mode (#553)

* In dynamic instrumentation for PIE, finding variables's locations needs to add the load base of the PIE.
    Get rid of wrong, special handling of finding the load base of PIE.
* On x86-64, when emulating call with push & jmp, the push needs to push all 64-bit of the callee addresses.
* A few fixes for PIC instrumentation on power
    1. Fix PC-relative load and store of variables
    2. The preamble of PIE uses R12 to set up R2. However,
    when generating intra-module calls, Dyninst does not
    set up R12 and will call the global entry, causing R2 to
    be incorrect. Since there is no need to change R2 for
    intra-module calls, we should call the local entry
* Fix function call replacment on power for PIC.
    Need to call local entry when doing an intra-module call
* Handle relocation type R_X86_64_REX_GOTPCRELX for binary rewriting of statically linked binaries on x86-64
* Fix endianess issues for generating _init and _fini functions on power
dyninstAPI/src/BPatch_snippet.C
dyninstAPI/src/Relocation/Widgets/CFWidget-ppc.C
dyninstAPI/src/Relocation/Widgets/PCWidget.C
dyninstAPI/src/dynProcess.h
dyninstAPI/src/inst-power.C
dyninstAPI/src/mapped_object.C
dyninstAPI/src/pdwinnt.C
dyninstAPI/src/unix.C
dyninstAPI/src/vxworks.C
symtabAPI/src/emitElfStatic-x86.C