On Sat, May 16, 2009 at 01:09:10PM +0400, Boris Savelev wrote: > 16 мая 2009 г. 12:43 пользователь Alexey Tourbin написал: > > On Sat, May 16, 2009 at 12:32:14PM +0400, Boris Savelev wrote: > >> а что означает "bad_elf_symbols"? > >> http://git.altlinux.org/tasks/6284/task/log > > > > bad_elf_symbols означает глобальную проверку одновременно для всех > > имеющихся бинариков в репозитарии.  Она сбрабатывает только тогда, > > когда какого-то символа вообще нигде нет.  А если для undefined symbol > > в одном бинарике имеется определение в каком-то другом бинарике, то > > считается что всё нормально.  То есть связи между бинариками она вообще > > не анализирует. > > > > Эта проверка работает так: > > 1) Составляет полный список определенных символов (def) для всех > > бинариков в репозитарии. > > 2) Составляет полный список неопределенных/ссылочных символов (ref) для > > всех бинариков в репозитарии. > > 3) Из ref вычитает def, результат называется bad_elf_symbols. > > > > Наличие bad_elf_symbols обычно означает, что в бинарике содержатся > > вызовы несуществующих функций.  В момент вызова несуществующей функции > > всё упадёт (а с LD_BIND_NOW=1 упадёт сразу же). > > > ааа. дело в том что символы есть, но бинарник с нужными символами не в > %_bindir, а в %_libdir/%name/ > из-за этого проверка валится? Нет. Лучше давайте конкретно что-то рассмотрим. http://git.altlinux.org/tasks/6284/task/log x86_64: NEW bad_elf_symbols detected: monkeystudio-1.8.3.3-alt1.svn3087.x86_64.rpm /usr/lib64/monkeystudio/plugins/base/libAStyle.so U _ZN10BasePlugin11qt_metacallEN11QMetaObject4CallEiPPv Здесь говорится: файл /usr/lib64/monkeystudio/plugins/base/libAStyle.so содержит вызов функции _ZN10BasePlugin11qt_metacallEN11QMetaObject4CallEiPPv. Но эта функция нигде не определна, то есть не экспортируется ни в каком другом бинарике. В проверке bad_elf_symbols расположение файлов никак не влияет на проверку. В проверке /usr/lib/rpm/verify-elf расположение файлов влияет на проверку.