On Wed, Feb 18, 2009 at 05:19:11PM +0300, Dmitry V. Levin wrote: > On Wed, Feb 18, 2009 at 03:06:46PM +0300, Alexey M. Tourbin wrote: > > Update of /people/at/packages/girar-builder.git > [...] > > + if [ -s $arch-bes.plus ]; then > > + echo " $arch: NEW bad_elf_symbols detected:" > > + cat $arch-bes.plus > > + rc=1 > > + fi >&2 > > Ну хорошо, а что мы будем делать в тех очень редких случаях, когда эти > "нехорошие" ссылки являются законными? > > Например, я видел такой вариант: процесс загружает elf shared object с > помощью dlopen, проверяет наличие в нём нужных ему символов с помощью > dlsym, и, если всё нужное нашлось, использует их напрямую. Хотя, > конечно, использование weak symbols в такой ситуации выглядит более > естественным. Только weak symbols. if (weak_symbol_function) ret = weak_symbol_function(args); > Будем ли мы исправлять весь код, который не пройдёт проверку на > "нехорошие" ссылки? Хоршо бы исправить код, особенно если он есть. Примерно половина существующих случаев bad_elf_symbols -- это проприетарные драйвера. [at@people ~]$ cut -f1 /ALT/qa-robot/bad_elf_symbols/*/dump.old |sort |uniq -c |sort -n |tail 48 virtualbox 141 nvidia_glx_1.0.7182 141 nvidia_glx_1.0.8756 141 nvidia_glx_1.0.8762 141 nvidia_glx_1.0.8774 141 nvidia_glx_1.0.8776 142 nvidia_glx_1.0.8178 158 matroxdriver_glx 276 fglrx_glx 618 monkeystudio [at@people ~]$ Кстати, новая проверка на bad_elf_symbols во многих отношениях похожа на проверку unmets. И сами эти понятия сходны. Понятию левого проприетарного бинарика в bad_elf_symbols будет соответствовать понятие левого проприетарного собранного пакета в unmets. Но пакеты без сборки мы вообще не допускаем, а вот левые бинарики допускаем.