2009-04-09 4 views
1

Je compile newlib pour une plate-forme PowerPC sur mesure sans système d'exploitation. Lire des informations sur le net Je me rends compte que j'ai besoin d'implémenter des fonctions de stub dans un sous-répertoire <newplatform> de libgloss. Ma confusion est à la façon dont cela va être pris quand je compile newlib. Est-ce la dernière partie de l'argument --target à configurer, par ex. powerpc-ibm-<newplatform>?indiquant libgloss machine lors de la construction de newlib pour plate-forme sur mesure

Si c'est le cas, alors je suppose que je devrais utiliser le même --target lors de la compilation de binutils et gcc?

Merci

Répondre

1

J'ai également porté newlib et GCC. Et je me souviens que je n'avais pas à faire beaucoup de choses pour faire fonctionner newlib (le portage de GCC, de gaz et de libbfd était la plus grande partie du travail).

juste eu à modifier certains fichiers sur nombres à virgule flottante, désactivez certains drapeaux POSIX/de SomeOtherStandard qui ont rendu pas utiliser certaines fonctions plus sophistiquées et à écrire le code de soutien pour longjmp/setjmp que la charge et le stockage registre d'état dans les tampons de saut. Mais vous devez certainement lui dire la cible en utilisant --target donc il utilise le bon sous-répertoire de la machine et autres joyeusetés. Je me souviens que je devais ajouter un petit code à configure.sub pour lui faire connaître ma cible et imprimer le trible de configuration complet (cpu-manufacturer-os ou similaire). J'ai juste trouvé que je devais aussi éditer un fichier appelé configure.host, qui définit certaines options pour votre cible (par exemple, si un système d'exploitation gère les signaux levés par raise, ou si newlib lui-même devrait simuler la manipulation).

J'ai utilisé this blog d'Anthony Green comme ligne directrice, où il décrit le portage de GCC, newlib et binutils. Je pense que c'est une excellente source lorsque vous devez le faire vous-même. Un plaisir à lire quand même. Il a fallu un total de 2 mois pour compiler et exécuter des programmes C amusants qui n'ont besoin que de C (avec des fonctions de lecture/écriture factices écrites dans le terminal du simulateur).

Donc, je pense que la quantité de travail est certainement gérable. Celui qui m'a rendu presque fou était les scripts de construction de libgloss. J'ai certainement été perdu dans ces magies autoconf :) En tout cas, je vous souhaite bonne chance! :)

0

Check out Porting Newlib.

Quote:

J'ai décidé que, après une semaine incroyablement difficile d'essayer d'obtenir newlib porté à mon propre système d'exploitation que je voudrais écrire un tutoriel qui décrit les exigences pour le portage newlib et comment le faire réellement. Je suppose que vous pouvez déjà charger des binaires de quelque part et que ces binaires sont compilés code C. Je suppose également que vous avez déjà une configuration d'interface syscall. Pourquoi attendre? Faisons craquer!

+0

merci pour le lien. J'avais déjà repéré cette page, mais cela ne couvre pas le fonctionnement des sous-répertoires par machine de libgloss, ce qui était ma confusion – sparklewhiskers

Questions connexes