Question

J'essaie actuellement de porter une bibliothèque de piles SIP (pjSIP) sur la console PSP (à l'aide de la chaîne d'outils PSPSDK), mais je rencontre trop de problèmes avec les fichiers makefiles (modifications correctes et résolution des problèmes de liaison).

Quelqu'un connaît-il un bon texte, un bon livre ou un moyen de mieux comprendre le portage des bibliothèques?

La seule documentation offerte par ce projet sur le portage semble trop dédiée aux principaux systèmes d'exploitation.

Était-ce utile?

La solution

Examinez les autres bibliothèques qui ont été transférées sur la PSP. Faire des différences entre une version linux d’une bibliothèque et une version PSP devrait vous montrer.

Essayez également de savoir en quoi la PSP est compatible POSIX, cela vous indiquera l’ampleur du travail de portage de la bibliothèque.

Autres conseils

La PSP n’est ni UNIX ni compatible POSIX. Toutefois, la chaîne d’outils open source est composée de gcc 4.3, de bintutils 1.16.1 et de newlib 1.16.

La plupart de la bibliothèque C est déjà présente et peut compiler la majeure partie de votre code. De nombreuses bibliothèques ont été portées simplement en appelant le script configure avec les arguments suivants:

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

Cependant, vous devrez peut-être appliquer des correctifs à vos scripts configure et configure.ac pour connaître l'hôte mips allegrex (le processeur de la PSP). Pour ce faire, vous devez rechercher une ligne mips * - - et le cloner. à l'allégrex comme:

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

Ensuite, vous exécutez la commande make et espérez que newlib a tout ce dont vous avez besoin. Sinon, il vous suffira de créer des alternatives aux fonctions qui vous manquent.

Le portage étant très spécifique à une plate-forme, je ne pense pas que vous trouverez beaucoup de littérature générale sur le sujet.

En tête de mon esprit, certaines choses que vous pourriez rencontrer:

  • endianness
  • taille du mot
  • bibliothèques disponibles
  • différences entre les compilateurs
  • différences entre les lieurs (vous l'avez déjà vu)
  • différences de matériel périphérique
  • ...

J'ai effectué d'autres recherches et trouvé ce post sur le forum ps2dev:

  

La PSP n’est pas un système Unix et le pspsdk n’est pas compatible POSIX. C'est proche à certains endroits, mais vous ne pouvez pas vous attendre à prendre n'importe quel code qui compile correctement sur un système POSIX et à le faire fonctionner. Par exemple:

     
      
  • pspsdk utilise newlib, qui manque certaines fonctionnalités et en-têtes de glibc.
  •   
  • libc n'est pas liée par défaut, les tests autoconf classiques échoueront à la construction
  •   
  • autoconf ne sait rien de la PSP
  •   
  • Il est nécessaire de définir PSP_MODULE_INFO et d'exécuter psp-fixup-imports sur l'exécutable, sinon l'application ne s'exécutera pas
  •   
     

Vous devriez examiner toutes les autres bibliothèques et programmes portés (dans les référentiels psp et pspware). Toutes les bibliothèques SDL utilisent autoconf, par exemple.

Je pense que cela fournit plus de détails sur ce que je cherchais et montre également le but de [[Jonathan Arkell]] de rechercher des bibliothèques déjà portées.

Merci pour vos réponses.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top