识别VDSO中的Ifuncs

时间:2014-09-22 07:14:10

标签: linux linux-kernel 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 个答案:

没有答案