by parisse » 13 Aug 2019, 09:33
Je viens de regarder de plus pres le portage ARM fait par zardam (
https://zardam.github.io/post/numworks-giac/) pour voir comment adapter a giac-1.5.0. Pas de problemes pour compiler libtommath. Pour giac, ca semble compiler en allant dans le repertoire src et en copiant config.h.numworks dans config.h et en faisant make -f Makefile.numworks (il faut ajouter -fpermissive pour compiler input_lexer.o). On obtient une libgiac.a, donc libraire statique, j'ai donc l'impression qu'il n'y a pas de problemes de libstdc++, on verra vraiment au link final.
Justement pour le linkage final hardware, j'ai essaye de voir ce que zardam avait modifie dans le epsilon de l'epoque, je vois dans le fichier ion/src/device/boot/flash.ld ce qui suit:
- Code: Select all
...
SECTIONS {
.giac : {
. = ALIGN(4);
*libtommath.a:(.text);
*libtommath.a:(.text.*);
*libtommath.a:(.rodata);
*libtommath.a:(.rodata.*);
*libgiac.a:(.text);
*libgiac.a:(.text.*);
*libgiac.a:(.rodata);
*libgiac.a:(.rodata.*);
} >EXTFLASH
...
j'ai l'impression qu'il n'y en a plus besoin ici, mais je n'y connais rien.
Le Makefile principal de epsilon a l'epoque contenait en plus:
- Code: Select all
LDFLAGS := -L../giac-1.4.9/src -L../libtommath-0.39 -lgiac -ltommath $(LDFLAGS)
ca il va falloir bien sur faire l'equivalent pour PLATFORM=device uniquement dans scripts/config.mak.
Puis deux autres references a giac dans la suite:
- Code: Select all
ifdef OBJCOPY
products += $(products:.$(EXE)=.hex) $(products:.$(EXE)=.bin)
%.hex: %.$(EXE)
@echo "OBJCOPY $@"
@$(OBJCOPY) -O ihex $< $@
%.bin: %.$(EXE)
@echo "OBJCOPY $@"
@$(OBJCOPY) -O binary -R.giac $< $@
%-extflash.bin: %.$(EXE)
@echo "OBJCOPY $@"
@$(OBJCOPY) -O binary -j.giac --gap-fill 0xff --pad-to 0x90800000 $< $@
endif
mais la je n'ai pas l'impression que ca soit necessaire de faire des modifs.