2008-09-18 50 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有你所需要的,如果沒有的話你只需要創建你缺少的功能的替代品。