* [devel] LLVM 11, поддержка нескольких llvm в репозитории
@ 2020-10-13 13:07 Arseny Maslennikov
2020-10-13 13:17 ` Aleksei Nikiforov
` (5 more replies)
0 siblings, 6 replies; 29+ messages in thread
From: Arseny Maslennikov @ 2020-10-13 13:07 UTC (permalink / raw)
To: shrek, lakostis; +Cc: devel
[-- Attachment #1: Type: text/plain, Size: 3468 bytes --]
Господа!
Несколько часов назад вышел LLVM 11.
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, по-прежнему получат свою десяточку.
Саму десяточку я не трогаю и думаю, что упаковывать по-новому её уже и
не надо — но кто-то может и не согласиться.
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/Clang на CMake:
сейчас модули упакованы в /usr/lib/llvm-11.0/{%_lib,share}/cmake/.
Это вообще принципиально с точки зрения удобства сопровождения? Или
лучше в /usr/{%_lib,share}/cmake куда-то класть? Или как-то ещё? У
меня этих сведений и соображений на этот счёт скорее нет, а у господ
мейнтейнеров, наверное, есть.
— нужна ли LLVM Packaging Policy?
Другие конструктивные комментарии приветствуются. Если никто не будет
возражать, между этой пятницей и следующим вторником пакет полетит в
сизиф.
Как из спека llvm10 получился спек llvm11, можно посмотреть тут[1].
[1] http://git.altlinux.org/people/arseny/packages/?p=llvm11.0.0rc6.git
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]
^ permalink raw reply [flat|nested] 29+ messages in thread
* Re: [devel] LLVM 11, поддержка нескольких llvm в репозитории
2020-10-13 13:07 [devel] LLVM 11, поддержка нескольких llvm в репозитории Arseny Maslennikov
@ 2020-10-13 13:17 ` Aleksei Nikiforov
2020-10-13 13:40 ` Валерий Иноземцев
` (4 subsequent siblings)
5 siblings, 0 replies; 29+ messages in thread
From: Aleksei Nikiforov @ 2020-10-13 13:17 UTC (permalink / raw)
To: devel
13.10.2020 16:07, Arseny Maslennikov пишет:
> Господа!
>
> Несколько часов назад вышел LLVM 11.
...
> — мейнтейнерам пакетов-пользователей LLVM/Clang на CMake:
> сейчас модули упакованы в /usr/lib/llvm-11.0/{%_lib,share}/cmake/.
> Это вообще принципиально с точки зрения удобства сопровождения? Или
> лучше в /usr/{%_lib,share}/cmake куда-то класть? Или как-то ещё? У
> меня этих сведений и соображений на этот счёт скорее нет, а у господ
> мейнтейнеров, наверное, есть.
Упаковка файлов cmake по нестандартным путям точно вызовет проблемы и
необходимость адаптации всех использующих их при сборке пакетов:
https://bugzilla.altlinux.org/38660
^ permalink raw reply [flat|nested] 29+ messages in thread
* Re: [devel] LLVM 11, поддержка нескольких llvm в репозитории
2020-10-13 13:07 [devel] LLVM 11, поддержка нескольких llvm в репозитории Arseny Maslennikov
2020-10-13 13:17 ` Aleksei Nikiforov
@ 2020-10-13 13:40 ` Валерий Иноземцев
2020-10-13 15:58 ` Arseny Maslennikov
2020-10-13 14:00 ` Michael Shigorin
` (3 subsequent siblings)
5 siblings, 1 reply; 29+ messages in thread
From: Валерий Иноземцев @ 2020-10-13 13:40 UTC (permalink / raw)
To: devel
[-- Attachment #1.1: Type: text/plain, Size: 4157 bytes --]
13.10.2020 16:07, Arseny Maslennikov пишет:
> Господа!
>
> Несколько часов назад вышел LLVM 11.
>
> 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, по-прежнему получат свою десяточку.
> Саму десяточку я не трогаю и думаю, что упаковывать по-новому её уже и
> не надо — но кто-то может и не согласиться.
>
> 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/Clang на CMake:
> сейчас модули упакованы в /usr/lib/llvm-11.0/{%_lib,share}/cmake/.
> Это вообще принципиально с точки зрения удобства сопровождения? Или
> лучше в /usr/{%_lib,share}/cmake куда-то класть? Или как-то ещё? У
> меня этих сведений и соображений на этот счёт скорее нет, а у господ
> мейнтейнеров, наверное, есть.
> — нужна ли LLVM Packaging Policy?
>
> Другие конструктивные комментарии приветствуются. Если никто не будет
> возражать, между этой пятницей и следующим вторником пакет полетит в
> сизиф.
>
> Как из спека llvm10 получился спек llvm11, можно посмотреть тут[1].
> [1] http://git.altlinux.org/people/arseny/packages/?p=llvm11.0.0rc6.git
>
>
> _______________________________________________
> Devel mailing list
> Devel@lists.altlinux.org
> https://lists.altlinux.org/mailman/listinfo/devel
>
--
Valery V. Inozemtsev
[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 195 bytes --]
^ permalink raw reply [flat|nested] 29+ messages in thread
* Re: [devel] LLVM 11, поддержка нескольких llvm в репозитории
2020-10-13 13:07 [devel] LLVM 11, поддержка нескольких llvm в репозитории Arseny Maslennikov
2020-10-13 13:17 ` Aleksei Nikiforov
2020-10-13 13:40 ` Валерий Иноземцев
@ 2020-10-13 14:00 ` Michael Shigorin
2020-10-13 16:10 ` Arseny Maslennikov
2020-10-13 14:02 ` Vitaly Lipatov
` (2 subsequent siblings)
5 siblings, 1 reply; 29+ messages in thread
From: Michael Shigorin @ 2020-10-13 14:00 UTC (permalink / raw)
To: devel
On Tue, Oct 13, 2020 at 04:07:59PM +0300, Arseny Maslennikov wrote:
> > чтобы можно было держать несколько версий одновременно (как gcc)
> Я планирую собрать LLVM 11 в префикс /usr/lib/llvm-11.0
А зачем? Для Mesa в любом случае нужна довольно жёстко
привязанная "своя" версия, насколько до сих пор понял.
--
---- WBR, Michael Shigorin / http://altlinux.org
------ http://opennet.ru / http://anna-news.info
^ permalink raw reply [flat|nested] 29+ messages in thread
* Re: [devel] LLVM 11, поддержка нескольких llvm в репозитории
2020-10-13 13:07 [devel] LLVM 11, поддержка нескольких llvm в репозитории Arseny Maslennikov
` (2 preceding siblings ...)
2020-10-13 14:00 ` Michael Shigorin
@ 2020-10-13 14:02 ` Vitaly Lipatov
2020-10-13 15:42 ` Arseny Maslennikov
2020-10-13 15:51 ` Arseny Maslennikov
2020-10-14 9:41 ` Konstantin Lepikhov
2020-10-20 9:33 ` Dmitry V. Levin
5 siblings, 2 replies; 29+ messages in thread
From: Vitaly Lipatov @ 2020-10-13 14:02 UTC (permalink / raw)
To: ALT Linux Team development discussions
Arseny Maslennikov писал 13.10.20 16:07:
> Господа!
>
> Несколько часов назад вышел LLVM 11.
>
> On Tue, Sep 17, 2019 at 10:27:18AM +0200, Konstantin Lepikhov wrote:
>> <...> LLVM нужно переделывать,
>
> Сие в меру знаменательное событие стало неплохим поводом для того,
> чтобы начать переделывать упаковку LLVM в сизифе.
>
>> чтобы можно было держать несколько версий одновременно (как
>> gcc), на это нужно время и желание, которого пока не накопилось.
А зачем это нужно, держать несколько llvm?
Какие есть use cases?
> В связи с этим несколько вопросов TWIMC:
> — нужны ли в будущем вообще провайды без суффикса: llvm, lld, clang?
> Или
> пусть они так и смотрят на llvm10.0 до EOL этого пакета?
Мне кажется правильным смотреть на «как gcc», то есть нужна возможность
запустить llvm, clang.
> — мейнтейнерам пакетов-пользователей LLVM/Clang на CMake:
> сейчас модули упакованы в /usr/lib/llvm-11.0/{%_lib,share}/cmake/.
> Это вообще принципиально с точки зрения удобства сопровождения? Или
> лучше в /usr/{%_lib,share}/cmake куда-то класть? Или как-то ещё? У
> меня этих сведений и соображений на этот счёт скорее нет, а у господ
> мейнтейнеров, наверное, есть.
Правильно это класть туда, где cmake сможет найти. Но это идёт вразрез с
идей установки нескольких llvm, если только не вынести модули cmake в
отдельный конфликтующий пакет.
Ссылку на нерешённую багу Алексей уже привёл:
https://bugzilla.altlinux.org/38660
Ваша сборка должна закрывать эту багу, мне кажется.
> — нужна ли LLVM Packaging Policy?
Конечно!
> Другие конструктивные комментарии приветствуются. Если никто не будет
> возражать, между этой пятницей и следующим вторником пакет полетит в
> сизиф.
>
> Как из спека llvm10 получился спек llvm11, можно посмотреть тут[1].
> [1] http://git.altlinux.org/people/arseny/packages/?p=llvm11.0.0rc6.git
>
> _______________________________________________
> Devel mailing list
> Devel@lists.altlinux.org
> https://lists.altlinux.org/mailman/listinfo/devel
--
С уважением,
Виталий Липатов,
ALT Linux Team
^ permalink raw reply [flat|nested] 29+ messages in thread
* Re: [devel] LLVM 11, поддержка нескольких llvm в репозитории
2020-10-13 14:02 ` Vitaly Lipatov
@ 2020-10-13 15:42 ` Arseny Maslennikov
2020-10-13 18:26 ` Vitaly Lipatov
2020-10-13 15:51 ` Arseny Maslennikov
1 sibling, 1 reply; 29+ messages in thread
From: Arseny Maslennikov @ 2020-10-13 15:42 UTC (permalink / raw)
To: ALT Linux Team development discussions
[-- Attachment #1: Type: text/plain, Size: 5916 bytes --]
On Tue, Oct 13, 2020 at 05:02:35PM +0300, Vitaly Lipatov wrote:
> Arseny Maslennikov писал 13.10.20 16:07:
> > Господа!
> >
> > Несколько часов назад вышел LLVM 11.
> >
> > On Tue, Sep 17, 2019 at 10:27:18AM +0200, Konstantin Lepikhov wrote:
> > > <...> LLVM нужно переделывать,
> >
> > Сие в меру знаменательное событие стало неплохим поводом для того,
> > чтобы начать переделывать упаковку LLVM в сизифе.
> >
> > > чтобы можно было держать несколько версий одновременно (как
> > > gcc), на это нужно время и желание, которого пока не накопилось.
> А зачем это нужно, держать несколько llvm?
> Какие есть use cases?
Проект LLVM между мажорными выпусками, которые у него теперь раз в
полгода, ломает любую обратную совместимость, которую считает нужным, и
полагает, что пользователи завязываются на конкретную мажорную версию.
Взгляните ради интереса на усилия по ссылкам, что людям приходится
делать, чтобы уйти от одного мажорного LLVM на другой.
Пользователи LLVM шевелятся с разной скоростью, и у наших пакетов могут
быть совершенно разные зависимости даже на конкретные версии этих
пользователей, и в будущем, скорее всего, будет только сложнее.
[1] https://github.com/ziglang/zig/commit/41a8b6f57b3bd50b2ed6fdced74fba9130eac3d3
[2] https://github.com/ziglang/zig/commit/bd121f3af46bc22a25ac0495e8d83461510c77d4
[3] https://github.com/ziglang/zig/commit/cd91e17b7384fe857c5cf847b106cd0f98cb4d6a
[4] https://github.com/ziglang/zig/commit/c8ea8cf5df8261995b1e451085e39cd612c9e038
[5] https://github.com/ziglang/zig/commit/4053b95d8e2dea661ff7b1dfdb4a9aa32d08db14
[6] https://github.com/rust-lang/rust/pull/73525/
[7] https://github.com/rust-lang/rust/pull/73526/
Rust так вообще уже неделю как в вашем кинотеатре, выше головы прыгнул. :)
Ссылки решительно не исчерпывающие.
>
> > В связи с этим несколько вопросов TWIMC:
> > — нужны ли в будущем вообще провайды без суффикса: llvm, lld, clang? Или
> > пусть они так и смотрят на llvm10.0 до EOL этого пакета?
> Мне кажется правильным смотреть на «как gcc», то есть нужна возможность
> запустить llvm, clang.
OK. Тогда чуть позже, но до LLVM 12, возможность запустить
/usr/bin/clang появится.
Пока что она есть, если поставить в окружение десятку.
Про произвольные llvm-утилиты — вот тут даже я задумался, насколько это
востребовано... но от введения их поддержки реализация llvm-util-wrapper
сильно не усложнится.
>
> > — мейнтейнерам пакетов-пользователей LLVM/Clang на CMake:
> > сейчас модули упакованы в /usr/lib/llvm-11.0/{%_lib,share}/cmake/.
> > Это вообще принципиально с точки зрения удобства сопровождения? Или
> > лучше в /usr/{%_lib,share}/cmake куда-то класть? Или как-то ещё? У
> > меня этих сведений и соображений на этот счёт скорее нет, а у господ
> > мейнтейнеров, наверное, есть.
> Правильно это класть туда, где cmake сможет найти. Но это идёт вразрез с
> идей установки нескольких llvm, если только не вынести модули cmake в
> отдельный конфликтующий пакет.
>
> Ссылку на нерешённую багу Алексей уже привёл:
> https://bugzilla.altlinux.org/38660
>
> Ваша сборка должна закрывать эту багу, мне кажется.
Или ещё не закрывает; надо убедиться.
>
> > — нужна ли LLVM Packaging Policy?
> Конечно!
Тогда постараюсь вскоре набросать прототип.
>
> > Другие конструктивные комментарии приветствуются. Если никто не будет
> > возражать, между этой пятницей и следующим вторником пакет полетит в
> > сизиф.
> >
> > Как из спека llvm10 получился спек llvm11, можно посмотреть тут[1].
> > [1] http://git.altlinux.org/people/arseny/packages/?p=llvm11.0.0rc6.git
> >
> > _______________________________________________
> > Devel mailing list
> > Devel@lists.altlinux.org
> > https://lists.altlinux.org/mailman/listinfo/devel
>
> --
> С уважением,
> Виталий Липатов,
> ALT Linux Team
> _______________________________________________
> Devel mailing list
> Devel@lists.altlinux.org
> https://lists.altlinux.org/mailman/listinfo/devel
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]
^ permalink raw reply [flat|nested] 29+ messages in thread
* Re: [devel] LLVM 11, поддержка нескольких llvm в репозитории
2020-10-13 14:02 ` Vitaly Lipatov
2020-10-13 15:42 ` Arseny Maslennikov
@ 2020-10-13 15:51 ` Arseny Maslennikov
2020-10-13 17:34 ` Vitaly Lipatov
1 sibling, 1 reply; 29+ messages in thread
From: Arseny Maslennikov @ 2020-10-13 15:51 UTC (permalink / raw)
To: ALT Linux Team development discussions
[-- Attachment #1: Type: text/plain, Size: 1023 bytes --]
On Tue, Oct 13, 2020 at 05:02:35PM +0300, Vitaly Lipatov wrote:
> Arseny Maslennikov писал 13.10.20 16:07:
> > — нужны ли в будущем вообще провайды без суффикса: llvm, lld, clang? Или
> > пусть они так и смотрят на llvm10.0 до EOL этого пакета?
> Мне кажется правильным смотреть на «как gcc», то есть нужна возможность
> запустить llvm, clang.
>
Но мой вопрос был про Provides: llvm = %EVR. Я пока убеждён, что при
нумерованной упаковке LLVM такие пакеты в целом не нужны, и от них надо
постепенно уходить; либо каким-то неведомым мне или неформализуемым
образом решать, что новая версия llvm годится как stable sane choice, и
добавлять этот провайд.
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]
^ permalink raw reply [flat|nested] 29+ messages in thread
* Re: [devel] LLVM 11, поддержка нескольких llvm в репозитории
2020-10-13 13:40 ` Валерий Иноземцев
@ 2020-10-13 15:58 ` Arseny Maslennikov
0 siblings, 0 replies; 29+ messages in thread
From: Arseny Maslennikov @ 2020-10-13 15:58 UTC (permalink / raw)
To: ALT Linux Team development discussions
[-- Attachment #1: Type: text/plain, Size: 1796 bytes --]
On Tue, Oct 13, 2020 at 04:40:59PM +0300, Валерий Иноземцев wrote:
> 13.10.2020 16:07, Arseny Maslennikov пишет:
> > Господа!
> >
> > Несколько часов назад вышел LLVM 11.
> >
> > On Tue, Sep 17, 2019 at 10:27:18AM +0200, Konstantin Lepikhov wrote:
> >> <...> LLVM нужно переделывать,
> >
> > Сие в меру знаменательное событие стало неплохим поводом для того,
> > чтобы начать переделывать упаковку LLVM в сизифе.
> >
> >> чтобы можно было держать несколько версий одновременно (как
> >> gcc), на это нужно время и желание, которого пока не накопилось.
> >
> > Я планирую собрать LLVM 11 в префикс /usr/lib/llvm-11.0, с проброшенными
> > симлинками на исполнимые файлы и маны.
>
> бессмысленное занятие. я уже не раз планировал это сделать, но апстим не
> предполагает установку нескольких версий одновременно. хотя попробуй,
> может у тебя что нибудь путное получится
Я пока уверен, что получится =) У Debian, как минимум, получилось.
Рач и федора не пытаются, но они и не брезгуют искусственными
ограничениями на пакеты и вообще мало интересуются качеством и ценностью
пакетов, у них другие цели.
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]
^ permalink raw reply [flat|nested] 29+ messages in thread
* Re: [devel] LLVM 11, поддержка нескольких llvm в репозитории
2020-10-13 14:00 ` Michael Shigorin
@ 2020-10-13 16:10 ` Arseny Maslennikov
0 siblings, 0 replies; 29+ messages in thread
From: Arseny Maslennikov @ 2020-10-13 16:10 UTC (permalink / raw)
To: ALT Linux Team development discussions
[-- Attachment #1: Type: text/plain, Size: 1062 bytes --]
On Tue, Oct 13, 2020 at 05:00:55PM +0300, Michael Shigorin wrote:
> On Tue, Oct 13, 2020 at 04:07:59PM +0300, Arseny Maslennikov wrote:
> > > чтобы можно было держать несколько версий одновременно (как gcc)
> > Я планирую собрать LLVM 11 в префикс /usr/lib/llvm-11.0
>
> А зачем? Для Mesa в любом случае нужна довольно жёстко
> привязанная "своя" версия, насколько до сих пор понял.
Я вообще не в курсе про нужды Mesa, пусть про неё подумают и поделятся
те, кто разбирается лучше.
Для этого отчасти притащил lakostis@ в To:.
На общий же вопрос "зачем" предостаточно ответов в этом треде, и даже не
только в этом — они ищутся при помощи grep -i "llvm" по сабжам писем
рассылки.
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]
^ permalink raw reply [flat|nested] 29+ messages in thread
* Re: [devel] LLVM 11, поддержка нескольких llvm в репозитории
2020-10-13 15:51 ` Arseny Maslennikov
@ 2020-10-13 17:34 ` Vitaly Lipatov
0 siblings, 0 replies; 29+ messages in thread
From: Vitaly Lipatov @ 2020-10-13 17:34 UTC (permalink / raw)
To: ALT Linux Team development discussions
Arseny Maslennikov писал 13.10.20 18:51:
> On Tue, Oct 13, 2020 at 05:02:35PM +0300, Vitaly Lipatov wrote:
>> Arseny Maslennikov писал 13.10.20 16:07:
>> > — нужны ли в будущем вообще провайды без суффикса: llvm, lld, clang? Или
>> > пусть они так и смотрят на llvm10.0 до EOL этого пакета?
>> Мне кажется правильным смотреть на «как gcc», то есть нужна
>> возможность
>> запустить llvm, clang.
>>
>
> Но мой вопрос был про Provides: llvm = %EVR. Я пока убеждён, что при
> нумерованной упаковке LLVM такие пакеты в целом не нужны, и от них надо
+1
> постепенно уходить; либо каким-то неведомым мне или неформализуемым
> образом решать, что новая версия llvm годится как stable sane choice, и
> добавлять этот провайд.
+1
Для тех, кому не важно, какая версия, такой provide должен быть.
Например, мне надо что-то собрать, и делаю
apt-get install gcc
или
apt-get install clang
и меня не волнуют версии.
Это уровень пользователя.
При сборке пакета, напротив, мантейнер пакета решает, какая версия clang
подходит пакету, и должен выставлять тогда нумерованный Requires:
Собственно, тогда на уровне макросов должно быть лёгкое управление,
какой clang будет использоваться. Как это сделано для gcc
(%set_gcc_version).
Идею неформальным образом решать, какая версия llvm будет stable sane
choice, очень поддерживаю.
--
С уважением,
Виталий Липатов,
ALT Linux Team
^ permalink raw reply [flat|nested] 29+ messages in thread
* Re: [devel] LLVM 11, поддержка нескольких llvm в репозитории
2020-10-13 15:42 ` Arseny Maslennikov
@ 2020-10-13 18:26 ` Vitaly Lipatov
0 siblings, 0 replies; 29+ messages in thread
From: Vitaly Lipatov @ 2020-10-13 18:26 UTC (permalink / raw)
To: ALT Linux Team development discussions; +Cc: Arseny Maslennikov
Arseny Maslennikov писал 13.10.20 18:42:
...
> Проект LLVM между мажорными выпусками, которые у него теперь раз в
> полгода, ломает любую обратную совместимость, которую считает нужным, и
> полагает, что пользователи завязываются на конкретную мажорную версию.
> Взгляните ради интереса на усилия по ссылкам, что людям приходится
> делать, чтобы уйти от одного мажорного LLVM на другой.
> Пользователи LLVM шевелятся с разной скоростью, и у наших пакетов могут
> быть совершенно разные зависимости даже на конкретные версии этих
> пользователей, и в будущем, скорее всего, будет только сложнее.
Что в репозитории для сборки пакетов нужны разные версии llvm, теперь
стало понятно. И не оспаривается. Но так ли необходимо при этом
обеспечивать одновременную установку в систему?
Просто если это слишком сложно в реализации (и особенно создаст потом
сплошные проблемы), надо точно понимать, что это кому-то нужно.
> Про произвольные llvm-утилиты — вот тут даже я задумался, насколько это
> востребовано... но от введения их поддержки реализация
> llvm-util-wrapper
> сильно не усложнится.
Наверное, достаточно, чтобы был и работал clang/clang++ ?
...
>> Правильно это класть туда, где cmake сможет найти. Но это идёт вразрез
>> с
>> идей установки нескольких llvm, если только не вынести модули cmake в
>> отдельный конфликтующий пакет.
>>
>> Ссылку на нерешённую багу Алексей уже привёл:
>> https://bugzilla.altlinux.org/38660
>>
>> Ваша сборка должна закрывать эту багу, мне кажется.
>
> Или ещё не закрывает; надо убедиться.
Я имел в виду, что нужно придумать решение, которое не будет приводить к
этой баге :)
Если сохранить возможность соустановки нескольких clang, то тогда
придётся cmake-модули выносить в отдельные конфликтующие пакеты. Или ещё
можно предлагать расширять путь поиска модулей cmake, что странно.
...
>> > Другие конструктивные комментарии приветствуются. Если никто не будет
>> > возражать, между этой пятницей и следующим вторником пакет полетит в
>> > сизиф.
>> >
>> > Как из спека llvm10 получился спек llvm11, можно посмотреть тут[1].
>> > [1] http://git.altlinux.org/people/arseny/packages/?p=llvm11.0.0rc6.git
Как я понимаю, если он не ломает llvm10, почему бы не полететь :)
--
С уважением,
Виталий Липатов,
ALT Linux Team
^ permalink raw reply [flat|nested] 29+ messages in thread
* Re: [devel] LLVM 11, поддержка нескольких llvm в репозитории
2020-10-13 13:07 [devel] LLVM 11, поддержка нескольких llvm в репозитории Arseny Maslennikov
` (3 preceding siblings ...)
2020-10-13 14:02 ` Vitaly Lipatov
@ 2020-10-14 9:41 ` Konstantin Lepikhov
2020-10-14 10:20 ` Andrey Savchenko
` (3 more replies)
2020-10-20 9:33 ` Dmitry V. Levin
5 siblings, 4 replies; 29+ messages in thread
From: Konstantin Lepikhov @ 2020-10-14 9:41 UTC (permalink / raw)
To: devel
Hi Arseny!
On 10/13/2020, at 04:07:59 PM you wrote:
> Господа!
>
> Несколько часов назад вышел LLVM 11.
И все должны сразу понять, что наступило ОНО?
>
> 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 "не как всегда" и на этом успокоиться?
>
> 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. В
первую очередь нужно огласить аудиторию, для кого это делается и зачем.
Текущий мантейнер llvm вряд ли понимает, зачем он его собирает.
На текущий момент в сизифе есть только 2 пользователя пакета clang - это
firefox (частично) и chromium, mesa не в счет поскольку адекватного
объяснения зачем до сир пор не прозвучало. Остальные проекты носят llvm с
собой (например amdvlk) и собраны с ним (блобы nvidia).
> — мейнтейнерам пакетов-пользователей LLVM/Clang на CMake:
> сейчас модули упакованы в /usr/lib/llvm-11.0/{%_lib,share}/cmake/.
> Это вообще принципиально с точки зрения удобства сопровождения? Или
> лучше в /usr/{%_lib,share}/cmake куда-то класть? Или как-то ещё? У
> меня этих сведений и соображений на этот счёт скорее нет, а у господ
> мейнтейнеров, наверное, есть.
Главное не куда клать, а сделать так, чтобы потом этими cmake'ами можно
было пользоваться т.к. флаги и пути могут измениться.
> — нужна ли LLVM Packaging Policy?
Кому нужна?
>
> Другие конструктивные комментарии приветствуются. Если никто не будет
> возражать, между этой пятницей и следующим вторником пакет полетит в
> сизиф.
Мы куда-то спешим, что сразу ставятся сроки и размахивания шашкой?
>
> Как из спека llvm10 получился спек llvm11, можно посмотреть тут[1].
> [1] http://git.altlinux.org/people/arseny/packages/?p=llvm11.0.0rc6.git
Приведите полную ссылку на diff относительно текущей конфигурации пожалуйста.
PS Меньше пафоса больше дела.
--
WBR et al.
^ permalink raw reply [flat|nested] 29+ messages in thread
* Re: [devel] LLVM 11, поддержка нескольких llvm в репозитории
2020-10-14 9:41 ` Konstantin Lepikhov
@ 2020-10-14 10:20 ` Andrey Savchenko
2020-10-14 10:55 ` Konstantin Lepikhov
2020-10-14 11:56 ` Vladimir D. Seleznev
` (2 subsequent siblings)
3 siblings, 1 reply; 29+ messages in thread
From: Andrey Savchenko @ 2020-10-14 10:20 UTC (permalink / raw)
To: ALT Linux Team development discussions
[-- Attachment #1: Type: text/plain, Size: 1321 bytes --]
On Wed, 14 Oct 2020 11:41:00 +0200 Konstantin Lepikhov wrote:
> llvm это не toolchain, это framework для создания своего toolchain. В
> первую очередь нужно огласить аудиторию, для кого это делается и зачем.
> Текущий мантейнер llvm вряд ли понимает, зачем он его собирает.
>
> На текущий момент в сизифе есть только 2 пользователя пакета clang - это
> firefox (частично) и chromium, mesa не в счет поскольку адекватного
> объяснения зачем до сир пор не прозвучало. Остальные проекты носят llvm с
> собой (например amdvlk) и собраны с ним (блобы nvidia).
Не пишите ерунду. В mesa LLVM необходим для работы gallium на ряде
большинстве чипов Radeon. Он используется как минимум при
компиляции шейдеров данными драйверами.
> PS Меньше пафоса больше дела.
Вот-вот, начните с себя, Константин.
Best regards,
Andrew Savchenko
[-- Attachment #2: Type: application/pgp-signature, Size: 833 bytes --]
^ permalink raw reply [flat|nested] 29+ messages in thread
* Re: [devel] LLVM 11, поддержка нескольких llvm в репозитории
2020-10-14 10:20 ` Andrey Savchenko
@ 2020-10-14 10:55 ` Konstantin Lepikhov
0 siblings, 0 replies; 29+ messages in thread
From: Konstantin Lepikhov @ 2020-10-14 10:55 UTC (permalink / raw)
To: devel
Hi Andrey!
On 10/14/2020, at 01:20:20 PM you wrote:
> On Wed, 14 Oct 2020 11:41:00 +0200 Konstantin Lepikhov wrote:
> > llvm это не toolchain, это framework для создания своего toolchain. В
> > первую очередь нужно огласить аудиторию, для кого это делается и зачем.
> > Текущий мантейнер llvm вряд ли понимает, зачем он его собирает.
> >
> > На текущий момент в сизифе есть только 2 пользователя пакета clang - это
> > firefox (частично) и chromium, mesa не в счет поскольку адекватного
> > объяснения зачем до сир пор не прозвучало. Остальные проекты носят llvm с
> > собой (например amdvlk) и собраны с ним (блобы nvidia).
>
> Не пишите ерунду. В mesa LLVM необходим для работы gallium на ряде
> большинстве чипов Radeon. Он используется как минимум при
> компиляции шейдеров данными драйверами.
>
LLVM как библиотека, а не toolchain. Как toolchain он там нужен только для
clover, который не нужен.
--
WBR et al.
^ permalink raw reply [flat|nested] 29+ messages in thread
* Re: [devel] LLVM 11, поддержка нескольких llvm в репозитории
2020-10-14 9:41 ` Konstantin Lepikhov
2020-10-14 10:20 ` Andrey Savchenko
@ 2020-10-14 11:56 ` Vladimir D. Seleznev
2020-10-14 12:45 ` Konstantin Lepikhov
2020-10-14 13:49 ` Arseny Maslennikov
2020-10-19 15:40 ` Arseny Maslennikov
3 siblings, 1 reply; 29+ messages in thread
From: Vladimir D. Seleznev @ 2020-10-14 11:56 UTC (permalink / raw)
To: ALT Linux Team development discussions
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.
> И все должны сразу понять, что наступило ОНО?
>
> >
> > 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 "не как всегда" и на этом успокоиться?
>
> >
> > 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. В
> первую очередь нужно огласить аудиторию, для кого это делается и зачем.
> Текущий мантейнер llvm вряд ли понимает, зачем он его собирает.
Я так понял, у участников сообщества возник интерес заниматься проектами
экспериментальных языков программирования и их тулчейнами, такими как
crystal и ziglang, каждому из которых нужна определённая версия LLVM
(замечу, что в Сизифе уже есть как минимум rust из пользователей LLVM).
Для того, чтобы не бундлить её в каждый из этих проектов, Арсений
предложил вышеизложенную схему.
--
WBR,
Vladimir D. Seleznev
^ permalink raw reply [flat|nested] 29+ messages in thread
* Re: [devel] LLVM 11, поддержка нескольких llvm в репозитории
2020-10-14 11:56 ` Vladimir D. Seleznev
@ 2020-10-14 12:45 ` Konstantin Lepikhov
2020-10-14 13:58 ` Arseny Maslennikov
0 siblings, 1 reply; 29+ messages in thread
From: Konstantin Lepikhov @ 2020-10-14 12:45 UTC (permalink / raw)
To: ALT Linux Team development discussions
Hi Vladimir!
On 10/14/2020, at 02:56:37 PM you wrote:
<skip>
> > llvm это не toolchain, это framework для создания своего toolchain. В
> > первую очередь нужно огласить аудиторию, для кого это делается и зачем.
> > Текущий мантейнер llvm вряд ли понимает, зачем он его собирает.
>
> Я так понял, у участников сообщества возник интерес заниматься проектами
> экспериментальных языков программирования и их тулчейнами, такими как
> crystal и ziglang, каждому из которых нужна определённая версия LLVM
> (замечу, что в Сизифе уже есть как минимум rust из пользователей LLVM).
"особая версия" это major number или snapshot с нашими вкусными патчами?
Google Chrome собирается llvm/clang со вкусом google, но это не значит что
нужно тащить этот llvm в сизиф, потому что у нас есть chromium и его
гипотетически можно таким llvm собрать. Нет ничего плохого в собирании проекта со
своим llvm, если на это есть причина (как, например, для amdvlk), а вот
поддерживать потом этот зоопарк только ради красивой идеи как-то
бессмысленно.
> Для того, чтобы не бундлить её в каждый из этих проектов, Арсений
> предложил вышеизложенную схему.
>
Схема жизнеспособна только в определенных случаях.
--
WBR et al.
^ permalink raw reply [flat|nested] 29+ messages in thread
* Re: [devel] LLVM 11, поддержка нескольких llvm в репозитории
2020-10-14 9:41 ` Konstantin Lepikhov
2020-10-14 10:20 ` Andrey Savchenko
2020-10-14 11:56 ` Vladimir D. Seleznev
@ 2020-10-14 13:49 ` Arseny Maslennikov
2020-10-14 15:47 ` Konstantin Lepikhov
2020-10-19 15:40 ` Arseny Maslennikov
3 siblings, 1 reply; 29+ messages in thread
From: Arseny Maslennikov @ 2020-10-14 13:49 UTC (permalink / raw)
To: devel
[-- Attachment #1: Type: text/plain, Size: 10830 bytes --]
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.
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]
^ permalink raw reply [flat|nested] 29+ messages in thread
* Re: [devel] LLVM 11, поддержка нескольких llvm в репозитории
2020-10-14 12:45 ` Konstantin Lepikhov
@ 2020-10-14 13:58 ` Arseny Maslennikov
0 siblings, 0 replies; 29+ messages in thread
From: Arseny Maslennikov @ 2020-10-14 13:58 UTC (permalink / raw)
To: ALT Linux Team development discussions
[-- Attachment #1: Type: text/plain, Size: 3172 bytes --]
On Wed, Oct 14, 2020 at 02:45:52PM +0200, Konstantin Lepikhov wrote:
> Hi Vladimir!
>
> On 10/14/2020, at 02:56:37 PM you wrote:
>
> <skip>
> > > llvm это не toolchain, это framework для создания своего toolchain. В
Который распространяется в виде библиотек, которые далеко не все готовы ещё и
патчить, как мне представляется.
> > > первую очередь нужно огласить аудиторию, для кого это делается и зачем.
> > > Текущий мантейнер llvm вряд ли понимает, зачем он его собирает.
> >
> > Я так понял, у участников сообщества возник интерес заниматься проектами
> > экспериментальных языков программирования и их тулчейнами, такими как
> > crystal и ziglang, каждому из которых нужна определённая версия LLVM
> > (замечу, что в Сизифе уже есть как минимум rust из пользователей LLVM).
> "особая версия" это major number или snapshot с нашими вкусными патчами?
Major number.
Наши патчи не очень вкусные, кстати; обычные такие дистрибутивные.
> Google Chrome собирается llvm/clang со вкусом google, но это не значит что
А, вы про *их* патчи, извините тогда.
> нужно тащить этот llvm в сизиф, потому что у нас есть chromium и его
> гипотетически можно таким llvm собрать.
А кто-то, кроме Google, собирает Google Chrome? Мы зачем-то упаковываем
блобы, да.
Да и Google — это же денежная сарделька; они при желании могут учредить себе
карманную банановую республику добра, у них уже и суверенный интернет
есть — не то что мейнтейнить собственный LLVM.
> Нет ничего плохого в собирании проекта со
> своим llvm, если на это есть причина (как, например, для amdvlk), а вот
> поддерживать потом этот зоопарк только ради красивой идеи как-то
> бессмысленно.
>
> > Для того, чтобы не бундлить её в каждый из этих проектов, Арсений
> > предложил вышеизложенную схему.
> >
> Схема жизнеспособна только в определенных случаях.
>
> --
> WBR et al.
> _______________________________________________
> Devel mailing list
> Devel@lists.altlinux.org
> https://lists.altlinux.org/mailman/listinfo/devel
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]
^ permalink raw reply [flat|nested] 29+ messages in thread
* Re: [devel] LLVM 11, поддержка нескольких llvm в репозитории
2020-10-14 13:49 ` Arseny Maslennikov
@ 2020-10-14 15:47 ` Konstantin Lepikhov
2020-10-16 14:13 ` Vitaly Lipatov
0 siblings, 1 reply; 29+ messages in thread
From: Konstantin Lepikhov @ 2020-10-14 15:47 UTC (permalink / raw)
To: devel
Hi Arseny!
On 10/14/2020, at 04:49:15 PM you wrote:
<skip>
> > первую очередь нужно огласить аудиторию, для кого это делается и зачем.
> > Текущий мантейнер llvm вряд ли понимает, зачем он его собирает.
обращаю еще раз внимание на это цитирование.
Я собирал llvm/clang в сизиф с определенной целью - собрать firefox и
chromium наиболее оптимально по производительности и мы этого с @legion
добились (не знаю как сейчас). Mesa, которой все почему-то тыкают, можно
прекрасно собрать и со статическим llvm, и с llvm как специализованной
библиотекой причем без всяких lld/clang и даже x86 target'а. Т.е. у меня
была цель и она была озвучена (см. https://www.altlinux.org/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 туда?
Предлагаю сесть и подумать еще раз. Список выше - это зависимости, которых
может и не быть, если захотеть.
Если вы начали с пафоса и истерики, ожидайте такого же ответа.
--
WBR et al.
^ permalink raw reply [flat|nested] 29+ messages in thread
* Re: [devel] LLVM 11, поддержка нескольких llvm в репозитории
2020-10-14 15:47 ` Konstantin Lepikhov
@ 2020-10-16 14:13 ` Vitaly Lipatov
0 siblings, 0 replies; 29+ messages in thread
From: Vitaly Lipatov @ 2020-10-16 14:13 UTC (permalink / raw)
To: devel
Konstantin Lepikhov писал 14.10.20 18:47:
> Hi Arseny!
>
> On 10/14/2020, at 04:49:15 PM you wrote:
>
> <skip>
>> > первую очередь нужно огласить аудиторию, для кого это делается и зачем.
>> > Текущий мантейнер llvm вряд ли понимает, зачем он его собирает.
> обращаю еще раз внимание на это цитирование.
>
> Я собирал llvm/clang в сизиф с определенной целью - собрать firefox и
> chromium наиболее оптимально по производительности и мы этого с @legion
> добились (не знаю как сейчас). Mesa, которой все почему-то тыкают,
> можно
...
> Если же вы решили подонкихоствовать и научить мир собирать "правильно",
> то
> удачи. Если же у вас есть план как это сделать, то давайте его
> обсуждать.
...
Я не очень понимаю, почему нельзя просто иметь в репозитории свежий
clang? Без отсылок для чего это. Никто не же обосновывает, зачем нам gcc
в репозитории. Или glibc. Мне вот glibc не нравится.
--
С уважением,
Виталий Липатов,
ALT Linux Team
^ permalink raw reply [flat|nested] 29+ messages in thread
* Re: [devel] LLVM 11, поддержка нескольких llvm в репозитории
2020-10-14 9:41 ` Konstantin Lepikhov
` (2 preceding siblings ...)
2020-10-14 13:49 ` Arseny Maslennikov
@ 2020-10-19 15:40 ` Arseny Maslennikov
2020-10-19 16:31 ` Konstantin Lepikhov
3 siblings, 1 reply; 29+ messages in thread
From: Arseny Maslennikov @ 2020-10-19 15:40 UTC (permalink / raw)
To: devel
[-- Attachment #1.1: Type: text/plain, Size: 475 bytes --]
On Wed, Oct 14, 2020 at 11:41:00AM +0200, Konstantin Lepikhov wrote:
> Hi Arseny!
>
> Приведите полную ссылку на diff относительно текущей конфигурации пожалуйста.
>
> PS Меньше пафоса больше дела.
>
> --
> WBR et al.
В приложении сам diff.
Включать в дифф тарболлы с исходниками апстрима не вижу смысла.
[-- Attachment #1.2: llvm-10-11.diff --]
[-- Type: text/x-diff, Size: 17461 bytes --]
diff --git a/llvm10.spec b/llvm11.spec
index b8d4b6386..83c7f6535 100644
--- a/llvm10.spec
+++ b/llvm11.spec
@@ -1,7 +1,17 @@
-%global v_major 10.0
-%global llvm_name llvm%v_major
-%global clang_name clang%v_major
-%global lld_name lld%v_major
+%global v_major 11
+%global v_majmin %v_major.0
+%global llvm_name llvm%v_majmin
+%global clang_name clang%v_majmin
+%global lld_name lld%v_majmin
+
+%global llvm_prefix %_prefix/lib/llvm-%v_majmin
+%global llvm_bindir %llvm_prefix/bin
+%global llvm_libdir %llvm_prefix/%_lib
+%global llvm_includedir %llvm_prefix/include
+%global llvm_libexecdir %llvm_prefix/libexec
+%global llvm_datadir %llvm_prefix/share
+%global llvm_man1dir %llvm_datadir/man/man1
+%global llvm_docdir %llvm_datadir/doc
# Decrease debuginfo verbosity to reduce memory consumption during final library linking
%ifarch %ix86 %arm
@@ -19,11 +29,12 @@
%endif
Name: %llvm_name
-Version: 10.0.1
-Release: alt2
+Version: 11.0.0
+Release: alt1
Summary: The Low Level Virtual Machine
Group: Development/C
+# TODO: Apache-2-with-LLVM-exceptions
License: NCSA
Url: http://llvm.org
Source0: https://github.com/llvm/llvm-project/releases/download/llvmorg-%version/llvm-%version.src.tar.xz
@@ -38,30 +49,32 @@ Patch4: llvm-alt-triple.patch
Patch5: compiler-rt-9-alt-i586-arch.patch
Patch6: RH-0001-CMake-Split-static-library-exports-into-their-own-ex.patch
Patch7: clang-alt-aarch64-dynamic-linker-path.patch
-Patch8: 0001-Don-t-set-rpath-when-installing.patch
+#Patch8: 0001-Don-t-set-rpath-when-installing.patch # Is this needed?
Patch9: lld-9-alt-mipsel-permit-textrels-by-default.patch
Patch10: llvm-10-alt-python3.patch
-Patch11: CMake-CheckAtomic.cmake-catch-false-positives-in-RIS.patch
-Patch12: Support-Check-for-atomics64-when-deciding-if-latomic.patch
-Patch13: dsymutil-Explicitly-link-against-libatomic-when-nece.patch
-Patch14: llvm-10-alt-riscv64-config-guess.patch
-Patch15: llvm-upstream-D85007.patch
+#Patch11: CMake-CheckAtomic.cmake-catch-false-positives-in-RIS.patch # included in LLVM 11
+#Patch12: Support-Check-for-atomics64-when-deciding-if-latomic.patch # included in LLVM 11
+#Patch13: dsymutil-Explicitly-link-against-libatomic-when-nece.patch # included in LLVM 11
+#Patch14: llvm-10-alt-riscv64-config-guess.patch # we'll see
+#Patch15: llvm-upstream-D85007.patch # included in LLVM 11
-# ThinLTO requires /proc/cpuinfo to exists so the same does llvm
+# ThinLTO requires /proc/cpuinfo to exist; so the same does llvm
BuildPreReq: /proc
BuildRequires(pre): cmake >= 3.4.3
BuildRequires: rpm-build >= 4.0.4-alt112 libncursesw-devel
-BuildRequires: chrpath libstdc++-devel libffi-devel perl-Pod-Parser perl-devel
+BuildRequires: libstdc++-devel libffi-devel perl-Pod-Parser perl-devel
BuildRequires: python3-module-recommonmark zip zlib-devel binutils-devel ninja-build
%if_with clang
-BuildRequires: %clang_name %llvm_name-devel %lld_name
+#BuildRequires: %clang_name %llvm_name-devel %lld_name
+# Use LLVM/Clang/LLD 10 to bootstrap LLVM/Clang/LLD 11.
+BuildRequires: clang10.0 llvm10.0-devel lld10.0
%else
BuildRequires: gcc-c++
%endif
-Provides: llvm = %EVR
-Obsoletes: llvm < %version
+#Provides: llvm = %EVR
+#Obsoletes: llvm < %version
%description
LLVM is a compiler infrastructure designed for compile-time, link-time,
@@ -72,8 +85,8 @@ of programming tools as well as libraries with equivalent functionality.
%package devel
Group: Development/C
Summary: Libraries and header files for LLVM
-Provides: llvm-devel = %EVR
-Obsoletes: llvm-devel < %version
+#Provides: llvm-devel = %EVR
+#Obsoletes: llvm-devel < %version
Requires: %name = %EVR
%description devel
@@ -83,8 +96,8 @@ native programs that use the LLVM infrastructure.
%package devel-static
Summary: Static libraries for LLVM
Group: Development/C
-Provides: llvm-devel-static = %EVR
-Obsoletes: llvm-devel-static < %version
+#Provides: llvm-devel-static = %EVR
+#Obsoletes: llvm-devel-static < %version
Requires: %name-devel = %EVR
%description devel-static
@@ -102,8 +115,8 @@ Shared libraries for the LLVM compiler infrastructure.
Summary: Documentation for LLVM
Group: Documentation
BuildArch: noarch
-Provides: llvm-doc = %EVR
-Obsoletes: llvm-doc < %version
+#Provides: llvm-doc = %EVR
+#Obsoletes: llvm-doc < %version
%description doc
Documentation for the LLVM compiler infrastructure.
@@ -112,8 +125,8 @@ Documentation for the LLVM compiler infrastructure.
Summary: A C language family frontend for LLVM
Group: Development/C
Requires: gcc
-Provides: clang = %EVR
-Obsoletes: clang < %version
+#Provides: clang = %EVR
+#Obsoletes: clang < %version
%description -n %clang_name
clang: noun
@@ -135,8 +148,8 @@ Shared libraries for the clang compiler.
%package -n %clang_name-devel
Summary: Header files for clang
Group: Development/C
-Provides: clang-devel = %EVR
-Obsoletes: clang-devel < %version
+#Provides: clang-devel = %EVR
+#Obsoletes: clang-devel < %version
Requires: %clang_name = %EVR
%description -n %clang_name-devel
@@ -145,8 +158,8 @@ This package contains header files for the Clang compiler.
%package -n %clang_name-devel-static
Summary: Static libraries for clang
Group: Development/C
-Provides: clang-devel-static = %EVR
-Obsoletes: clang-devel-static < %version
+#Provides: clang-devel-static = %EVR
+#Obsoletes: clang-devel-static < %version
Requires: %clang_name-devel = %EVR
%description -n %clang_name-devel-static
@@ -156,8 +169,8 @@ This package contains static libraries for the Clang compiler.
Summary: A source code analysis framework
Group: Development/C
BuildArch: noarch
-Provides: clang-analyzer = %EVR
-Obsoletes: clang-analyzer < %version
+#Provides: clang-analyzer = %EVR
+#Obsoletes: clang-analyzer < %version
Requires: %clang_name = %EVR
%description -n %clang_name-analyzer
@@ -170,8 +183,8 @@ intended to run in tandem with a build of a project or code base.
Summary: Documentation for Clang
Group: Documentation
BuildArch: noarch
-Provides: clang-doc = %EVR
-Obsoletes: clang-doc < %version
+#Provides: clang-doc = %EVR
+#Obsoletes: clang-doc < %version
%description -n %clang_name-doc
Documentation for the Clang compiler front-end.
@@ -179,8 +192,8 @@ Documentation for the Clang compiler front-end.
%package -n %lld_name
Summary: LLD - The LLVM Linker
Group: Development/C
-Provides: lld = %EVR
-Obsoletes: lld < %version
+#Provides: lld = %EVR
+#Obsoletes: lld < %version
%description -n %lld_name
LLD is a linker from the LLVM project. That is a drop-in replacement for system
@@ -190,8 +203,8 @@ useful for toolchain developers.
%package -n %lld_name-devel
Summary: Header files for LLD
Group: Development/C
-Provides: lld-devel = %EVR
-Obsoletes: lld-devel < %version
+#Provides: lld-devel = %EVR
+#Obsoletes: lld-devel < %version
Requires: %lld_name = %EVR
%description -n %lld_name-devel
@@ -201,8 +214,8 @@ This package contains header files for the LLD linker.
Summary: Documentation for LLD
Group: Documentation
BuildArch: noarch
-Provides: lld-doc = %EVR
-Obsoletes: lld-doc < %version
+#Provides: lld-doc = %EVR
+#Obsoletes: lld-doc < %version
%description -n %lld_name-doc
Documentation for the LLD linker.
@@ -221,19 +234,22 @@ mv compiler-rt-%version.src projects/compiler-rt
%patch5 -p1 -b .alt-i586-arch
%patch6 -p1
%patch7 -p1 -b .alt-aarch64-dynamic-linker
-%patch8 -p1
+#patch8 -p1
%patch9 -p1 -b .alt-mipsel-permit-textrels-by-default
%patch10 -p1
-%patch11 -p1
-%patch12 -p1
-%patch13 -p1
-%patch14 -p1
-%patch15 -p2
+#patch11 -p1
+#patch12 -p1
+#patch13 -p1
+#patch14 -p1
+#patch15 -p2
%build
+%define _cmake_skip_rpath -DCMAKE_SKIP_RPATH:BOOL=OFF
%cmake -G Ninja \
-DLLVM_PARALLEL_LINK_JOBS=1 \
-DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_INSTALL_PREFIX=%llvm_prefix \
+ -DCMAKE_SKIP_INSTALL_RPATH:BOOL=OFF \
-DBUILD_SHARED_LIBS:BOOL=OFF \
-DLLVM_TARGETS_TO_BUILD="host;AMDGPU;BPF;NVPTX;" \
-DLLVM_EXPERIMENTAL_TARGETS_TO_BUILD='AVR' \
@@ -299,13 +315,13 @@ ninja -vvv -j %__nprocs -C BUILD
%install
pushd BUILD
-cmake -DCMAKE_INSTALL_PREFIX=%buildroot%prefix ../
+cmake -DCMAKE_INSTALL_PREFIX=%buildroot%llvm_prefix ../
sed -i 's|man\ tools/lld/docs/docs-lld-html|man|' build.ninja
sed -i '/^[[:space:]]*include.*tools\/lld\/docs\/cmake_install.cmake.*/d' tools/lld/cmake_install.cmake
popd
ninja -C BUILD install
-# And prepare Clang documentation
+# Prepare Clang documentation.
rm -rf BUILD/clang-docs
mkdir -p BUILD/clang-docs
for f in LICENSE.TXT NOTES.txt README.txt; do
@@ -313,111 +329,162 @@ for f in LICENSE.TXT NOTES.txt README.txt; do
done
rm -rf tools/clang/docs/{doxygen*,Makefile*,*.graffle,tools}
-install -m 0755 BUILD/%_lib/LLVMHello.so %buildroot%_libdir/
-install -m 0755 BUILD/%_lib/BugpointPasses.so %buildroot%_libdir/
-mkdir -p %buildroot%_docdir/lld
-
-file %buildroot%_bindir/* | awk -F: '$2~/ELF/{print $1}' | xargs -r chrpath -d
-file %buildroot%_libdir/*.so | awk -F: '$2~/ELF/{print $1}' | xargs -r chrpath -d
+install -m 0755 BUILD/%_lib/LLVMHello.so %buildroot%llvm_libdir/
+install -m 0755 BUILD/%_lib/BugpointPasses.so %buildroot%llvm_libdir/
+mkdir -p %buildroot%llvm_docdir/lld
%ifarch %ix86
-cd %buildroot%_libdir/clang/%version/lib/linux
+cd %buildroot%llvm_libdir/clang/%version/lib/linux
ls *-i[3-9]86* | while read f; do ln -s $f $(echo $f | sed 's|i[3-9]86|i386|') ; done
%endif
+# Symlink executables to %_bindir.
+mkdir -p %buildroot%_bindir
+for b in %buildroot%llvm_bindir/*; do
+ bb="$(basename "$b")"
+ echo "$bb" | grep -q -- '-%v_major$' && continue # if already appended
+ ln -srv "$b" "%buildroot%_bindir/$bb-%v_major"
+done
+# Symlink man pages to the man dirs.
+for mand in %buildroot%llvm_datadir/man/man*; do
+ mand_index="${mand##*/man}"
+ for m in "$mand"/*.[1-9]*; do
+ # Let's force compress the man page, then symlink it.
+ # /usr/lib/llvm-11.0/share/man/manD/utilX.D.xz -> /usr/share/man/manD/utilX-11.D.xz
+ # Otherwise, brp-alt(compress) keeps fucking us up.
+ # It remakes the symlinks first, then compresses their targets,
+ # severing the symlinks.
+ /usr/lib/rpm/compress_files "$m"
+
+ mb="$(basename "$m")" # e. g. llvm-ar.1.xz
+ new_mb="${mb%%.[1-9]*}-%v_major.$mand_index" # e. g. llvm-ar-11.1.xz
+
+ mkdir -p "%buildroot%_mandir/man$mand_index"
+ ln -srv "$m" "%buildroot%_mandir/man$mand_index/$new_mb"
+ done
+done
+
%check
%if_enabled tests
-LD_LIBRARY_PATH=%buildroot%_libdir:$LD_LIBRARY_PATH
+LD_LIBRARY_PATH=%buildroot%llvm_libdir:$LD_LIBRARY_PATH
export LD_LIBRARY_PATH
ninja -C BUILD check-all || :
%endif
%files
%doc CREDITS.TXT LICENSE.TXT README.txt
+%llvm_bindir/*
%_bindir/*
+%llvm_man1dir/*
%_man1dir/*
+%exclude %llvm_bindir/llvm-config*
%exclude %_bindir/llvm-config*
+%exclude %llvm_bindir/*clang*
%exclude %_bindir/*clang*
-%exclude %_bindir/c-index-test
+%exclude %llvm_bindir/c-index-test
+%exclude %_bindir/c-index-test-%v_major
+%exclude %llvm_bindir/scan-*
%exclude %_bindir/scan-*
-%exclude %_man1dir/llvm-config.1.*
-%exclude %_man1dir/clang.1*
-%exclude %_man1dir/scan-build.1*
+%exclude %llvm_man1dir/llvm-config.1.*
+%exclude %_man1dir/llvm-config-%v_major.1.*
+%exclude %llvm_man1dir/clang.1*
+%exclude %_man1dir/clang-%v_major.1*
+%exclude %llvm_man1dir/scan-build.1*
+%exclude %_man1dir/scan-build-%v_major.1*
+%exclude %llvm_bindir/lld*
%exclude %_bindir/lld*
-%exclude %_bindir/ld*.lld
-%exclude %_bindir/wasm-ld
+%exclude %llvm_bindir/ld*.lld
+%exclude %_bindir/ld*.lld-%v_major
+%exclude %llvm_bindir/wasm-ld
+%exclude %_bindir/wasm-ld-%v_major
%files libs
-%_libdir/libLLVM-*.so
-%_libdir/libLTO.so.*
-%_libdir/libRemarks.so.*
+%llvm_libdir/libLLVM-*.so
+%llvm_libdir/libLTO.so.*
+%llvm_libdir/libRemarks.so.*
%files devel
-%_bindir/llvm-config
-%_man1dir/llvm-config.1.*
-%_includedir/llvm
-%_includedir/llvm-c
-%_libdir/libLLVM.so
-%_libdir/libLTO.so
-%_libdir/LLVMgold.so
-%_libdir/libRemarks.so
-%_libdir/LLVMHello.so
-%_libdir/BugpointPasses.so
-%_datadir/cmake/Modules/llvm
-%_libdir/cmake/llvm/LLVMConfigExtensions.cmake
-%exclude %_datadir/cmake/Modules/llvm/LLVMStaticExports.cmake
+%llvm_bindir/llvm-config
+%_bindir/llvm-config-%v_major
+%llvm_man1dir/llvm-config.1.*
+%_man1dir/llvm-config-%v_major.1.*
+%llvm_includedir/llvm
+%llvm_includedir/llvm-c
+%llvm_libdir/libLLVM.so
+%llvm_libdir/libLTO.so
+%llvm_libdir/LLVMgold.so
+%llvm_libdir/libRemarks.so
+%llvm_libdir/LLVMHello.so
+%llvm_libdir/BugpointPasses.so
+%llvm_datadir/cmake/Modules/llvm
+%llvm_libdir/cmake/llvm/LLVMConfigExtensions.cmake
+%exclude %llvm_datadir/cmake/Modules/llvm/LLVMStaticExports.cmake
%files devel-static
-%_libdir/*.a
-%exclude %_libdir/libclang*.a
-%_datadir/cmake/Modules/llvm/LLVMStaticExports.cmake
+%llvm_libdir/*.a
+%exclude %llvm_libdir/libclang*.a
+%llvm_datadir/cmake/Modules/llvm/LLVMStaticExports.cmake
%files -n %clang_name
%doc BUILD/clang-docs/*
+%llvm_bindir/*clang*
%_bindir/*clang*
-%_bindir/c-index-test
-%_man1dir/clang.1*
+%llvm_bindir/c-index-test
+%_bindir/c-index-test-%v_major
+%llvm_man1dir/clang.1*
+%_man1dir/clang-%v_major.1*
%files -n %clang_name-libs
-%_libdir/clang
-%_libdir/libclang*.so.*
+%llvm_libdir/clang
+%llvm_libdir/libclang*.so.*
%files -n %clang_name-devel
-%_includedir/clang
-%_includedir/clang-c
-%_libdir/libclang*.so
-%_datadir/cmake/Modules/clang
+%llvm_includedir/clang
+%llvm_includedir/clang-c
+%llvm_libdir/libclang*.so
+%llvm_datadir/cmake/Modules/clang
%files -n %clang_name-devel-static
-%_libdir/libclang*.a
+%llvm_libdir/libclang*.a
%files -n %clang_name-analyzer
-%_prefix/libexec/*-analyzer
-%_bindir/scan-build
-%_bindir/scan-view
-%_datadir/scan-build
-%_datadir/scan-view
-%_man1dir/scan-build.1*
+%llvm_prefix/libexec/*-analyzer
+%llvm_bindir/scan-build
+%_bindir/scan-build-%v_major
+%llvm_bindir/scan-view
+%_bindir/scan-view-%v_major
+%llvm_datadir/scan-build
+%llvm_datadir/scan-view
+%llvm_man1dir/scan-build.1*
+%_man1dir/scan-build-%v_major.1*
%files -n %lld_name
+%llvm_bindir/lld*
%_bindir/lld*
-%_bindir/ld*.lld
-%_bindir/wasm-ld
+%llvm_bindir/ld*.lld
+%_bindir/ld*.lld-%v_major
+%llvm_bindir/wasm-ld
+%_bindir/wasm-ld-%v_major
%files -n %lld_name-devel
-%dir %_includedir/lld
-%_includedir/lld/*
+%dir %llvm_includedir/lld
+%llvm_includedir/lld/*
%files doc
-%doc %_docdir/llvm
+%doc %llvm_docdir/llvm
%files -n %clang_name-doc
-%doc %_docdir/clang
+%doc %llvm_docdir/clang
%files -n %lld_name-doc
-%doc %_docdir/lld
+%doc %llvm_docdir/lld
%changelog
+* Tue Oct 13 2020 Arseny Maslennikov <arseny@altlinux.org> 11.0.0-alt1
+- 11.0.0
+- Installed to /usr/lib/llvm-11.0 to ensure peaceful co-existence with other
+ LLVM versions.
+
* Wed Aug 12 2020 Aleksei Nikiforov <darktemplar@altlinux.org> 10.0.1-alt2
- Applied upstream patch which should fix ppc64le-specific issue.
diff --git a/clang-9-alt-triple.patch b/clang-9-alt-triple.patch
index c19f8fa57..5ff28808d 100644
--- a/clang-9-alt-triple.patch
+++ b/clang-9-alt-triple.patch
@@ -87,11 +87,10 @@
static const char *const RISCV32LibDirs[] = {"/lib32", "/lib"};
static const char *const RISCV32Triples[] = {"riscv32-unknown-linux-gnu",
-@@ -2090,6 +2092,7 @@ void Generic_GCC::GCCInstallationDetector::AddDefaultGCCPrefixes(
+@@ -2144,6 +2144,7 @@ void Generic_GCC::GCCInstallationDetector::AddDefaultGCCPrefixes(
static const char *const RISCV64Triples[] = {"riscv64-unknown-linux-gnu",
"riscv64-linux-gnu",
"riscv64-unknown-elf",
+ "riscv64-alt-linux",
+ "riscv64-redhat-linux",
"riscv64-suse-linux"};
-
- static const char *const SPARCv8LibDirs[] = {"/lib32", "/lib"};
diff --git a/lld-9-alt-mipsel-permit-textrels-by-default.patch b/lld-9-alt-mipsel-permit-textrels-by-default.patch
index 6c2e706ba..c94124f32 100644
--- a/lld-9-alt-mipsel-permit-textrels-by-default.patch
+++ b/lld-9-alt-mipsel-permit-textrels-by-default.patch
@@ -1,9 +1,9 @@
--- llvm-9.0.1.src/tools/lld/ELF/Driver.cpp.alt-mipsel-permit-textrels-by-default 2020-02-10 12:20:18.165558849 +0000
+++ llvm-9.0.1.src/tools/lld/ELF/Driver.cpp 2020-02-10 12:23:22.174099557 +0000
-@@ -936,7 +936,11 @@ static void readConfigs(opt::InputArgLis
- config->zRetpolineplt = hasZOption(args, "retpolineplt");
- config->zRodynamic = hasZOption(args, "rodynamic");
+@@ -1067,7 +1067,11 @@ static void readConfigs(opt::InputArgLis
+ config->zShstk = hasZOption(args, "shstk");
config->zStackSize = args::getZOptionValue(args, OPT_z, "stack-size", 0);
+ config->zStartStopVisibility = getZStartStopVisibility(args);
+#if defined __MIPSEL__ && !defined __mips64
+ Config->ZText = getZFlag(Args, "text", "notext", false);
+#else
@@ -11,4 +11,4 @@
+#endif
config->zWxneeded = hasZOption(args, "wxneeded");
- // Parse LTO options.
+ for (opt::Arg *arg : args.filtered(OPT_z)) {
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]
^ permalink raw reply [flat|nested] 29+ messages in thread
* Re: [devel] LLVM 11, поддержка нескольких llvm в репозитории
2020-10-19 15:40 ` Arseny Maslennikov
@ 2020-10-19 16:31 ` Konstantin Lepikhov
0 siblings, 0 replies; 29+ messages in thread
From: Konstantin Lepikhov @ 2020-10-19 16:31 UTC (permalink / raw)
To: devel
Hi Arseny!
On 10/19/2020, at 06:40:37 PM you wrote:
> On Wed, Oct 14, 2020 at 11:41:00AM +0200, Konstantin Lepikhov wrote:
> > Hi Arseny!
> >
> > Приведите полную ссылку на diff относительно текущей конфигурации пожалуйста.
> >
> > PS Меньше пафоса больше дела.
>
> В приложении сам diff.
> Включать в дифф тарболлы с исходниками апстрима не вижу смысла.
В сизифе я уже вижу llvm11, а ваши изменения почему-то относительно
llvm10. Наверное, стоит сделать rebase и сделать diff снова.
--
WBR et al.
^ permalink raw reply [flat|nested] 29+ messages in thread
* Re: [devel] LLVM 11, поддержка нескольких llvm в репозитории
2020-10-13 13:07 [devel] LLVM 11, поддержка нескольких llvm в репозитории Arseny Maslennikov
` (4 preceding siblings ...)
2020-10-14 9:41 ` Konstantin Lepikhov
@ 2020-10-20 9:33 ` Dmitry V. Levin
2020-10-20 10:15 ` Валерий Иноземцев
` (2 more replies)
5 siblings, 3 replies; 29+ messages in thread
From: Dmitry V. Levin @ 2020-10-20 9:33 UTC (permalink / raw)
To: ALT Devel discussion list
Hi,
On Tue, Oct 13, 2020 at 04:07:59PM +0300, Arseny Maslennikov wrote:
[...]
> Я планирую собрать LLVM 11 в префикс /usr/lib/llvm-11.0, с проброшенными
> симлинками на исполнимые файлы и маны. llvm = %EVR и прочие провайды без
> номерка в имени пока что предоставляться не будут, как и /usr/bin/clang,
> /usr/bin/ld.lld, etc.; пока будут /usr/bin/clang-11 и т. п., чтобы не
> создавать лишних волнений в чужих пакетах раньше времени — кто собирался
> с llvm, clang, lld, по-прежнему получат свою десяточку.
> Саму десяточку я не трогаю и думаю, что упаковывать по-новому её уже и
> не надо — но кто-то может и не согласиться.
У меня наивный вопрос, нельзя ли просто собирать llvm в Сизиф по той же схеме,
что и gcc?
--
ldv
^ permalink raw reply [flat|nested] 29+ messages in thread
* Re: [devel] LLVM 11, поддержка нескольких llvm в репозитории
2020-10-20 9:33 ` Dmitry V. Levin
@ 2020-10-20 10:15 ` Валерий Иноземцев
2020-10-20 10:31 ` Alexey Gladkov
2020-10-20 10:34 ` Dmitry V. Levin
2020-10-20 11:00 ` Konstantin Lepikhov
2020-10-20 11:15 ` Arseny Maslennikov
2 siblings, 2 replies; 29+ messages in thread
From: Валерий Иноземцев @ 2020-10-20 10:15 UTC (permalink / raw)
To: devel
[-- Attachment #1.1: Type: text/plain, Size: 552 bytes --]
20.10.2020 12:33, Dmitry V. Levin пишет:
[...]
> У меня наивный вопрос, нельзя ли просто собирать llvm в Сизиф по той же схеме,
> что и gcc?
можно. я даже почти это сделал. да только как выяснилось это никому не
нужно, а тратить кучу времени на поддержку этой ненужности с каждым
новым релизом смысла не вижу
--
Valery V. Inozemtsev
[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 195 bytes --]
^ permalink raw reply [flat|nested] 29+ messages in thread
* Re: [devel] LLVM 11, поддержка нескольких llvm в репозитории
2020-10-20 10:15 ` Валерий Иноземцев
@ 2020-10-20 10:31 ` Alexey Gladkov
2020-10-20 10:34 ` Dmitry V. Levin
1 sibling, 0 replies; 29+ messages in thread
From: Alexey Gladkov @ 2020-10-20 10:31 UTC (permalink / raw)
To: ALT Linux Team development discussions
[-- Attachment #1: Type: text/plain, Size: 793 bytes --]
On Tue, Oct 20, 2020 at 01:15:07PM +0300, Валерий Иноземцев wrote:
> 20.10.2020 12:33, Dmitry V. Levin пишет:
> [...]
> > У меня наивный вопрос, нельзя ли просто собирать llvm в Сизиф по той же схеме,
> > что и gcc?
>
> можно. я даже почти это сделал. да только как выяснилось это никому не
> нужно, а тратить кучу времени на поддержку этой ненужности с каждым
> новым релизом смысла не вижу
Это очень нужно. Я бы этим пользовался. Не всё можно собрать последней
версией.
--
Rgrds, legion
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 195 bytes --]
^ permalink raw reply [flat|nested] 29+ messages in thread
* Re: [devel] LLVM 11, поддержка нескольких llvm в репозитории
2020-10-20 10:15 ` Валерий Иноземцев
2020-10-20 10:31 ` Alexey Gladkov
@ 2020-10-20 10:34 ` Dmitry V. Levin
2020-10-20 10:45 ` Валерий Иноземцев
1 sibling, 1 reply; 29+ messages in thread
From: Dmitry V. Levin @ 2020-10-20 10:34 UTC (permalink / raw)
To: ALT Devel discussion list
On Tue, Oct 20, 2020 at 01:15:07PM +0300, Валерий Иноземцев wrote:
> 20.10.2020 12:33, Dmitry V. Levin пишет:
> [...]
> > У меня наивный вопрос, нельзя ли просто собирать llvm в Сизиф по той же схеме,
> > что и gcc?
>
> можно. я даже почти это сделал.
Почти не считается. :)
> да только как выяснилось это никому не нужно,
Что касается нужности, то в этом треде были приведены убедительные
аргументы в пользу востребованности разных версий llvm в репозитории.
> а тратить кучу времени на поддержку этой ненужности с каждым
> новым релизом смысла не вижу
Мой опыт с gcc подсказывает, что текущую схему упаковки gcc проще поддерживать.
Хуже всего в поддержке та схема упаковки llvm, которая сложилась сейчас:
дефолтная версия llvm вынужденно прибита гвоздями прямо в сборочной
системе и влияет сразу на все репозитории. См. напр.
https://bugzilla.altlinux.org/39087 - при нынешней схеме упаковки llvm
это практически невозможно исправить.
--
ldv
^ permalink raw reply [flat|nested] 29+ messages in thread
* Re: [devel] LLVM 11, поддержка нескольких llvm в репозитории
2020-10-20 10:34 ` Dmitry V. Levin
@ 2020-10-20 10:45 ` Валерий Иноземцев
0 siblings, 0 replies; 29+ messages in thread
From: Валерий Иноземцев @ 2020-10-20 10:45 UTC (permalink / raw)
To: devel
[-- Attachment #1.1: Type: text/plain, Size: 1921 bytes --]
20.10.2020 13:34, Dmitry V. Levin пишет:
> On Tue, Oct 20, 2020 at 01:15:07PM +0300, Валерий Иноземцев wrote:
>> 20.10.2020 12:33, Dmitry V. Levin пишет:
>> [...]
>>> У меня наивный вопрос, нельзя ли просто собирать llvm в Сизиф по той же схеме,
>>> что и gcc?
>>
>> можно. я даже почти это сделал.
>
> Почти не считается. :)
>
>> да только как выяснилось это никому не нужно,
>
> Что касается нужности, то в этом треде были приведены убедительные
> аргументы в пользу востребованности разных версий llvm в репозитории.
проснулись... спустя год
>> а тратить кучу времени на поддержку этой ненужности с каждым
>> новым релизом смысла не вижу
>
> Мой опыт с gcc подсказывает, что текущую схему упаковки gcc проще поддерживать.
gcc хотя бы предполагает наличие нескольких версий, а апстриму llvm это
невдомек
> Хуже всего в поддержке та схема упаковки llvm, которая сложилась сейчас:
> дефолтная версия llvm вынужденно прибита гвоздями прямо в сборочной
> системе и влияет сразу на все репозитории. См. напр.
> https://bugzilla.altlinux.org/39087 - при нынешней схеме упаковки llvm
> это практически невозможно исправить.
жесть какая то
--
Valery V. Inozemtsev
[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 195 bytes --]
^ permalink raw reply [flat|nested] 29+ messages in thread
* Re: [devel] LLVM 11, поддержка нескольких llvm в репозитории
2020-10-20 9:33 ` Dmitry V. Levin
2020-10-20 10:15 ` Валерий Иноземцев
@ 2020-10-20 11:00 ` Konstantin Lepikhov
2020-10-20 11:15 ` Arseny Maslennikov
2 siblings, 0 replies; 29+ messages in thread
From: Konstantin Lepikhov @ 2020-10-20 11:00 UTC (permalink / raw)
To: devel
Hi Dmitry!
On 10/20/2020, at 12:33:25 PM you wrote:
> Hi,
>
> On Tue, Oct 13, 2020 at 04:07:59PM +0300, Arseny Maslennikov wrote:
> [...]
> > Я планирую собрать LLVM 11 в префикс /usr/lib/llvm-11.0, с проброшенными
> > симлинками на исполнимые файлы и маны. llvm = %EVR и прочие провайды без
> > номерка в имени пока что предоставляться не будут, как и /usr/bin/clang,
> > /usr/bin/ld.lld, etc.; пока будут /usr/bin/clang-11 и т. п., чтобы не
> > создавать лишних волнений в чужих пакетах раньше времени — кто собирался
> > с llvm, clang, lld, по-прежнему получат свою десяточку.
> > Саму десяточку я не трогаю и думаю, что упаковывать по-новому её уже и
> > не надо — но кто-то может и не согласиться.
>
> У меня наивный вопрос, нельзя ли просто собирать llvm в Сизиф по той же схеме,
> что и gcc?
>
llvm это как gcc/egcc/pgcc/binutils в одном флаконе, слишком сильная
турбулентность )
Мне кажется, зря тут все затачиваются на gcc, проще считать llvm некой qt
library и брать схему упаковки оттуда. Т.е. есть префикс, есть все тулзы
там в префиксе и либы сбоку. А портировать всю схему из gcc это очень
хлопотно и не окупится, т.к. основная потребность иметь несколько версий
llvm - это либо проекты которые не переползли на новый llvm и их нужно как
то тянуть, либо какой-то свежак-свежак для новых фич. Остальное это
кастомные libllvm внутри проекта выпиливать которые нет смысла.
PS я не претендую на авторитетное мнение, просто IMHO.
--
WBR et al.
^ permalink raw reply [flat|nested] 29+ messages in thread
* Re: [devel] LLVM 11, поддержка нескольких llvm в репозитории
2020-10-20 9:33 ` Dmitry V. Levin
2020-10-20 10:15 ` Валерий Иноземцев
2020-10-20 11:00 ` Konstantin Lepikhov
@ 2020-10-20 11:15 ` Arseny Maslennikov
2 siblings, 0 replies; 29+ messages in thread
From: Arseny Maslennikov @ 2020-10-20 11:15 UTC (permalink / raw)
To: ALT Linux Team development discussions
[-- Attachment #1: Type: text/plain, Size: 1276 bytes --]
On Tue, Oct 20, 2020 at 12:33:25PM +0300, Dmitry V. Levin wrote:
> Hi,
>
> On Tue, Oct 13, 2020 at 04:07:59PM +0300, Arseny Maslennikov wrote:
> [...]
> > Я планирую собрать LLVM 11 в префикс /usr/lib/llvm-11.0, с проброшенными
> > симлинками на исполнимые файлы и маны. llvm = %EVR и прочие провайды без
> > номерка в имени пока что предоставляться не будут, как и /usr/bin/clang,
> > /usr/bin/ld.lld, etc.; пока будут /usr/bin/clang-11 и т. п., чтобы не
> > создавать лишних волнений в чужих пакетах раньше времени — кто собирался
> > с llvm, clang, lld, по-прежнему получат свою десяточку.
> > Саму десяточку я не трогаю и думаю, что упаковывать по-новому её уже и
> > не надо — но кто-то может и не согласиться.
>
> У меня наивный вопрос, нельзя ли просто собирать llvm в Сизиф по той же схеме,
> что и gcc?
>
Я к этому и стремлюсь.
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]
^ permalink raw reply [flat|nested] 29+ messages in thread
end of thread, other threads:[~2020-10-20 11:15 UTC | newest]
Thread overview: 29+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-10-13 13:07 [devel] LLVM 11, поддержка нескольких llvm в репозитории Arseny Maslennikov
2020-10-13 13:17 ` Aleksei Nikiforov
2020-10-13 13:40 ` Валерий Иноземцев
2020-10-13 15:58 ` Arseny Maslennikov
2020-10-13 14:00 ` Michael Shigorin
2020-10-13 16:10 ` Arseny Maslennikov
2020-10-13 14:02 ` Vitaly Lipatov
2020-10-13 15:42 ` Arseny Maslennikov
2020-10-13 18:26 ` Vitaly Lipatov
2020-10-13 15:51 ` Arseny Maslennikov
2020-10-13 17:34 ` Vitaly Lipatov
2020-10-14 9:41 ` Konstantin Lepikhov
2020-10-14 10:20 ` Andrey Savchenko
2020-10-14 10:55 ` Konstantin Lepikhov
2020-10-14 11:56 ` Vladimir D. Seleznev
2020-10-14 12:45 ` Konstantin Lepikhov
2020-10-14 13:58 ` Arseny Maslennikov
2020-10-14 13:49 ` Arseny Maslennikov
2020-10-14 15:47 ` Konstantin Lepikhov
2020-10-16 14:13 ` Vitaly Lipatov
2020-10-19 15:40 ` Arseny Maslennikov
2020-10-19 16:31 ` Konstantin Lepikhov
2020-10-20 9:33 ` Dmitry V. Levin
2020-10-20 10:15 ` Валерий Иноземцев
2020-10-20 10:31 ` Alexey Gladkov
2020-10-20 10:34 ` Dmitry V. Levin
2020-10-20 10:45 ` Валерий Иноземцев
2020-10-20 11:00 ` Konstantin Lepikhov
2020-10-20 11:15 ` Arseny Maslennikov
ALT Linux Team development discussions
This inbox may be cloned and mirrored by anyone:
git clone --mirror http://lore.altlinux.org/devel/0 devel/git/0.git
# If you have public-inbox 1.1+ installed, you may
# initialize and index your mirror using the following commands:
public-inbox-init -V2 devel devel/ http://lore.altlinux.org/devel \
devel@altlinux.org devel@altlinux.ru devel@lists.altlinux.org devel@lists.altlinux.ru devel@linux.iplabs.ru mandrake-russian@linuxteam.iplabs.ru sisyphus@linuxteam.iplabs.ru
public-inbox-index devel
Example config snippet for mirrors.
Newsgroup available over NNTP:
nntp://lore.altlinux.org/org.altlinux.lists.devel
AGPL code for this site: git clone https://public-inbox.org/public-inbox.git