LINUX.ORG.RU

Как скомпилировать llvm(clang)?

 ,


0

1

Не могу понять эту строку:

cmake -G <generator> [options] <path to llvm sources>


Взято отсюда:
http://llvm.org/docs/GettingStarted.html

generator обязателен или при отсутствии выберется по умолчанию?


<path to llvm sources> - это тот самый where-you-want-llvm-to-live или что-то другое?

★★★★

generator обязателен или при отсутствии выберется по умолчанию?

Не обязателен.

<path to llvm sources> - это тот самый where-you-want-llvm-to-live или что-то другое?

Это каталог, куда ты распаковал исходники.

Stil ★★★★★ ()

обычно делается примерно так:

Radjah ★★★★★ ()
Ответ на: комментарий от Qwentor

Обычно делается примерно так:

cd dir_with_src
mkdir build
cd build
cmake ..
make

Весь сборочный хлам будет внутри «build»

=== Даже отредактировать не дал.

Radjah ★★★★★ ()
Ответ на: комментарий от Radjah

По ссылке после cmake просто make нету. Он нужен? А make install тогда?

Qwentor ★★★★ ()
Последнее исправление: Qwentor (всего исправлений: 2)
Ответ на: комментарий от Qwentor

Run your build tool of choice!

The default target (i.e. make) will build all of LLVM

Потом checkinstall, например, чтобы можно было удалить легко.

Я бы еще добавил "-DCMAKE_INSTALL_PREFIX=/opt/llvm" в первую команду, чтобы всё в одном каталоге было, но тогда надо будет PATH править.

Radjah ★★★★★ ()

Тебе нужно где-то 30 ГБ на диске для сборки Debug варианта и около 10-11 ГБ RAM.

i-rinat ★★★★★ ()
Ответ на: комментарий от i-rinat

???? Серьёзно? VPS 1 ГБ RAM((

llvm.org/apt/ в дауне.
Debian Wheezy. Нужен clang не менее 3.4. В репах 3.0. Что делать? Где искать альтернативный источник?

Qwentor ★★★★ ()
Последнее исправление: Qwentor (всего исправлений: 1)
Ответ на: комментарий от Qwentor

Не испольовать некроту или страдать, очевидно же.

anonymous ()
Ответ на: комментарий от Qwentor

Может взять из jessie? Или поставить lxc и в контейнере делать то, что нужно на более свежей версии?

conformist ★★★ ()
Ответ на: комментарий от conformist

Может взять из jessie?

Не подскажешь как, чтоб систему не сломать?

Qwentor ★★★★ ()
Ответ на: комментарий от Qwentor

Я вот не знаю как оно влияет на систему, ибо у меня вообще не установлено, но в общем добавь репозиторий jessie и попробуй

aptitude update && aptitude -s install -t stable clang
это будет в режиме симуляции, реально оно ничего непоставит. Посмотри что предложит.

conformist ★★★ ()
Последнее исправление: conformist (всего исправлений: 1)
Ответ на: комментарий от Qwentor

Серьёзно?

Пробовал недавно clang-3.9 собрать, чтобы посмотреть, как он там с abi gcc-5 поживает. Линковка бинарника clang-3.9 больше 10 ГБ в памяти съела. Бинарник получился 1,3 ГБ.

Но это я Debug собирал, не подумав. С Release размеры меньше должны быть. Но в гигабайт ты вряд ли уложишься.

Что делать?

Пересобери (бекпортируй) пакет на машине с большим количеством памяти и более мощным CPU. А на VPS просто поставишь.

i-rinat ★★★★★ ()
Последнее исправление: i-rinat (всего исправлений: 2)
Ответ на: комментарий от i-rinat

Думаю меньше чем через 10лет дебажные бинари будут под терабайт, релизные 100гигов, можете скринить.

anonymous ()

В общем отвечаю сразу на все вопросы (про генератор и про libcxx). Если уж берёте версии не из репов, то и всё сопутствующее тоже берите из тех же мест. Транковскую версию llvm + clang я так собираю:

svn co http://llvm.org/svn/llvm-project/llvm/trunk llvm
export LLVM_SRC="`pwd`/llvm/"
export LLVM_OBJS="`pwd`/objs/"
cd "$LLVM_SRC/tools"
svn co http://llvm.org/svn/llvm-project/cfe/trunk clang
cd "$LLVM_SRC/projects"
svn co http://llvm.org/svn/llvm-project/compiler-rt/trunk compiler-rt
svn co http://llvm.org/svn/llvm-project/openmp/trunk openmp
svn co http://llvm.org/svn/llvm-project/libcxx/trunk libcxx
svn co http://llvm.org/svn/llvm-project/libcxxabi/trunk libcxxabi
mkdir "$LLVM_OBJS"
cd "$LLVM_OBJS"
mkdir build
cd build
cmake -G Ninja -DCMAKE_INSTALL_PREFIX="$LLVM_OBJS" -DCMAKE_BUILD_TYPE=Release -DCMAKE_C_FLAGS="-O3" -DCMAKE_CXX_FLAGS="-O3" -DLLVM_ENABLE_CXX1Y=On -DLLVM_PARALLEL_COMPILE_JOBS=5 -DLLVM_PARALLEL_LINK_JOBS=5 "$LLVM_SRC/.."
cmake --build .

Все svn co можно заменить на wget нужной стабильной версии.

alexanius ()
Ответ на: комментарий от alexanius

-DLLVM_PARALLEL_COMPILE_JOBS=5
-DLLVM_PARALLEL_LINK_JOBS=5
cmake --build .

Не знал о таком. Спасибо!

i-rinat ★★★★★ ()
Ответ на: комментарий от i-rinat

А есть вариант без сборки пакета на другой машине? Больно геморно( со сборкой пакетов придётся ещё разбираться.. Вот говорят можно из Jessie поставить. Только как сделать так, чтобы систему не навернуть с первыми же обновлениями?

Qwentor ★★★★ ()
Ответ на: комментарий от Qwentor

А есть вариант без сборки пакета на другой машине?
Вот говорят можно из Jessie поставить.

Вряд ли. Пакеты из Jessie скорее всего будут зависеть от более свежей версии libc6, которую тоже придётся оттуда поставить. Она за собой ещё что-нибудь потянет, и так далее.

Раз alexanius регулярно собирает, есть смысл спросить у него про требования к памяти и месту на диске.

i-rinat ★★★★★ ()
Ответ на: комментарий от alexanius

А сколько рамы и диска жрёт компиляция? Какая машина минимально необходима?

Qwentor ★★★★ ()
Последнее исправление: Qwentor (всего исправлений: 1)
Ответ на: комментарий от Qwentor

Не замерял. Сейчас попробовал собрать на своей машине с 4ГБ оперативы - не хватило. Но 8 хватить должно, наверное. Выйду из отпуска - могу посмотреть параметры сборочного сервака и объём на диске. Но не вижу проблем чтобы просто попробовать самому собрать на какой-нибудь машине и проверить.

PS. в строчках сборки небольшая ошибка - там при cmake -G Ninja ... нужно писать «$LLVM_SRC» (убрать «/..»)

alexanius ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.