首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >vdso gettimeofday与64位内核和应用程序编译为32位

vdso gettimeofday与64位内核和应用程序编译为32位
EN

Stack Overflow用户
提问于 2016-08-17 12:02:57
回答 1查看 647关注 0票数 0

在带有glibc版本2.15的64位内核上运行的32位应用程序是否支持vdso?如果是,我如何使其适用于在64位内核上运行的32位应用程序?因为即使"linux-vdso.so.1“上的dlopen成功了,"__vdso_gettimeofday”上的dlsym也失败了。

在同一系统上,我可以从一个64位编译的应用程序中对"linux-vdso.so.1“执行dlopen &对"__vdso_gettimeofday”执行dlsym。

EN

回答 1

Stack Overflow用户

发布于 2016-08-18 14:40:32

在我的64位Linux 4.4.15上,32位vdso包含以下符号:

代码语言:javascript
复制
readelf -Ws vdso32

Symbol table '.dynsym' contains 9 entries:
   Num:    Value  Size Type    Bind   Vis      Ndx Name
     0: 00000000     0 NOTYPE  LOCAL  DEFAULT  UND
     1: 00000ce0     9 FUNC    GLOBAL DEFAULT   12 __kernel_sigreturn@@LINUX_2.5
     2: 00000d00    13 FUNC    GLOBAL DEFAULT   12 __kernel_vsyscall@@LINUX_2.5
     3: 00000ad0   438 FUNC    GLOBAL DEFAULT   12 __vdso_gettimeofday@@LINUX_2.6
     4: 00000c90    42 FUNC    GLOBAL DEFAULT   12 __vdso_time@@LINUX_2.6
     5: 00000770   853 FUNC    GLOBAL DEFAULT   12 __vdso_clock_gettime@@LINUX_2.6
     6: 00000cf0     8 FUNC    GLOBAL DEFAULT   12 __kernel_rt_sigreturn@@LINUX_2.5
     7: 00000000     0 OBJECT  GLOBAL DEFAULT  ABS LINUX_2.5
     8: 00000000     0 OBJECT  GLOBAL DEFAULT  ABS LINUX_2.6

这表明您正在寻找的__vdso_gettimeofday已添加到内核2.6中,并且您的内核版本较旧。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38987922

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档