有关将SIP库移植到PSP的帮助

时间:2008-09-18 03:33:59

标签: c++ porting sip playstation-portable pspsdk

我目前正在尝试将SIP堆栈库(pjSIP)移植到PSP控制台(使用PSPSDK工具链),但我在使用makefile时遇到了太多麻烦(进行适当的更改并解决链接问题)。

有没有人知道一个好的文本,书籍或其他什么来获得关于移植库的一些见解?

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

4 个答案:

答案 0 :(得分:2)

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

另外,尝试了解POSSP与POSP的兼容性,这将告诉您移植库的工作量有多大。

答案 1 :(得分:2)

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

大多数C库已经存在,可以编译大部分代码。通过使用以下参数调用configure脚本,已经移植了许多库:

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

但是,您可能需要修补configure和configure.ac脚本以了解主机mips allegrex(PSP cpu),为此您搜索mips * - - )行并克隆它像allegrex一样:

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

然后你运行make命令并希望newlib拥有你所需要的一切,如果没有,那么你只需要创建你缺少的函数的替代品。

答案 2 :(得分:1)

移植是非常特定于平台的,所以我认为你不会找到关于这个主题的一般文献。

在我的脑海里,你可能会遇到一些事情:

  • 端序
  • 字号
  • 可用库
  • 编译器差异
  • 链接器差异(您已经看过那个)
  • 外围硬件差异
  • ...

答案 3 :(得分:0)

我做了更多的研究,并在ps2dev论坛发现了这篇文章:

  

PSP不是Unix系统,pspsdk不符合POSIX标准。它在某些地方很接近,但你不能指望在POSIX系统上只使用任何编译好的代码并让它工作。例如:

     
      
  • pspsdk使用newlib,缺少一些glibc的功能和标题。
  •   
  • 默认情况下没有链接libc,因此典型的autoconf测试将无法构建
  •   
  • autoconf对PSP一无所知
  •   
  • 定义PSP_MODULE_INFO并在可执行文件上运行psp-fixup-imports是必需的,否则它将无法运行
  •   
     

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

我认为这可以为我所寻找的内容提供更多细节,同时也展示了@ [Jonathan Arkell]关于已经移植过的图书馆的观点。

感谢您的回复。