2

I see in the vdso that all functions are marked as STT_FUNC instead of STT_GNU_IFUNC. Especially I know "gettimeofday" is an Ifunc.

Is it true that all the functions in the VDSO are Ifuncs so they aren't tagged as such? if not - Why aren't these functions tagged as Ifuncs?

See the following on 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
4

0 回答 0