[DynInst_API:] [dyninst/dyninst] b60f5e: Fix tests in PIC mode (#553)


Date: Wed, 06 Mar 2019 16:06:55 -0800
From: Xiaozhu Meng <noreply@xxxxxxxxxx>
Subject: [DynInst_API:] [dyninst/dyninst] b60f5e: Fix tests in PIC mode (#553)
  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


[← Prev in Thread] Current Thread [Next in Thread→]
  • [DynInst_API:] [dyninst/dyninst] b60f5e: Fix tests in PIC mode (#553), Xiaozhu Meng <=