LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
12
返回列表 发新帖
楼主: 月魄孤魂

milkline 兄,你在AUR上问的newlib的问题解决没有,我也出现同样的问题?

[复制链接]
发表于 2011-10-14 22:34:25 | 显示全部楼层
ARM架构内核支持OABI/EABI调用规则,syscall基本原理是设置r0/r1等寄存器传递系统调用功能号和参数,然后执行swi触发软中断进入内核。
clib用汇编或者inline实现一个(或几个)syscall()函数,然后其他部分调用额个syscall()和内核打交道。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2011-10-15 00:46:40 | 显示全部楼层
目前还没上OS。
大致浏览了下newlib的printf的源码,使用的stdout是一个值为0的文件指针——有点迷惑。
似乎newlib在ARM上的syscall是通过libgloss实现的。
但我在没有使用libgloss的情况下使用printf,发现却链接了一大堆的syscall函数——不解。(找到原因了:没有指定自定义的函数就会使用libnosys中的虚假函数)
回复 支持 反对

使用道具 举报

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

本版积分规则

快速回复 返回顶部 返回列表