7Fermer9
Kevin KoflerLe 10/10/2015 à 22:37
Folco (./7) :
J'ai oublié ça : CC=tigcc -v -Wa,-l
Donc c'est bien ce que je dis:
Kevin Kofler (./6) :
Et si tu passes un flag comme -l ou --short-jumps à l'assembleur, ça va aussi poser problème parce que le suffixe :l n'est pas précisé.
Si tu ne veux pas passer un coup de sed ou modifier le patcher:
Kevin Kofler (./6) :
(Pour les ROM_CALLs, le patcher le rajoute automatiquement, mais les RAM_CALLs n'étaient à l'origine prévus que pour des variables, pas des fonctions, donc il n'y a pas cette logique pour les RAM_CALLs.)
alors retire -Wa,-l. (De toute façon, ça ne devrait pas être nécessaire avec l'optimisation du linker.)
Je m'occuperai du passage de jsr _RAM_CALL_xy à $F0xy plus tard, pour le moment c'est pas grave, l'essentiel est de résoudre le #2 du ./0
Mais si tu t'occupes de ça, ton bogue disparaîtra aussi.
Ah au fait, j'ai le message main.o: Warning: RAM calls cannot be relative; changing to absolute, j'ignore si c'est en rapport avec mon problème.
Bah oui, -Wa,-l t'assemble la commande en jsr _RAM_CALL_1D(%pc), ce qui n'est pas valide. (Le linker émet un relogement en abs.w, ce qui fait qu'il prend (signed short)&_RAM_CALL_1D et le rajoute au %pc, ce qui bien sûr t'envoie n'importe où.) ld-tigcc émet souvent des warnings là où d'autres outils émettraient une erreur, il faut prendre au sérieux ces warnings.