[devel] LLVM 11, поддержка нескольких llvm в репозитории

Arseny Maslennikov arseny на altlinux.org
Ср Окт 14 16:49:15 MSK 2020


On Wed, Oct 14, 2020 at 11:41:00AM +0200, Konstantin Lepikhov wrote:
> Hi Arseny!
> 
> On 10/13/2020, at 04:07:59 PM you wrote:
> 
> > Господа!
> > 
> > Несколько часов назад вышел LLVM 11.

Так и знал, что кто-то будет язвить.
Здесь должно было быть написано "со дня на день выходит LLVM 11", но я
протормозил с заданием и с этим письмом.

> И все должны сразу понять, что наступило ОНО?

Не знаю, кто что кому должен.

Ваш вопрос в том, почему я "так рано" об этом заговорил? Потому что рано
начать думать и советоваться с сообществом — не значит рано упаковать и
начать пользоваться. Напротив, получается больше времени, чтобы сделать
хорошо.

Начал я эту сборку готовить во время rc4-rc5 где-то, когда время было, а
во вторник отребейзил c rc6. rc6 оказался идентичен релизу, кроме имён
каталогов в релизном тарболле.

Более того, при появлении первых 12.0-rc, например, стоит начать
готовить и их к сборке. Тогда и грабли будут собраны (и не попадут в
сизиф), и сильной задержки не будет.

> 
> > 
> > On Tue, Sep 17, 2019 at 10:27:18AM +0200, Konstantin Lepikhov wrote:
> > > <...> LLVM нужно переделывать,
> > 
> > Сие в меру знаменательное событие стало неплохим поводом для того,
> > чтобы начать переделывать упаковку LLVM в сизифе.
> > 
> > > чтобы можно было держать несколько версий одновременно (как
> > > gcc), на это нужно время и желание, которого пока не накопилось.
> > 
> > Я планирую собрать LLVM 11 в префикс /usr/lib/llvm-11.0, с проброшенными
> > симлинками на исполнимые файлы и маны. llvm = %EVR и прочие провайды без
> > номерка в имени пока что предоставляться не будут, как и /usr/bin/clang,
> > /usr/bin/ld.lld, etc.; пока будут /usr/bin/clang-11 и т. п., чтобы не
> > создавать лишних волнений в чужих пакетах раньше времени — кто собирался
> > с llvm, clang, lld, по-прежнему получат свою десяточку.
> > Саму десяточку я не трогаю и думаю, что упаковывать по-новому её уже и
> > не надо — но кто-то может и не согласиться.
> Я не понял из этого описания, что именно предлагается сделать? Собрать
> llvm11 "не как всегда" и на этом успокоиться?

Нет, конечно, там много других проблем.
Например, надо в сборочный сценарий в спеке добавить stage2.
Подумать, что делать с liblldDriver.a и прочими, которые нужны и в LLVM-IR-объекте
для любителей LLVM ThinLTO, и в нативном объекте для пользователей GNU
toolchain, которые собирают пользователей LLVM.

> 
> > 
> > From: "Girar awaiter (arseny)" <girar-builder на altlinux.org>
> > Subject: [#259819] TESTED srpm=llvm11.0-11.0.0-alt1.src.rpm
> > 
> > On Tue, Oct 13, 2020 at 11:29:26AM +0000, Girar awaiter (arseny) wrote:
> > > http://git.altlinux.org/tasks/259819/logs/events.1.1.log
> > > 
> > > subtask  name      aarch64     armh     i586  ppc64le  x86_64
> > >    #100  llvm11.0    29:16  2:24:43  1:50:48  2:07:34   41:44
> > >  
> > > 2020-Oct-13 08:28:13 :: test-only task #259819 for sisyphus started by arseny:
> > > <...>
> > > 2020-Oct-13 11:29:26 :: task #259819 for sisyphus TESTED
> > 
> > В связи с этим несколько вопросов TWIMC:
> > — нужны ли в будущем вообще провайды без суффикса: llvm, lld, clang? Или
> >   пусть они так и смотрят на llvm10.0 до EOL этого пакета?
> llvm это не toolchain, это framework для создания своего toolchain. В

Даже без clang и flang таких toolchain в вашем смысле сейчас пруд пруди, и,
скорее всего, в будущем будет больше.
flang, кстати, надо собрать будет.

> первую очередь нужно огласить аудиторию, для кого это делается и зачем.
> Текущий мантейнер llvm вряд ли понимает, зачем он его собирает.
> 
> На текущий момент в сизифе есть только 2 пользователя пакета clang - это

% cut -f2 ufb-2 | grep -E '(clang|llvm|lld)10.0' | sort | uniq | LC_COLLATE=C join -11 -22 -o2.1 - ufb-2 | sort | uniq > want-llvm10.0
% wc -l want-llvm10.0 
969 want-llvm10.0

Вот сколько пакетов в сизифе двухнедельной давности хотят
'(clang|llvm|lld)10.0' в BR. Где-то половина из них хочет qt5-tools,
который уже хочет libclang.so. Предложите вендорить весь llvm туда?

В общем месте всех актуальных апстримов всё больше разработчиков
(правда, редко поясняя, почему — и это мне не нравится) отбрасывают gnu
toolchain в пользу clang-based.

> firefox (частично) и chromium, mesa не в счет поскольку адекватного
> объяснения зачем до сир пор не прозвучало.

А ещё люди-разработчики, которых в сизиф, к счастью, не упаковывают. =)
Ни на альтлинукс.орг, ни на гетальт.орг, ни на базеальт.ру не написано,
что альт — не для людей.

> Остальные проекты носят llvm с
> собой (например amdvlk) и собраны с ним (блобы nvidia).

Конечно, будет некоторое меньшинство тех, кто тащит свой llvm с собой,
может быть, патченный, или с собственным бекендом. Но если так будут
делать все — тащить свой llvm и собирать — то треснут или зеркала, или
сборочница. А ещё треснут сетевые каналы обновляющих.

> 
> > — мейнтейнерам пакетов-пользователей LLVM/Clang на CMake:
> >   сейчас модули упакованы в /usr/lib/llvm-11.0/{%_lib,share}/cmake/.
> >   Это вообще принципиально с точки зрения удобства сопровождения? Или
> >   лучше в /usr/{%_lib,share}/cmake куда-то класть? Или как-то ещё? У
> >   меня этих сведений и соображений на этот счёт скорее нет, а у господ
> >   мейнтейнеров, наверное, есть.
> Главное не куда клать, а сделать так, чтобы потом этими cmake'ами можно
> было пользоваться т.к. флаги и пути могут измениться.

Согласен, надо подойти к этому ответственно. Поэтому и задан вопрос.

> 
> > — нужна ли LLVM Packaging Policy?
> Кому нужна?

Вам не нужна, спасибо за мнение.

> 
> > 
> > Другие конструктивные комментарии приветствуются. Если никто не будет
> > возражать, между этой пятницей и следующим вторником пакет полетит в
> > сизиф.
> Мы куда-то спешим, что сразу ставятся сроки и размахивания шашкой?

Уже стало понятно, что раньше будущей недели не надо, да и не выйдет.
Это к слову о "случилось ОНО".

Вашим пакетам это помешает? Или чему-то ещё помешает? Если да, поясните,
чем, буду благодарен, для этого и письмо.
Пока у меня впечатление, что нет: llvm, clang, lld десятые остаются в
репозитории под тем же именем и соустанавливаются с *-11.0.

Зачем мне в репозитории LLVM 11 и вообще релизы LLVM по мере их выхода,
я могу сказать, но это оффтопик, и особо ревнивые личности тут же
откроют филиал LOR и поспешат мне возразить, что ни пакеты, что я
собираю или планирую, не нужны, ни llvm не нужен, ни вообще я не нужен в
сообществе. Проходили уже.
Более того, в этом треде я даже почти проговорился.



> 
> > 
> > Как из спека llvm10 получился спек llvm11, можно посмотреть тут[1].
> > [1] http://git.altlinux.org/people/arseny/packages/?p=llvm11.0.0rc6.git
> Приведите полную ссылку на diff относительно текущей конфигурации пожалуйста.

Ох. Чуть позже приведу.
(в сторону: может, вообще перестать страдать и начать собирать из gear?)

> 
> PS Меньше пафоса больше дела.
> 
> -- 
> WBR et al.
----------- следующая часть -----------
Было удалено вложение не в текстовом формате...
Имя     : signature.asc
Тип     : application/pgp-signature
Размер  : 833 байтов
Описание: отсутствует
Url     : <http://lists.altlinux.org/pipermail/devel/attachments/20201014/b83a6420/attachment-0001.bin>


Подробная информация о списке рассылки Devel