更改英特尔 PIN 中的编译器选项

Change Compiler Options in Intel PIN

如何在编译 Pin 工具时更改 g++ 选项?例如,是否可以防止警告被视为错误,或者是否可以 link 使用外部库(如 bfd)的工具?

不鼓励将 Pin 链接到预编译库。 Pin 使用不同的 libc 并且在 运行 时链接将失败或导致问题。如果你想使用外部库,要么根据 pin 的运行时编译它,要么在单独的进程中使用它。

要以非标准方式构建特定文件,请将规则添加到相关 makefile 的 Build rules 部分。

一般来说,修改 pin 的默认标志是个坏主意。它们都有一个目的。

所以 gcc 7 添加了一些额外的警告,这些警告破坏了我的一个 pin-tool。所以我想删除 -Werror 命令行参数。这不应该影响最终的二进制文件,所以它应该是绝对安全的。

您可以简单地将其从具有过滤功能的 pin 指定参数列表中删除。

这是我的makefile.rules

"build rules"部分的全部内容
MY_CXX_FLAGS:=$(filter-out -Werror, $(TOOL_CXXFLAGS))

$(OBJDIR)generate_loop_info$(OBJ_SUFFIX): generate_loop_info.cpp
    $(CXX) $(MY_CXX_FLAGS) -D OUTPUT_FILE $(COMP_OBJ)$@ $<

$(OBJDIR)generate_loop_info$(PINTOOL_SUFFIX): $(OBJDIR)generate_loop_info$(OBJ_SUFFIX)
    $(LINKER)  $(TOOL_LDFLAGS) $(LINK_EXE)$@ $< $(TOOL_LPATHS) $(TOOL_LIBS)