I'm running into a bus error that I can't figure out. Not sure if it's a problem with the way I built GNU Go or with the beta-ish toolchain. I'm leaning towards the latter but want to rule out the former. I'm hoping someone here can help me do that.
To get the program to build fully for the iPhone, I actually have to build two versions: Intel and ARM. The reason is that the build process builds some utils (mkpat, mkeyes, and joseki) and then tries to use those utils in later stages of the build process. Since I'm building it on Intel but generating ARM machine code, I can't run those utils. So when the ARM build process craps out, I copy over the Intel util and re-run make.
This seems to work; the thing compiles and runs. When run on the iPhone, it displays the ASCII board, but then dies with a bus error if you play a move (after "GNU Go is thinking..."). There's no gdb or anything for the iPhone, but after adding trace output everywhere, I pinpointed the point of death at engine/move_reasons.c line 99.
I tried copying out the code surrounding that line into a new file, compiled it, and it ran fine. So something fishy is going on.
My question is, could using Intel versions of mkpat, mkeyes, or joseki during the ARM build process cause this kind of error? Poking around in the files they generate, I don't see anything platform specific, but Im not sure.
Any insights? Probably a problem with the toolchain? If so, I'll try to come up with some kind of bug report for the maintainers.