Bon, je suis toujours sur le même exercice, créer tigcc/gcc4ti comme compilateur pour Codelite.
J'ai un souci à je ne sais quel niveau.
Voici la sortie de compilation :
/bin/sh -c 'make -j 1 -e -f Makefile'
----------Building project:[ as - Release ]----------
make[1]: Entering directory '/mnt/Data/prog/asc/as'
tigcc: /usr/local/share/gcc4ti/bin/m68k-coff-tigcc-gcc -v -Wall -Wextra -std=c99 -O2 -DUSE_TI89 -I. -MG -MP -MT./Release/main.c.o -MF./Release/main.c.o.d -MM -B/usr/local/share/gcc4ti/bin/ -I/usr/local/share/gcc4ti/include/c main.c -S -o main.s
Using built-in specs.
Target: m68k-coff
Configured with: ../../download/gcc.ti/configure --prefix=/usr/local/share/gcc4ti --program-prefix=m68k-coff-tigcc- --target=m68k-coff --with-gnu-as --disable-nls --disable-multilib --disable-shared --enable-static --disable-threads --disable-win32-registry --disable-checking --disable-werror --disable-pch --disable-mudflap --disable-libssp
Thread model: single
gcc version 4.1.2 (TIGCC 4.1.2-tigcc-4)
/usr/local/share/gcc4ti/bin/cc1 -E -quiet -v -I. -I/usr/local/share/gcc4ti/include/c -MM -MF./Release/main.c.o.d -MG -MP -MT./Release/main.c.o -D__TIGCC_ENV__ -D__INT_SHORT__ -DUSE_TI89 main.c -o main.s -std=c99 -Wall -Wextra -O2
#include "..." search starts here:
#include <...> search starts here:
.
/usr/local/share/gcc4ti/include/c
End of search list.
tigcc: /usr/local/share/gcc4ti/bin/tigcc-patcher main.s -o main.s
tigcc: /usr/local/share/gcc4ti/bin/m68k-coff-tigcc-as -mc68000 -I/usr/local/share/gcc4ti/include/s main.s -o main.o
tigcc: /usr/local/share/gcc4ti/bin/ld-tigcc -v main.o /usr/local/share/gcc4ti/lib/tigcc.a -o main
Error: No target calculators specified.
as.mk:99: recipe for target 'Release/main.c.o.d' failed
make[1]: *** [Release/main.c.o.d] Error 1
make[1]: Leaving directory '/mnt/Data/prog/asc/as'
Makefile:4: recipe for target 'All' failed
make: *** [All] Error 2
1 errors, 0 warnings
Ca se fait avec ce code source :
#include <tigcclib.h>
void _main(void)
{
return;
}
En fait j'obtiens un main.s vide, et la compilation échoue.
De manière étonnante, quand je compile à la main (
tigcc -DUSE_TI89 main.c -S -o main.s), j'ai bien un main.s valide :
.file "main.c"
#NO_APP
.text
tigcc_compiled.:
.text
#APP
.xdef _ti89
.text
.xdef _ti89ti
.text
.xdef __ref_all___startup_code
.text
.xdef __ref_all___detect_calc
.text
.xdef __ref_all___test_for_specific_calc
.text
.xdef __ref_all___test_for_89
.text
.set _A_LINE,0xA000
.text
.xdef __ref_all___kernel_format_data_var
.text
.xdef _tigcc_native
.text
.xdef __ref_all___nostub
.text
.xdef __ref_all___kernel_format_bss
.text
.xdef __ref_all___kernel_format_rom_calls
.text
.set MT_TEXT,0x8000
.text
.set MT_XREF,0x9000
.text
.set MT_ICON,0xA000
.text
.set MT_CASCADE,0x4000
#NO_APP
.text
.even
.globl __main
__main:
link.w %fp,#0
unlk %fp
rts
Du coup, je peux compiler, linker, et j'obtiens bien un .89z.
Alors, qu'est-ce qui pourrait déconner ?
J'ajoute aussi le makefile auto-généré, moi j'y comprends pas grand chose :
Fichier joint : as.mkedit -> bon, j'ai réappris (pour la troisième fois) à écrire un Makefile, c'est quand même plus simple, faudrait vraiment que j'enregistre cette techno une bonne fois pour toutes :/