Ошибка при компиляции llvm во FreeBSD 8.4

Я пытаюсь собрать LLVM из исходного кода во FreeBSD 8.4. Вот шаги, которые я выполнил

  1. Скачал источник с http://llvm.org/releases/3.8.0/llvm-3.8.0.src.tar.xz
  2. Извлек источник в папку.
  3. Создал каталог сборки и внутри него запустил $ cmake ../llvm-3.8.0.src
  4. Начал сборку используя $cmake --build .

Выдает следующую ошибку

/home/spangeni/llvm/llvm-3.8.0.src/lib/TableGen/TGLexer.cpp: In member function 'llvm::tgtok::TokKind llvm::TGLexer::LexNumber()':
/home/spangeni/llvm/llvm-3.8.0.src/lib/TableGen/TGLexer.cpp:393:48: error: 'strtoll' was not declared in this scope
       CurIntVal = strtoll(NumStart, nullptr, 16);
                                                ^
/home/spangeni/llvm/llvm-3.8.0.src/lib/TableGen/TGLexer.cpp:398:60: error: 'strtoull' was not declared in this scope
         CurIntVal = (int64_t)strtoull(NumStart, nullptr, 16);
                                                            ^
/home/spangeni/llvm/llvm-3.8.0.src/lib/TableGen/TGLexer.cpp:414:47: error: 'strtoll' was not declared in this scope
       CurIntVal = strtoll(NumStart, nullptr, 2);
                                               ^
/home/spangeni/llvm/llvm-3.8.0.src/lib/TableGen/TGLexer.cpp:429:44: error: 'strtoll' was not declared in this scope
   CurIntVal = strtoll(TokStart, nullptr, 10);

Версия GCC = 4.9.2 Версия CMAKE = 3.2.3

Я также попытался включить stdlib.h в файл llvm-3.8.0.src/lib/TableGen/TGLexer.cpp. Это не поможет.

Есть ли какая-то конфигурация, которую мне не хватает?

1 ответ

Система портов существует по уважительной причине - многие (в значительной степени все нетривиальные) программы нуждаются в исправлениях и настройках для правильной сборки и работы. Так что мой совет был бы таков: используйте порты.

Не уверен, что порты действительно поддерживают FreeBSD 8.4. Есть ли у вас особая причина использовать такой старый релиз?

Другие вопросы по тегам