Идентификация ифунков в VDSO

Я вижу в vdso, что все функции помечены как STT_FUNC вместо STT_GNU_IFUNC. Особенно я знаю, что "gettimeofday" - это Ifunc.

Правда ли, что все функции в VDSO являются Ifuncs, поэтому они не помечены как таковые? если нет - Почему эти функции не помечены как Ifuncs?

Смотрите следующее в Ubuntu:

root@host:# objdump -T /lib/modules/3.13.0-32-generic/vdso/vdso.so

/lib/modules/3.13.0-32-generic/vdso/vdso.so:     file format elf64-x86-64

DYNAMIC SYMBOL TABLE:
ffffffffff700354 l    d  .eh_frame_hdr  0000000000000000      .eh_frame_hdr
ffffffffff700700  w   DF .text  00000000000005ad  LINUX_2.6   clock_gettime
0000000000000000 g    DO *ABS*  0000000000000000  LINUX_2.6   LINUX_2.6
ffffffffff700cb0 g    DF .text  00000000000002e5  LINUX_2.6   __vdso_gettimeofday
ffffffffff700fc0 g    DF .text  000000000000003d  LINUX_2.6   __vdso_getcpu
ffffffffff700cb0  w   DF .text  00000000000002e5  LINUX_2.6   gettimeofday
ffffffffff700fa0  w   DF .text  0000000000000016  LINUX_2.6   time
ffffffffff700fc0  w   DF .text  000000000000003d  LINUX_2.6   getcpu
ffffffffff700700 g    DF .text  00000000000005ad  LINUX_2.6   __vdso_clock_gettime
ffffffffff700fa0 g    DF .text  0000000000000016  LINUX_2.6   __vdso_time

0 ответов

Другие вопросы по тегам