私のプロジェクト一式(wikiのサンプル含む)全てコンパイル通らなくなってるじゃないですか。バージョン上げたらこの仕打ち(n回目。やだー。
# Link _bin/test.elf C:/devkitPro/devkitARM/bin/../lib/gcc/arm-none-eabi/14.2.0/../../../../arm-none-eabi/bin/ld.exe:--defsym:1: undefined symbol `__sync_synchronize_none' referenced in expression collect2.exe: error: ld returned 1 exit status
調べたら今回のバージョンでgba.spacesが変わっていました。
%include <sync-none.specs> *link: + -T gba_cart.ld%s --gc-sections --no-warn-rwx-segments *startfile: gba_crt0%O%s crti%O%s crtbegin%O%s
1行目のsync-none.specsは以下のように定義されています。
%rename link sync_sync_link *link: --defsym=__sync_synchronize=__sync_synchronize_none %(sync_sync_link)
んでこの「__sync_synchronize_none」なるものは「libgcc.a」で定義されている。ようするに私のmakefileで「-nostdlib」していることが原因。ld.exeはstdlibの「libgcc.a」内で定義されている「__sync_synchronize_none」が行方不明でどうなってんの?怒っているわけだ。あーー・・・古いgba.spacesは自分のプロジェクトに移譲で。簡単な解決方法はnostdlibを削ることです。年末はwiki直し決定かな・・・(遠い目。
追記:どうもgcc側の対応のようです。
github.com
追記:2025/7
「-nostdlib」が使えるようになりました!やったー!