2008-09-18 47 views
2

我正在尝试将一个SIP堆栈库(pjSIP)移植到PSP控制台(使用PSPSDK工具链),但是我对makefile有太多的麻烦(使得适当的变化和解决链接问题)。关于将SIP库移植到PSP的帮助

有谁知道一个良好的文字,书籍或东西得到移植库的一些见解?

这个项目提供的唯一文档移植似乎太专用于主要的操作系统。

回答

2

看看被移植到PSP的其他库。在Linux版本的库和PSP版本之间做差异应该会显示出来。

另外,试着去了解POSIX如何兼容PSP,这将告诉你移植库的工作有多大。

1

移植是非常特定于平台的,所以我不认为你会发现关于这个问题很多普通文献。

把我的心顶,有些东西你可能会遇到:

  • 字节序
  • 字长
  • 可用库
  • 编译器的差异
  • 连接差异(你已经看到了那一个)
  • 外围硬件差异
  • ...
0

我做了一些更多的研究,发现这个帖子在论坛ps2dev:

的PSP是不是Unix系统,而PSPSDK不与POSIX兼容。它在某些地方很接近,但是你不能指望只需要在POSIX系统上编译好的代码并使其工作。例如:

  • pspsdk使用newlib,它缺少一些glibc的功能和头文件。
  • libc中默认情况下不联系,所以典型的autoconf测试将无法建立
  • 的autoconf一无所知PSP
  • 定义PSP_MODULE_INFO和运行上的可执行PSP-修正,进口是必要的,否则也不会运行

您应该查看已经移植的所有其他库和程序(在psp和pspware存储库中)。例如,所有的SDL库都使用autoconf。

我认为这提供了更多的细节到我正在寻找的东西中,并且还显示了@ [Jonathan Arkell]关于已经移植过的库的点。

感谢您的回复。

2

PSP不是UNIX,不符合POSIX标准,但开源工具链由gcc 4.3,bintutils 1.16.1和newlib 1.16组成。

大多数C库已经存在,并且可以编译大部分代码。图书馆的很多已经只是用下面的参数调用配置脚本移植:

LDFLAGS="-L$(psp-config --pspsdk-path)/lib -lc -lpspuser" ./configure --host psp --prefix=$(pwd)/../target/psp 

然而,你可能需要修补配置和configure.ac脚本知道主机MIPS一个Allegrex(PSP的CPU),以这样做,你搜索MIPS * - -)线,并将它克隆到像一个Allegrex:

mips*-*-*) 
    noconfigdirs="$noconfigdirs target-libgloss" 
    ;; 
mipsallegrex*-*-*) 
    noconfigdirs="$noconfigdirs target-libgloss" 
    ;; 

然后你运行make命令,并希望newlib有你所需要的,如果没有的话你只需要创建你缺少的功能的替代品。