VC++でビルドしたバイナリをMINIXで動かしていて、strchr()で落ちることに気付きました。strchr()は組み込み関数として特別扱いされているため、C言語で記述してもVC++が受け付けてくれません。オプションで組み込み関数を無効にしてもダメです(VC++2005まではできていたらしいです)。ACK(MINIXのコンパイラ)用のアセンブリを手動でMASMに変換して使用していました。
よく見ると32bitコードなのにpushf/popfを使用しています。ACKではサフィックスのルールがMASMとは異なっているようです。これらをpushfd/popfdにしたところ、問題なく動くようになりました。