On Thu, 3 Dec 2020 18:52:32 +0300 Dmitry V. Levin wrote: > On Thu, Dec 03, 2020 at 06:42:45PM +0300, Denis Medvedev wrote: > > On 12/3/20 6:14 PM, Dmitry V. Levin wrote: > > > Hi, > > > > > > В связи с предстоящим обновлением GCC в Сизифе, которое будет анонсировано > > > отдельно, я бы хотел обратить внимание на одно существенное изменение > > > в поведении GCC по умолчанию[1][2], начиная с версии 10: > > > > > > "GCC now defaults to -fno-common. As a result, global variable accesses > > > are more efficient on various targets. In C, global variables with > > > multiple tentative definitions now result in linker errors. > > > With -fcommon such definitions are silently merged during linking." > > > > > > В Сизифе около 400 пакетов, которые не готовы к этому изменению в GCC. > > > При попытке собрать эти пакеты происходит ошибка, сопровождающаяся > > > характерной диагностикой в логе сборки, например: > > > > > > /usr/bin/ld.default: CMakeFiles/genisoimage.dir/checksum.o:/usr/src/RPM/BUILD/cdrkit-1.1.11/genisoimage/genisoimage.h:379: multiple definition of `outfile'; CMakeFiles/genisoimage.dir/genisoimage.o:/usr/src/RPM/BUILD/cdrkit-1.1.11/genisoimage/genisoimage.h:379: first defined here > > > > > > Как правило, эта ошибка сборки - признак того, что пакет заброшен > > > или форкнут. Вот список всех таких пакетов: > > > > Годится такое описание по исправлению у нас? > > > > https://wiki.gentoo.org/wiki/Gcc_10_porting_notes/fno_common > > На мой взгляд, немного краткое, но вполне годится. > > Там нет главного рецепта: > попробовать обновить пакет, весьма вероятно, что всё уже исправлено. Его нет на wiki, поскольку к Gentoo этот рецепт не применим, т.к. абслютно нормальной практикой является одновременное наличие в репозитории нескольких версий пакета, а часто и возможность одновременной установки таковых версий. Хорошая практика, кстати. Понятно, что в Альте её в чистом виде не применить, т.к. пользователи уже бинарные пакеты получают. Однако, можно было бы хотя бы механизм альтернатив для разных пакетов предоставляющих одну и ту же библиотеку использовать. Увы, у нас и этого теперь нет. В итоге пострадали MPI, HPC и ещё много кто и не вполне понятно ради чего. Кроме того, метод решения проблем «посмотри в апстриме, форках и других дистрибутивах» является стандартным и его нет смысла повторять в каждом руководстве. Best regards, Andrew Savchenko