[devel] Утилиты для работы с setversions?

Alexey Tourbin alexey.tourbin на gmail.com
Вс Окт 27 01:38:40 MSK 2019


On Sat, Oct 26, 2019 at 6:10 PM Andrey Savchenko <bircoph на altlinux.org> wrote:
> On Sat, 26 Oct 2019 17:17:25 +0300 Alexey Tourbin wrote:
> > $ rpm -q --provides glibc-core |grep 'libdl.*set'
> > libdl.so.2()(64bit) = set:hdBjS1I4gQ8BohwImELo8Zh
> > $ ./a.out set:hdBjS1I4gQ8BohwImELo8Zh
> > 0272
> > 0a8f
> > 12b4
> > 1f1c
> > 1fb0
> > 23f5
> > 31a1
> > 3571
> > 35d3
> > 3bcb
>
> Как я понял, это хеши символов. По какому алгоритму они вычисляются?
> Мне нужно для имеющегося списка символов вычислить аналогичные хеши
> для дальнейшего сравнения.

Это set.c:hash(), но можно воспользоваться set_new/set_add, который
хеширует и сортирует строки по хешу.  Прикрепил более полный пример.

$ /usr/lib/rpm/provided_symbols /lib64/libdl.so.2 |./a.out
set:hdBjS1I4gQ8BohwImELo8Zh                                1
0272 dladdr1
0a8f _dlfcn_hook
12b4 dlsym
1f1c dlerror
1fb0 dlclose
23f5 dlopen
31a1 dlinfo
3571 dlvsym
35d3 dladdr
3bcb dlmopen
----------- следующая часть -----------
Было удалено вложение не в текстовом формате...
Имя     : printset.c
Тип     : text/x-csrc
Размер  : 1184 байтов
Описание: отсутствует
Url     : <http://lists.altlinux.org/pipermail/devel/attachments/20191027/9f346e6f/attachment.bin>


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