ちょっとやりたいことがあって、MicroPythonをダウンロードしてビルドした。
micropython/micropython: MicroPython - a lean and efficient Python implementation for microcontrollers and constrained systems via kwout
sudo apt install -y libffi-dev git clone https://github.com/micropython/micropython.git cd micropython/ git submodule update --init make axtls make
なるほど、MicroPython、それなりにでっかい。
size -A ./micropython ./micropython : section size addr .interp 28 4194872 .note.ABI-tag 32 4194900 .note.gnu.build-id 36 4194932 .gnu.hash 380 4194968 .dynsym 3864 4195352 .dynstr 1586 4199216 .gnu.version 322 4200802 .gnu.version_r 208 4201128 .rela.dyn 312 4201336 .rela.plt 3144 4201648 .init 26 4204792 .plt 2112 4204832 .plt.got 8 4206944 .text 234112 4206960 .fini 9 4441072 .rodata 76929 4441088 .eh_frame_hdr 11740 4518020 .eh_frame 57748 4529760 .init_array 8 6688208 .fini_array 8 6688216 .jcr 8 6688224 .dynamic 528 6688232 .got 8 6688760 .got.plt 1072 6688768 .data 4288 6689856 .bss 2464 6694144 .comment 52 0 Total 401032
なるほど、次に、QEMU-ARMでは?
cd ../qemu-arm make ... CC ../../lib/libm/sf_ldexp.c CC ../../lib/libm/asinfacosf.c CC ../../lib/libm/atanf.c CC ../../lib/libm/atan2f.c CC ../../lib/utils/sys_stdio_mphal.c CC main.c /opt/Xilinx/SDK/2017.1/gnu/aarch32/lin/gcc-arm-none-eabi/bin/../lib/gcc/arm-none-eabi/6.2.1/../../../../arm-none-eabi/bin/ld: -lc_nano が見つかりません collect2: error: ld returned 1 exit status
あれ、Xilinxのツール使ってしまった。ってか-lc_nanoって何だろう?
cd ../ cp qemu-arm qemu-riscv -r cd qemu-riscv make
うーん、途中で失敗した。
CC ../../py/emitinlinextensa.c CC ../../py/formatfloat.c CC ../../py/parsenumbase.c CC ../../py/parsenum.c CC ../../py/emitglue.c CC ../../py/persistentcode.c CC ../../py/runtime.c CC ../../py/runtime_utils.c CC ../../py/scheduler.c CC ../../py/nativeglue.c ../../py/nativeglue.c:158:5: error: 'nlr_push' undeclared here (not in a function) nlr_push, ^~~~~~~~ ../../py/nativeglue.c:159:5: error: 'nlr_pop' undeclared here (not in a function) nlr_pop, ^~~~~~~ ../../py/mkrules.mk:47: ターゲット 'build/py/nativeglue.o' のレシピで失敗しました make: *** [build/py/nativeglue.o] エラー 1
ちょっと先は長そうだ。