Clang показывает ошибку компилятора с аргументом фаззера

Я пытаюсь поэкспериментировать с библиотекой libFuzzer и использую игрушечный пример [1].

keep-learnings-MacBook-Pro:Ccodeanalysis keep_learning$ cat Fuzzme.cpp 
#include <stdint.h>
#include <stddef.h>

extern "C" int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size) {
  if (size > 0 && data[0] == 'H')
    if (size > 1 && data[1] == 'I')
       if (size > 2 && data[2] == '!')
       __builtin_trap();
  return 0;
}

keep-learnings-MacBook-Pro:Ccodeanalysis keep_learning$ clang++ -fsanitize=address,fuzzer Fuzzme.cpp 
ld: file not found: /Library/Developer/CommandLineTools/usr/lib/clang/10.0.1/lib/darwin/libclang_rt.fuzzer_osx.a
clang: error: linker command failed with exit code 1 (use -v to see invocation)

keep-learnings-MacBook-Pro:Ccodeanalysis keep_learning$ clang++ --version
Apple LLVM version 10.0.1 (clang-1001.0.46.4)
Target: x86_64-apple-darwin18.7.0
Thread model: posix
InstalledDir: /Library/Developer/CommandLineTools/usr/bin

Быстрый поиск в Google показал мне это [2], но кроме этого я не смог найти никакой значимой информации для решения этой проблемы, поэтому публикую здесь. Может кто-нибудь, пожалуйста, скажите мне, как это решить? Заранее спасибо.

[1] http://llvm.org/docs/LibFuzzer.html#toy-example
[2] https://bugs.llvm.org/show_bug.cgi?id=39794


person keep_learning    schedule 31.08.2019    source источник


Ответы (1)


Как вы заметили, среда выполнения фаззера не поставляется с инструментами разработчика Apple. Таким образом, вы должны либо сообщить об этой проблеме сотрудникам Apple, либо самостоятельно собрать библиотеку времени выполнения из исходных кодов (или и того, и другого).

person Anton Korobeynikov    schedule 01.09.2019
comment
Спасибо за ответ @Anton. Я бы сообщил о проблеме с Apple. - person keep_learning; 01.09.2019