私は、setup.pyがPythonをビルドするのに使用されたものと同じCFLAGSを使用することを理解します。私はsegfaultingである私たちの単一のC拡張を持っています。-O2
を使わないでを構築する必要があります。-O2
は、コアファイルが問題をピン止めするのに十分でないようにいくつかの値とコードを最適化しているためです。setup.pyがデフォルトで使用するコンパイラ(gcc)フラグをどのように上書きすることができますか?
-O2
が使用されないようにsetup.pyを変更する必要があります。
私はdistutilsのドキュメント、特にdistutils.ccompiler
とdistutils.unixcompiler
を読んだことがあります。フラグとライブラリを追加する方法と組み込み方法を見ていますが、デフォルトのgccフラグを変更する方法はありません。
具体的には、これはPython 2.5.1のレガシー製品で、バックポートがたくさんある(Fedora 8、はい、私は知っている...)。いいえ、OSやPythonのバージョンを変更することはできません。大きな問題がなければ、Pythonを再コンパイルすることはできません。私はちょうど環境が唯一のsegfaultingである1つの顧客のためにC拡張の1つを構築する必要があります。