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:
- Move arch-x86.h from common/src to common/h
- 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
- Add
COMMON_EXPORT before class and function names
- 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.
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:
#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.hCOMMON_EXPORTbefore class and function names#include "common/src/arch-x86.h"in other files inside dyninst to#include "arch-x86.h". Current files that need to be changed are:A long term solution would be to expose codegenAPI from dyninst, so that SPI can directly use emit-* functions.