Je comprends que setup.py utilise les mêmes CFLAGS que ceux utilisés pour construire python. J'ai une seule extension C qui est la nôtre. J'ai besoin de le construire sans-O2
Parce que -O2
Optimise certaines valeurs et certains codes afin que les fichiers de base ne soient pas suffisants pour identifier le problème.
J'ai juste besoin de modifier setup.py pour que -O2
Ne soit pas utilisé.
J'ai lu la documentation de distutils, en particulier distutils.ccompiler
Et distutils.unixcompiler
Et j'ai vu comment ajouter des drapeaux et des bibliothèques et des inclusions, mais pas comment modifier les drapeaux gcc par défaut.
Plus précisément, il s'agit d'un produit hérité sur Python 2.5.1 avec un tas de rétroportages (Fedora 8, oui, je sais ...). Non, je ne peux pas changer la version du système d'exploitation ou python et je ne peux pas, sans grands problèmes, recompiler python. J'ai juste besoin d'en créer une à partir de l'extension C pour un client dont l'environnement est le seul à se briser.
Prepend CFLAGS="-O0"
avant d'exécuter setup.py
:
% CFLAGS="-O0" python ./setup.py
Le -O0
sera ajouté à CFLAGS
lors de la compilation, par conséquent, remplacera le précédent -O2
réglage.
Une autre façon consiste à ajouter -O0
à extra_compile_args
dans setup.py
:
moduleA = Extension('moduleA', .....,
include_dirs = ['/usr/include', '/usr/local/include'],
extra_compile_args = ["-O0"],
)
Si vous souhaitez supprimer tous les indicateurs par défaut, utilisez:
% OPT="" python ./setup.py