ibm リファレンスには、-qhalt コンパイラー・オプションの設定よりも高い重大度レベルでエラーが発生した場合、戻りコード 1 が生成されると記載されています。-qhalt=s (重大なエラーのみ) および -qnomaxerr (エラーの量に制限なし) でコンパイルします。ファイルを正常に取得したにもかかわらず、コンパイルされた xlC リターン コードは 1 ですが、0 ではありません。コンパイラからゼロ以外のエラー コードが検出されると、make が停止するため、Makefile が壊れます。
int main() { return 0; }
単純なプログラムをコンパイルすると、期待どおり 0 の戻りコードが返されます...
問題のあるコンパイル セッションは次のようになります。
bash-3.1$ xlC -O4 -qstrict -I/adaneyko/src/boost-trunk -c some.h some.cpp -qhalt=s -qnomaxerr
xlC: 1501-218 (W) file some.h contains an incorrect file suffix
bash-3.1$ echo $?
1
bash-3.1$ xlC -qversion
IBM XL C/C++ Advanced Edition for Blue Gene/P, V9.0
Version: 09.00.0000.0010
その 1501-218 警告についてはわかりませんし、ibm リファレンスで見つけることができませんでした。