将DataFlowSanitizer链接到LLVM IR时出现链接器错误

时间:2017-06-15 16:20:08

标签: llvm llvm-clang llvm-ir

我在Ubuntu 16.04.2,64位上使用预构建的LLVM / Clang 3.8.0二进制文件。我试图将最小程序提升到LLVM IR,然后将IR链接到DataFlowSanitizer库以生成可执行代码。在第二步中,该进程会抛出一堆链接器错误。

#include <sanitizer/dfsan_interface.h>
#include <assert.h>

int main(void) {
  int i = 1;

  dfsan_label i_label = dfsan_create_label("i", 0);
  dfsan_set_label(i_label, &i, sizeof(i));

  return 0;
}
  

clang -c -emit-llvm -fsanitize = dataflow test2.c -o test2.bc

     

clang -fsanitize = dataflow test2.bc -o test2

     

/usr/lib/gcc/x86_64-linux-gnu/5.4.0 /../../../ x86_64的-Linux的GNU / Scrt1.o:   在功能_start':(.text+0x20): undefined reference to main&#39;
  /tmp/test2-c642ef.o:在函数dfs$main':
test2.bc:(.text+0x96): undefined reference to
dfs $ dfsan_create_label&#39;   test2.bc :(。text + 0xeb):未定义引用dfs$dfsan_set_label'
/tmp/test2-c642ef.o: In function
dfs $ dfsw $ dfsan_create_label&#39;:
  test2.bc :(。text + 0x16e):未定义引用   dfs$dfsan_create_label'
/tmp/test2-c642ef.o: In function
DFS $ dfsw $ dfsan_set_label&#39 ;:
  test2.bc :(。text + 0x1e4):未定义的引用`dfs $ dfsan_set_label&#39;
  clang-3.8:错误:链接器命令失败,退出代码为1(使用-v to   见调用)

知道我可能做错了什么吗?

0 个答案:

没有答案