Summary: | В python3-base задаются флаги сборки, которые потом переопределяются макросом python3_setup | ||
---|---|---|---|
Product: | Sisyphus | Reporter: | Vitaly Lipatov <lav> |
Component: | python3-base | Assignee: | Grigory Ustinov <grenka> |
Status: | CLOSED FIXED | QA Contact: | qa-sisyphus |
Severity: | normal | ||
Priority: | P5 | CC: | bircoph, george, glebfm, grenka, ilyakurdyukov, imz, mike, vitty |
Version: | unstable | ||
Hardware: | x86_64 | ||
OS: | Linux | ||
Bug Depends on: | |||
Bug Blocks: | 40278 |
Description
Vitaly Lipatov
2020-11-21 20:27:12 MSK
Также в PY_CORE_CFLAGS задаётся три флага -g и три -O3 (Ответ для Vitaly Lipatov на комментарий #1) > Также в PY_CORE_CFLAGS задаётся три флага -g и три -O3 четыре -O3 Скажите пожалуйста, какое поведение ожидается? (Ответ для Grigory Ustinov на комментарий #3) > Скажите пожалуйста, какое поведение ожидается? Как надо-то? (Ответ для Grigory Ustinov на комментарий #4) > (Ответ для Grigory Ustinov на комментарий #3) > > Скажите пожалуйста, какое поведение ожидается? > > Как надо-то? Я бы видел так, чтобы флаги соответствовали тому, что мы используем в rpm (%optflags): поменял бы -O3 на -O2 (по возможности не повторяя в каждом флаге по несколько раз. И убрал бы -g (кому нужно, тот добавит) По идее флаги в обсуждаемые файлы и должны попадать из %optflags при сборке пакета python3, так что не понимаю, откуда там -O3. python3-3.9.4-alt1 -> sisyphus: Mon Apr 05 2021 Grigory Ustinov <grenka@altlinux> 3.9.4-alt1 - Updated to upstream version 3.9.4. - Fix multiple -O3 and -g flags (Closes: #39329). > #see ALT39329
> %remove_optflags -g -O3
Полагаю, следом стоит добавить
%add_optflags %optflags
PS: это же касается и
> # remove -g and replace -O3 by -O2 in configure.ac
> # see ALT39329
> Patch1014: python3-fix-optflags.patch
Считаю странным воевать с апстримом на тему флагов оптимизации и _ломать_ их
не на те, которые указаны в %_optlevel и далее в %optflags, а прибив гвоздиком.
Предлагаю откатить эти изменения -- как минимум на %e2k, где по умолчанию у нас выставляется именно -O3, они деструктивны; подозреваю, что и на остальных архитектурах выменивают производительность на эстетику.
Может мне кто-то объяснить значение этой строки? %remove_optflags -g -O3 То есть из configure убрали -g и -O3, зачем убирать еще и из опций от сборочницы? А в configure добавили -O2. -g направленно удалён из %optflags, чтобы не было отладочной информации или какой в этом смысл? Чем вообще плох -O3, для важного с точки зрения производительности пакета? Вместо -O2 по умолчанию. Такое ощущение, что правка мало того что неправильно сделана, так еще и логика хромает. PreScriptum: обсуждение по существу пошло в bug 40278; здесь отвечу, чтобы заданные вопросы не остались подвешенными в воздухе. (Ответ для ilyakurdyukov на комментарий #9) > Может мне кто-то объяснить значение этой строки? > %remove_optflags -g -O3 "Удалить из _макроса_ optflags значения -g и -O3" > То есть из configure убрали -g и -O3, зачем убирать еще и из опций от > сборочницы? Видимо, попытались повыкашивать отовсюду. _Причина_ этой баги мне пока что всё так же неясна. И понял ли её Гриша, занявшись багой -- тоже. > А в configure добавили -O2. Это вообще чушь несусветная была -- если нет показаний именно к -O2 (или -O3, или -fчего-нибудь -- что обычно лучше знает апстрим), то добавлять надо -O%_optlevel (соответственно из спека, а не патчем). > Чем вообще плох -O3, для важного с точки зрения производительности пакета? > Вместо -O2 по умолчанию. Тем более что вполне вдумчивый vitty@ сделал -O3 давно и в явном виде. > Такое ощущение, что правка мало того что неправильно сделана, > так еще и логика хромает. Скорее "некогда вникать". Бывает. |