【问题标题】:Change Compiler Options in Intel PIN更改英特尔 PIN 中的编译器选项
【发布时间】:2018-05-17 21:21:56
【问题描述】:

如何在编译 Pin 工具时更改 g++ 选项?例如,是否可以防止警告被视为错误,或者是否可以将工具与 bfd 等外部​​库链接?

【问题讨论】:

标签: compilation shared-libraries compiler-warnings intel-pin


【解决方案1】:

不鼓励将 Pin 链接到预编译库。 Pin 使用不同的 libc,链接将在运行时失败或导致问题。如果您希望使用外部库,请针对 pin 的运行时编译它或在单独的进程中使用它。

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

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

【讨论】:

  • 查看 pin 套件中的 makefile.rules 文件,了解特殊规则的样子
  • 是否应该删除$(TOOLS_ROOT)/Config/makefile.default.rules中的匹配目标,并在我的工具目录的makefile.rules文件中添加自己的规则?
  • 不,您自己的目标将覆盖默认目标。不要删除默认目标,因为这会使所有非自定义构建规则失败。
【解决方案2】:

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

您可以简单地将其从带有过滤器的引脚指定参数列表中删除。

这是我的 makefile.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)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-10-23
    • 2017-01-30
    • 2021-08-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多