[devel] I: verify-elf for plugins etc. with RPM_LD_PRELOAD_xxxx & RPM_FILES_TO_LD_PRELOAD_xxxx; was: Re: python3-3.5 unmets

Ivan Zakharyaschev imz на altlinux.org
Вт Апр 5 00:45:23 MSK 2016


On Fri, 1 Apr 2016, Ivan Zakharyaschev wrote:

> (Им же в verify_elf делается LD_PRELOAD, чтобы не засорять лог сборки
> несущественными сообщениями об undefined symbols. Для случая, когда
> такая библиотека кладётся в системные /usr/lib/, есть макрос
> %requires_python_ABI_for_files; пример -- пакет boost или
> python3-module-pygobject или python-module-pygobject3. Иначе пакет не
> пропустят.)

Появился механизм для проверки всяких .so-плагинов на undefined symbols. 
Можно пользоваться (например, видел краем глаза обилие саодельных проверок 
в спеке apache). В качестве примера с помощью него реализована:

1. проверка всего внутри python*/site-packages/ (раньше были warnings)
2. а также макрос %requires_python3_ABI_for_files с явным указанием 
интересных файлов.

Принцип такой, что verify-elf понимает пары переменных окружения вида 
RPM_LD_PRELOAD_xxxx и RPM_FILES_TO_LD_PRELOAD_xxxx (в случае одного из 
питоноа в качестве идентификатора вместо xxxx выбрано python3, например).

Поверх этого можно реализовывать нужные Вам макросы или задействовать 
напрямую.

Как предлагает glebfm@, чтобы ld-preload-ить программы, а не библиотеки, 
они должны быть PIE.

-- 
Best regards,
Ivan


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