Domanda

Attualmente sto cercando di trasferire una libreria stack SIP (pjSIP) sulla console PSP (utilizzando la toolchain PSPSDK), ma ho troppi problemi con i makefile (apportando le modifiche appropriate e risolvendo problemi di collegamento).

Qualcuno conosce un buon testo, un libro o qualcosa per avere qualche idea sul porting delle librerie?

L'unica documentazione offerta da questo progetto sul porting sembra troppo dedicata ai principali sistemi operativi.

È stato utile?

Soluzione

Guarda le altre librerie che sono state trasferite sulla PSP.Fare differenze tra una versione Linux di una libreria e una versione PSP dovrebbe mostrartelo.

Inoltre, prova a sapere quanto è compatibile POSIX la PSP, questo ti dirà quanto è grande il lavoro di porting della libreria.

Altri suggerimenti

La PSP non è UNIX e non è compatibile con POSIX, tuttavia la toolchain open source è composta da gcc 4.3, bintutils 1.16.1 e newlib 1.16.

La maggior parte della libreria C è già presente e può compilare la maggior parte del codice.Molte librerie sono state portate semplicemente invocando lo script configure con i seguenti argomenti:

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

Tuttavia potrebbe essere necessario applicare una patch agli script configure e configure.ac per conoscere l'host mips allegrex (la CPU PSP), per farlo cercare un mips*--) e clonarlo nell'allegrex come:

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

Quindi esegui il comando make e speri che newlib abbia tutto ciò di cui hai bisogno, in caso contrario devi solo creare alternative alle funzioni che ti mancano.

Il porting è molto specifico per la piattaforma, quindi non penso che troverai molta letteratura generale sull'argomento.

Nella mia mente, alcune cose che potresti incontrare:

  • endianità
  • dimensione della parola
  • librerie disponibili
  • differenze del compilatore
  • differenze nel linker (l'hai già visto)
  • differenze hardware periferiche
  • ...

Ho fatto qualche ulteriore ricerca e ho trovato questo post sul forum ps2dev:

La PSP non è un sistema Unix e pspsdk non è compatibile con POSIX.In alcuni punti è vicino, ma non puoi aspettarti di prendere semplicemente un codice che si compila bene su un sistema POSIX e farlo funzionare.Per esempio:

  • pspsdk utilizza newlib, a cui mancano alcune funzionalità e intestazioni di glibc.
  • libc non è collegato per impostazione predefinita, quindi i tipici test di autoconf non verranno creati
  • autoconf non sa nulla della PSP
  • sono necessari la definizione di PSP_MODULE_INFO e l'esecuzione di psp-fixup-imports sull'eseguibile, altrimenti non verrà eseguito

Dovresti dare un'occhiata a tutte le altre librerie e programmi che sono stati portati (nei repository psp e pspware).Tutte le librerie SDL utilizzano autoconf, ad esempio.

Penso che questo fornisca maggiori dettagli su ciò che stavo cercando e mostri anche il punto di @[Jonathan Arkell] nell'esaminare le librerie che sono già state trasferite.

Grazie per le tue risposte

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top