Я столкнулся с несколькими случаями создания проектов, в которых используются общие библиотеки или динамически загружаемые модули, где модуль / библиотека зависит от другой библиотеки, но не проверяет, доступна ли общая копия, прежде чем пытаться связать. Это приводит к тому, что объектные файлы из статического архива (.a файл) втягиваются в результирующий .so, и, поскольку эти объектные файлы не являются PIC, результирующий .so файл либо имеет TEXTREL (очень низкая производительность загрузки и использование памяти), либо вообще не работает ( на таких арках, как x86_64, которые не поддерживают разделяемые библиотеки, отличные от PIC).
Есть ли способ заставить драйвер компилятора gcc отказываться связывать код статической библиотеки с выводом общей библиотеки? Это кажется трудным и сложным из-за возможной необходимости линковать минимальные суммы из libgcc.a и тому подобного ...