Thursday 17 December 2020

GCC cross compiler on Homebrew

単に自分で拡張した GCC10 な arm cross compiler を作りたいだけなんですが...

問題は ARM tool chain と GCC 10 の pthread.h がずれているかららしく。いや、prefix と読むべき header の位置がずれてるとかも。

そんなわけで、libgcc のコンパイルを通すことはできないらしいので、

   File.open("make.sh", "w") { |f| f.write "\#!/bin/sh\nmake \"$@\"\nexit 0\n" }

と必ず成功する make の shell wrapper を通すことに。こんなんで良いらしい。tool chain 自体は brew install -s すれば良いだけだらしい。

そもそもの問題は作った gcc が system 側の as を参照してしまうことだったんですが、どうも hard coded されてるらしく、

   "--with-as=#{arm}/bin/arm-none-eabi-as","--with-ld=#{arm}/bin/arm-none-eabi-ld",

と、こちらも hard coded で対抗すればよろしいらしい。LLVM はこういうクソな問題ないので、LLVM だけにしてしまいたいです。

No comments: