Форум КриптоПро
»
Средства криптографической защиты информации
»
Linux, Solaris etc.
»
Предупреждения при линковке libcades.so на Linux: ".dynsym local symbol at index"
Статус: Новичок
Группы: Участники
Зарегистрирован: 15.02.2023(UTC) Сообщений: 2
|
Во время сборки проекта с участием libcades.so возникают предупреждения: Код:/usr/bin/ld: /opt/cprocsp/lib/amd64/libcades.so: .dynsym local symbol at index 75 (>= sh_info of 13)
/usr/bin/ld: /opt/cprocsp/lib/amd64/libcades.so: .dynsym local symbol at index 446 (>= sh_info of 13)
Окружение: Код:$ lsb_release -a ; ld --version
...
Description: Ubuntu 22.04.2 LTS
Release: 22.04
Codename: jammy
GNU ld (GNU Binutils for Ubuntu) 2.38
....
Версия libcades.so: (судя по названию пакета cprocsp-pki-cades-64_2.0.14589-1_amd64.deb): 2.0.14589-1 Я провёл небольшой ресёрч и выяснил, что формат ELF не предполагает использование LOCAL символов в GLOBAL сегменте: Цитата:In each symbol table, all symbols with STB_LOCAL binding precede the weak and global symbols. As ‘‘Sections’’ above describes, a symbol table section’s sh_info section header member holds the symbol table index for the first non-local symbol.
Ну или вот тут ещё: Цитата:In each symbol table, all symbols with STB_LOCAL binding precede the weak and global symbols. A symbol's type provides a general classification for the associated entity.
В libcades.so как раз по индексам 75 и 446 находятся LOCAL символы, хотя секция с ними закончилась на символе с индексом 12: Код:$ readelf --dyn-syms -W /opt/cprocsp/lib/amd64/libcades.so
Symbol table '.dynsym' contains 545 entries:
Num: Value Size Type Bind Vis Ndx Name
0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND
1: 0000000000042db8 0 SECTION LOCAL DEFAULT 8 .init
2: 0000000000044b00 0 SECTION LOCAL DEFAULT 10 .text
...
12: 00000000004c9d40 0 SECTION LOCAL DEFAULT 23 .bss # последний элемент LOCAL-секции
13: 0000000000000000 85 FUNC GLOBAL DEFAULT UND __cxa_atexit@GLIBC_2.2.5 (2)
...
75: 00000000004837c8 0 OBJECT LOCAL DEFAULT ABS _DYNAMIC # остальные символы тут GLOBAL и WEAK
...
446: 0000000000485398 0 OBJECT LOCAL DEFAULT ABS _GLOBAL_OFFSET_TABLE_ # остальные символы тут GLOBAL и WEAK
...
Есть предложения как можно поправить данную ситуацию?
|
|
|
|
Статус: Активный участник
Группы: Участники
Зарегистрирован: 31.05.2016(UTC) Сообщений: 2,616
Сказал(а) «Спасибо»: 610 раз Поблагодарили: 452 раз в 428 постах
|
Автор: vladiovv  (судя по названию пакета cprocsp-pki-cades-64_2.0.14589-1_amd64.deb): 2.0.14589-1 Как вариант проверить на крайней версии плагина: Код:cprocsp-pki-cades-64_2.0.14660-1_amd64.deb
|
|
|
|
Статус: Новичок
Группы: Участники
Зарегистрирован: 15.02.2023(UTC) Сообщений: 2
|
Автор: nickm  Автор: vladiovv  (судя по названию пакета cprocsp-pki-cades-64_2.0.14589-1_amd64.deb): 2.0.14589-1 Как вариант проверить на крайней версии плагина: Код:cprocsp-pki-cades-64_2.0.14660-1_amd64.deb
Спасибо за идею (это я что-то забыл с самого начала проверить). Попробовал. Но в плане сборки и корректности ELF ничего не изменилось к сожалению. Сборка: Код:/usr/bin/ld: /opt/cprocsp/lib/amd64/libcades.so: .dynsym local symbol at index 75 (>= sh_info of 13)
/usr/bin/ld: /opt/cprocsp/lib/amd64/libcades.so: .dynsym local symbol at index 446 (>= sh_info of 13)
таблица dynsym: Код:$ readelf --dyn-syms -W /opt/cprocsp/lib/amd64/libcades.so
Symbol table '.dynsym' contains 545 entries:
Num: Value Size Type Bind Vis Ndx Name
0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND
1: 0000000000042f18 0 SECTION LOCAL DEFAULT 8 .init
2: 0000000000044c60 0 SECTION LOCAL DEFAULT 10 .text
3: 00000000002b9388 0 SECTION LOCAL DEFAULT 11 .fini
4: 00000000002b93a0 0 SECTION LOCAL DEFAULT 12 .rodata
5: 00000000002cc538 0 SECTION LOCAL DEFAULT 13 .eh_frame_hdr
6: 00000000002e7d00 0 SECTION LOCAL DEFAULT 14 .eh_frame
7: 000000000035c834 0 SECTION LOCAL DEFAULT 15 .gcc_except_table
8: 0000000000485000 0 SECTION LOCAL DEFAULT 16 .ctors
9: 00000000004850b8 0 SECTION LOCAL DEFAULT 17 .dtors
10: 00000000004850c8 0 SECTION LOCAL DEFAULT 18 .jcr
11: 0000000000487b60 0 SECTION LOCAL DEFAULT 22 .data
12: 00000000004cb6c0 0 SECTION LOCAL DEFAULT 23 .bss
13: 0000000000000000 85 FUNC GLOBAL DEFAULT UND __cxa_atexit@GLIBC_2.2.5 (2)
...
75: 00000000004850d0 0 OBJECT LOCAL DEFAULT ABS _DYNAMIC
...
446: 0000000000486ca8 0 OBJECT LOCAL DEFAULT ABS _GLOBAL_OFFSET_TABLE_
...
|
|
|
|
Статус: Сотрудник
Группы: Администраторы, Участники Зарегистрирован: 16.04.2008(UTC) Сообщений: 1,499
Сказал(а) «Спасибо»: 42 раз Поблагодарили: 607 раз в 420 постах
|
Здравствуйте. Предположительно предупреждение обусловлено тем, что для широкой совместимости с разными Linux-ами мы собираем cades в довольно старом окружении. А в нём нет этих ограничений на ELF-ы. К лету мы планируем обновить окружение, подняв минимальные требования к ОС, на которую можно будет поставить cades, тогда проблема уйдёт. |
|
|
|
|
Статус: Сотрудник
Группы: Администраторы, Участники Зарегистрирован: 16.04.2008(UTC) Сообщений: 1,499
Сказал(а) «Спасибо»: 42 раз Поблагодарили: 607 раз в 420 постах
|
|
|
|
|
|
Форум КриптоПро
»
Средства криптографической защиты информации
»
Linux, Solaris etc.
»
Предупреждения при линковке libcades.so на Linux: ".dynsym local symbol at index"
Быстрый переход
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.
Important Information:
The Форум КриптоПро uses cookies. By continuing to browse this site, you are agreeing to our use of cookies.
More Details
Close