ALT Linux Team development discussions
 help / color / mirror / Atom feed
* [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