[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