Помощь по переносу библиотеки SIP на PSP - PullRequest
2 голосов
/ 18 сентября 2008

В настоящее время я пытаюсь перенести библиотеку стека SIP (pjSIP) на консоль PSP (используя набор инструментов PSPSDK), но у меня слишком много проблем с make-файлами (внесением соответствующих изменений и решением проблем с линковкой).

Кто-нибудь знает хороший текст, книгу или что-нибудь, чтобы получить представление о переносе библиотек?

Единственная документация, которую этот проект предлагает по переносу, кажется, слишком посвящена основным ОС.

Ответы [ 4 ]

2 голосов
/ 05 января 2009

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 и configure.ac, чтобы узнать хост mips allegrex (процессор PSP), чтобы выполнить поиск строки mips * - - и клонировать ее Аллегрекс, как:

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

Затем вы запускаете команду make и надеетесь, что у newlib есть все, что вам нужно, а если нет, то вам просто нужно создать альтернативы отсутствующим функциям.

2 голосов
/ 18 сентября 2008

Посмотрите на другие библиотеки, которые были перенесены на PSP. Выполнение различий между версией библиотеки linux и версией PSP покажет вам.

Также попытайтесь узнать, насколько PSPIX-совместим PSP, и вы узнаете, насколько велика работа по переносу библиотеки.

1 голос
/ 18 сентября 2008

Портирование зависит от платформы, поэтому я не думаю, что вы найдете много общей литературы по этому вопросу.

С моей головы, некоторые вещи, с которыми вы можете столкнуться:

  • * 1006 порядок байт *
  • размер слова
  • доступные библиотеки
  • Отличия компилятора
  • различия линкера (вы уже видели это)
  • различия периферийного оборудования
  • ...
0 голосов
/ 18 сентября 2008

Я провел еще несколько исследований и нашел этот пост на форуме ps2dev:

PSP не является системой Unix, а pspsdk не совместим с POSIX. В некоторых местах он близок, но вы не можете ожидать, что просто возьмете любой код, который прекрасно скомпилируется в системе POSIX, и он заработает. Например:

  • pspsdk использует newlib, в котором отсутствуют некоторые функции и заголовки glibc.
  • libc по умолчанию не связан, поэтому типичные тесты autoconf не удастся собрать
  • autoconf ничего не знает о PSP
  • требуется определение PSP_MODULE_INFO и запуск psp-fixup-import для исполняемого файла, в противном случае он не запустится

Вы должны посмотреть на все другие библиотеки и программы, которые были портированы (в репозиториях psp и pspware). Например, все библиотеки SDL используют autoconf.

Я думаю, что это дает больше деталей в том, что я искал, а также показывает @ [Jonathan Arkell] точку поиска библиотек, которые уже были портированы.

Спасибо за ваши ответы.

...