Branch: refs/heads/master
Home: https://github.com/dyninst/dyninst
Commit: b60f5eb067108847dda6f5d405bdfd30a8adc53d
https://github.com/dyninst/dyninst/commit/b60f5eb067108847dda6f5d405bdfd30a8adc53d
Author: Xiaozhu Meng <mxz297@xxxxxxxxx>
Date: 2019-03-06 (Wed, 06 Mar 2019)
Changed paths:
M dyninstAPI/src/BPatch_snippet.C
M dyninstAPI/src/Relocation/Widgets/CFWidget-ppc.C
M dyninstAPI/src/Relocation/Widgets/PCWidget.C
M dyninstAPI/src/dynProcess.h
M dyninstAPI/src/inst-power.C
M dyninstAPI/src/mapped_object.C
M dyninstAPI/src/pdwinnt.C
M dyninstAPI/src/unix.C
M dyninstAPI/src/vxworks.C
M symtabAPI/src/emitElfStatic-x86.C
Log Message:
-----------
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
|