[devel] mk-configure vs gcc (was: [cyber] I: Sisyphus-20200520 x86_64 beehive_status: +11 -15 (207))

Aleksey Cheusov vle на gmx.net
Ср Май 20 19:10:13 MSK 2020



20.05.2020, 15:16, "Gleb Fotengauer-Malinovskiy" <glebfm на altlinux.org>:
> On Wed, May 20, 2020 at 01:49:23PM +0300, Aleksey Cheusov wrote:
>>  > Или это значит, что после обновления компилятора
>>  > нужно пересобирать mk-configure?
>>
>>  Да. И я не знаю, как этого добиться.
>
> (Сейчас я просто его вручную пересобрал.)
>
> Ну, скажем, чтобы не забывать это делать можно написать в mk-configure
>
> Requires: gcc = %__gcc_version_base
> Requires: gcc%__gcc_version_base = %__gcc_version

С учетом вот этого замечания

| На %e2k есть такой же метапакет gcc, но с другой базовой версией
| (макрос %__gcc_version_base при этом работает, так что проблем с
| этим нет). А вот пакетов gcc%__gcc_version_base на самом деле нет,
| поэтому такая проверка не сработает. С другой стороны, с ветки на
| ветку мы прыгаем редко, поэтому мне не сложно будет ещё один пакет
| пересобрать.

я так и не понял, что нужно сделать, чтобы и e2k поддерживался без ifndef.

> Согласен, если есть возможность автоматически определять параметры
> среды, лучше её использовать.

Параметры среды как раз и определяются динамически -- во время сборки mk-c.
Если в системе компилятор, сажем, gcc-8.3.0,
зачем пересчитывать одно и тоже по сто раз?
Конфигурирационные переменные USE_{CC,CXX}_COMPILERS содержат список
компиляторов, особенности которых нужно собрать и сохранить в mk/ в процессе установки.
Скрипт mkc_compiler_settings нужен для того, чтобы оставалась возможность
собрать что-то любым другим/неродным компилятором, если очень хочется. При его запуске
особенности компилятора записываются пользователю в HOME.

> Первое чтобы привязаться к текущей (на момент сборки) ветке gcc, которая
> используется по умолчанию. Второе чтобы в этой ветке привязаться к
> конкретной версии. Ещё и всё это скорее всего под %ifnarch %e2k, потому
> что у них там отельный мир «Полезных ископаемых нет. Воды нет.
> Растительности нет...».

Наличие странных компиляторов меня абсолютно не пугает.
Самое худшее, что может произойти -- lcc распознается
как unknown версии 0.0.0. Поддержать его upsteam
несложно, надо что-нибудь прописать сюда
https://github.com/cheusov/mk-configure/blob/master/scripts/mkc_check_compiler.in
и, возможно, сюда
https://github.com/cheusov/mk-configure/blob/master/mk/mkc_imp.compiler_settings.mk

> Если при пересборке или после запуска mkc_compiler_settings инструмент может
> переварить, что компилятор поменялся, может его стоит научить это делать и
> без явного приминения этих средств?

См. выше.

>>  > Ещё в этих пакетах не используются наши дистрибутивные %optflags при
>>  > сборке, в итоге на первый взгляд даже -O там нет, напришиваются какие-то
>>  > макросы для использования mk-configure в спеках.
>>
>>  Макросы сделаю, да, чуть позже, когда разберусь с этим получше.
>>  Что касается флагов, можно выставить переменную COPTS.
>
> Ну вот проще было бы чтобы это тоже делал макрос,

Это понятно.



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