[devel] I: GCC >= 10 defaults to -fno-common

Andrey Savchenko bircoph на altlinux.org
Пт Дек 4 12:43:20 MSK 2020


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
----------- следующая часть -----------
Было удалено вложение не в текстовом формате...
Имя     : отсутствует
Тип     : application/pgp-signature
Размер  : 833 байтов
Описание: отсутствует
Url     : <http://lists.altlinux.org/pipermail/devel/attachments/20201204/4eea2aa4/attachment-0001.bin>


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