LINUX.ORG.RU
ФорумTalks

Когда Kbuild/Kconfig перепишут на meson?

 , ,


0

1

Чтобы можно было сгенерировать compile_commands.json для ядра и комфортно перемещаться по исходникам, например, используя emacs + ccls.

Я знаю, что compile_commands можно создать с помощью scripts/clang-tools/gen_compile_commands.py, но для этого предварительно нужно ядро собрать, на что могут уйти часы.

Кто-то может возразить, что meson на написан на петоне, поэтому ненужен. Возможно. Но ведь в ядре и так уже куча скриптов на нём, так что терять уже нечего.


Где при сборке ядра _необходим_ питон?

Про какие скрипты на питоне в ядре ты говоришь?

... но для этого предварительно нужно ядро собрать, на что могут уйти часы.

Ты на i386 собираешь? :)

Даже во времена 1.3.20 на i386dx40 c 8Mb RAM ядро собиралось порядка 40 минут, правда на 4Mb RAM оно собиралось часа 3 или 4.

Завязка на питон сборки ядра - неразумная идея.

Переписывание напоминает процесс колоризации старых фильмов.

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

Где при сборке ядра необходим питон?

Я не утверждал, что он необходим для сборки. Но в 5.10.7 сейчас 118 *.py файлов.

Ты на i386 собираешь? :)

Нет, но у меня на Void пакет с ядром собирался где-то 5 часов при включенной параллельной сборке. Но комп слабый, да.

Завязка на питон сборки ядра - неразумная идея.

Ну, рекурсивную сборку на Makefile вряд ли можно назвать более разумной идеей.

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

Я не утверждал, что он необходим для сборки. Но в 5.10.7 сейчас 118 *.py файлов.

Это все тулзы, которые в сборке не используются.

И половина из них хочет питон2, а другая питон3.

find -type f -name \*.py|xargs head -3| less
Особо радует разнообразие в ./drivers/staging/comedi/drivers/ni_routing/*.py

make -j99 на дохлой машине будет работать дольше чем сборка в 1 поток.

Сборка не рекурсивная. Она отражает структуру каталогов. Древовидная структура каталогов тебе кажется неразумной идеей? Ты видать с RT-11 никогда не работал :)

vel ★★★★★
()

для этого предварительно нужно ядро собрать, на что могут уйти часы

Поставь себе ccache и пережди одну сборку. Тебе же не нужно эти часы сидеть за компом и смотреть, пока он работает. Если понадобится ядро снова собрать, с кешем будет уже намного быстрее, в районе единиц минут, если не десятков секунд.

Можешь ещё попробовать заменить gcc на свой скрипт-пустышку, который не делает ничего.

i-rinat ★★★★★
()

Я не понимаю, почему meson до сих пор не переписали на Си, плюсах или расте. Или были попытки?

CYB3R ★★★★★
()

Я знаю, что compile_commands можно создать с помощью scripts/clang-tools/gen_compile_commands.py, но для этого предварительно нужно ядро собрать

Что проще - улучшить 1 небольшой скрипт, или отрефакторить стабильно и хорошо работающую билд систему гигантского проекта, к которой привыкло тысячи людей и роботов?

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

Новость была, уже скоро, в 2031 году прекратят поддержку Perl5 и будет лишь Perl7 с немного поломанной совместимостью.

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

Завязка на питон сборки ядра - неразумная идея.

Можно рядом с конкретной версией ядра класть уже сгенерированный мезоном build.ninja/ms project/make файл

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

Рано - мезон слишком быстро развивается. Надо подождать годика два.

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

И половина из них хочет питон2, а другая питон3

Да, притом что третий давно уже вышел. Могли бы уже к одному виду всё перевести.

Сборка не рекурсивная.

Разве? Давно я не смотрел, как там сборка устроена. Но если они правда устранили рекурсию, то без костылей явно не обошлось.

Ты видать с RT-11 никогда не работал :)

Так когда она вышла и использовалась, я еще не родился:)

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

Поставь себе ccache и пережди одну сборку

Про ccache знаю, но это не поможет, если поменять конфиг. Ведь сгенерированный конфиг.h неявно подключается в кучу файлов, так что толку от ccache…

Можешь ещё попробовать заменить gcc на свой скрипт-пустышку

О, не додумался до этого. Потом проверю, сейчас не у компа.

eve
() автор топика
Ответ на: комментарий от snizovtsev

Что проще - улучшить 1 небольшой скрипт, или отрефакторить стабильно и хорошо работающую билд систему

Ну, теоретически можно переехать на другую систему сборки (полу)автоматически, это ж всё формальные языки.

eve
() автор топика
Ответ на: комментарий от ahdenchik

класть уже сгенерированный мезоном build.ninja

Он будет разным в зависимости от конфига ядра, так что не вариант.

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

но это не поможет, если поменять конфиг

Ты конфиг по пять раз на дню менять собрался?

i-rinat ★★★★★
()

Да, было бы неплохо.

Не на отрыжку CMake же Linux переводить.

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

заменить gcc на свой скрипт-пустышку, который не делает ничего

Не, это так просто не сработает, ведь ещё нужно .o.d файлы генерировать.

eve
() автор топика

Meson не умеет более одного тулчейна в одном проекте. А в процессе сборки ядра используется два компилятора, CC и HOSTCC.

Удивительно но факт. Make и ninja не имеют ограничений на применяемые в сборке компиляторы, а cmake и meson имеют.

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

Умеет. Можно запускать родной и кросс-компилятор в одном проекте.

eve
() автор топика

Недайбох.

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