문제

현재 SIP 스택 라이브러리(pjSIP)를 PSP 콘솔(PSPSDK 툴체인 사용)로 포팅하려고 하는데 makefile에 너무 많은 문제가 있습니다(적절한 변경 및 연결 문제 해결).

라이브러리 포팅에 대한 통찰력을 얻을 수 있는 좋은 텍스트, 책 또는 무언가를 아는 사람이 있습니까?

이 프로젝트가 포팅에 대해 제공하는 유일한 문서는 주요 OS에만 너무 전념하는 것 같습니다.

도움이 되었습니까?

해결책

PSP로 이식된 다른 라이브러리를 살펴보세요.Linux 버전의 라이브러리와 PSP 버전을 비교하면 표시됩니다.

또한 PSP가 POSIX와 얼마나 호환되는지 알아보세요. 그러면 라이브러리 포팅 작업이 얼마나 큰지 알 수 있습니다.

다른 팁

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

그러나 mips*를 검색하려면 호스트 mips allegrex(PSP CPU)를 알기 위해 구성 및 구성.ac 스크립트를 패치해야 할 수도 있습니다.-) 줄을 입력하고 다음과 같이 allegrex에 복제합니다.

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

그런 다음 make 명령을 실행하고 newlib에 필요한 모든 것이 있기를 바랍니다. 그렇지 않은 경우 누락된 기능에 대한 대안을 만들기만 하면 됩니다.

이식은 매우 플랫폼에 따라 다르므로 해당 주제에 대한 일반적인 문헌을 많이 찾을 수 없을 것 같습니다.

내 마음 속에는 다음과 같은 몇 가지 사항이 발생할 수 있습니다.

  • 엔디안
  • 단어 크기
  • 사용 가능한 라이브러리
  • 컴파일러 차이점
  • 링커 차이점(이미 본 적이 있음)
  • 주변 하드웨어 차이점
  • ...

좀 더 조사한 결과 ps2dev 포럼에서 다음 게시물을 발견했습니다.

PSP는 Unix 시스템이 아니며 pspsdk는 POSIX와 호환되지 않습니다.어떤 곳에서는 비슷하지만 POSIX 시스템에서 제대로 컴파일되는 코드를 가져와 작동시킬 수는 없습니다.예를 들어:

  • pspsdk는 glibc의 기능과 헤더 중 일부가 부족한 newlib를 사용합니다.
  • libc는 기본적으로 연결되어 있지 않으므로 일반적인 autoconf 테스트는 빌드에 실패합니다.
  • autoconf는 PSP에 대해 아무것도 모릅니다
  • PSP_MODULE_INFO를 정의하고 실행 파일에서 psp-fixup-imports를 실행해야 합니다. 그렇지 않으면 실행되지 않습니다.

(psp 및 pspware 저장소에) 이식된 다른 모든 라이브러리와 프로그램을 살펴봐야 합니다.예를 들어 모든 SDL 라이브러리는 autoconf를 사용합니다.

나는 이것이 내가 찾고 있던 것에 대한 더 자세한 정보를 제공하고 이미 포팅된 라이브러리를 조사하는 @[Jonathan Arkell]의 요점을 보여 준다고 생각합니다.

답장을 보내주셔서 감사합니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top