免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 3068 | 回复: 2
打印 上一主题 下一主题

HPUX上的线程本地存储TLS如何做呀? [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2005-11-28 17:32 |只看该作者 |倒序浏览
因为我们的系统使用的前后两个版本中有相同名称的函数存在,为了让它们可以同时使用,我们就在一个动态库中调用上一个版本的函数,使用一个NAMESPACE做区别。

在WINDOW上的时候,使用线程本地存储的方式,可以正常的执行。普通程序使用一个线程,可以正确的调用当前版本的函数,动态库使用一个线程,也可以正确的调用上一个版本的函数。

我现在想把这个系统移植到HPUX 2620 IA64 上。

动态库我编译的时候使用的是aCC +DD64 -D_REENTRANT +u1  +tls=static +z,编译成一个so的文件。

普通程序使用的是aCC +DD64 -D_REENTRANT +u1 -AA -mt 编译,编译的时候把生成的哪个so文件连接进来了。可以使用ldd命令看到连接的函数库中包含哪个so文件。

但是程序执行的时候在动态库中就不能正常的调用上一个版本的函数,而是直接找到当前版本的函数。不知道为什么?我究竟该如何才可以正确在HPUX上使用TLS的技术。

论坛徽章:
0
2 [报告]
发表于 2005-11-29 16:00 |只看该作者
搞不懂,你的问题和TLS有什么关系?

论坛徽章:
0
3 [报告]
发表于 2005-11-29 16:51 |只看该作者
我本来以为它跟TLS有关的,但是经过测试发现没有关系。

我编译的动态库有问题。

我自己写了一个小例子测试生成动态库,调用动态库,都可以正常的使用。

但是我们的哪个程序就是不能正常的调用动态库,也不知道为什么。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP