Skip to content

SPI not ready for public consumption due to the problem of using dyninst internal #4

Open
@tylergu

Description

@tylergu

SPI is using one of the dyninst internal header file.

In particular, SPI is using arch-x86.h under common/src. As this file is platform specific, dyninst is not supposed to expose this.

Right now, a custom built dyninst is used. To build this customized dyninst:

  1. Move arch-x86.h from common/src to common/h
  2. Remove the include statement of #include "common/src/Types.h" inside the new arch-x86.h, add include statement to include dyntypes.h, and manually add the missing definitions to arch-x86.h
  3. Add COMMON_EXPORT before class and function names
  4. Change the include statements #include "common/src/arch-x86.h" in other files inside dyninst to #include "arch-x86.h". Current files that need to be changed are:
    • common/src/arch-x86.C
    • common/src/arch.h
    • instructionAPI/src/Instruction.C
    • instructionAPI/src/InstructionDecoder-x86.C
    • instructionAPI/src/Operation.C

A long term solution would be to expose codegenAPI from dyninst, so that SPI can directly use emit-* functions.

Metadata

Metadata

Assignees

No one assigned

    Labels

    future improvementIssues that have a work around right now, but can be better solved in the future

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions