免费注册 查看新帖 |

Chinaunix

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

[已解决]移植基于matrixssl的程序到arm7上遇到SIGSEGV [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2008-08-05 11:26 |只看该作者 |倒序浏览
小弟最近要把matrixssl移植到arm7(Winbond W90P710)下使用(Linux version 2.4.20-uc0)
在PC(centos4)上matrixssl静/动态编译,样例程序/修改后程序均正常使用;

交叉编译(arm-elf-)后:
源码里的样例程序在arm7下运行时无反应,里面的printf等信息都没有,只有ps能看到进程;
基于源码修改的小程序,显示SIGSEGV...

       # ldd httpsReflector
        libc.so.6 => /lib/tls/libc.so.6 (0x004f9000)
        libpthread.so.0 => /lib/tls/libpthread.so.0 (0x00755000)
        ../src/libmatrixssl.so (0x0088a000)
        /lib/ld-linux.so.2 (0x004df000)

(静态编译时,已手动添加-lc,-lpthread,-lmatrixsslstatic)


小弟水平有限,现在不知道该怎么改好,又没有积分,请赐教,不胜感激!

[ 本帖最后由 tr1um7h 于 2008-8-6 13:58 编辑 ]

论坛徽章:
0
2 [报告]
发表于 2008-08-06 13:57 |只看该作者
现在终于弄出来了,因为赶进度抱歉具体过程省略,我把做的过程简单报告下

1)将源程序只保留printf语句
输出:
Unhandled fault: external abort on linefetch (F4) at 0x00000001
fault-common.c(97): start_code=0x35a040, start_stack=0x3d6f54)
Bus error
解决办法:将交叉编译器从arm_tools_3.0换成arm_tools_3.3.4

2)重新编译,执行
输出:
pthread_mutex().....undefined.....
解决办法:
到src/oslayer.h里#ifdef MULTI_THREADING处
将linux条件下的几个函数注释掉
//extern int32  sslCreateMutex(sslMutex_t *mutex);
//extern int32  sslLockMutex(sslMutex_t *mutex);
//extern int32  sslUnlockMutex(sslMutex_t *mutex);
//extern void   sslDestroyMutex(sslMutex_t *mutex);

3)再编译,执行
输出:
BINFMT_FLAT: reloc outside program   ...
SIGSEGV
解决办法:
编译参数问题,保证-elf2flt(我已添加),去掉-O

4)再编译,执行
输出:
终于成功了.....

:- D

[ 本帖最后由 tr1um7h 于 2008-8-6 14:02 编辑 ]

评分

参与人数 1可用积分 +15 收起 理由
bitmilong + 15 分享系一種美德

查看全部评分

您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP