gcc-4.7.2でh8300-elfをビルドすると
/tmp/ccDjD4Ol.s: Assembler messages:
/tmp/ccDjD4Ol.s:88845: Error: value of 70656 too large for field of 2 bytes at 23321
/tmp/ccDjD4Ol.s:88970: Error: value of 70656 too large for field of 2 bytes at 23515
このメッセージが出て、失敗します。
この回避方法はgcc/config/h8300.hに
/* We want dwarf2 info available to gdb. */
#define DWARF2_DEBUGGING_INFO 1
+#define DWARF2_ADDR_SIZE 4この行を追加します。
で、また、ビルドすると
/home/kenrou/temp/gcc/h8300/h8300-elf/h8300h/normal/int32/libstdc++-v3/include
/bits/vector.tcc:397:7: エラー: 二進式内で型不一致ですshort int
intshort intD.116450 = D.116449 /[ex] 4;/home/kenrou/temp/gcc/h8300/h8300-elf/h8300h/normal/int32/libstdc++-v3/include/bits/vector.tcc:397: 前のエラーにより混乱していますので、脱出しますこのメッセージが出て、また、失敗します。これで2回目
回避方法は、gcc/config/t-h8300に赤字の部分を追加します。
MULTILIB_OPTIONS = mh/ms/msx mn mint32
MULTILIB_DIRNAMES = h8300h h8300s h8sx normal int32
MULTILIB_EXCEPTIONS = mint32 mn mn/mint32
mh/mn/mint32 ms/mn/mint32 msx/mn/mint32作業フォルダのgccとh8300-elfをフォルダ毎、削除してから、ビルドを再開します。
$ rm gcc -fr
$ rm h8300-elf -fr
$ make -j4
なにをしたかを簡単に書くと、ノーマルモードの時にintのサイズが32bitのライブラリは作らないです。
gcc-4.8では、修正済みのようです。[0回]
PR