Skip Montanaro wrote: > In installing mxBase 2.0.4 on my MacOS 10.2.1 system I get warnings like the > following: > > gcc -DNDEBUG -g -O3 -Wall -Wstrict-prototypes -Wno-long-double -no-cpp-precomp -Imx/Queue/mxQueue -I/Users/skip/local/include/python2.3 -I/usr/include -I/usr/local/include -c mx/Queue/mxQueue/mxQueue.c -o build/temp.darwin-6.1-Power Macintosh-2.3/mx/Queue/mxQueue/mxQueue/mxQueue.o > cc1: warning: changing search order for system directory "/usr/local/include" > cc1: warning: as it has already been specified as a non-system directory > cc1: warning: changing search order for system directory "/usr/include" > cc1: warning: as it has already been specified as a non-system directory > > This warning bothers me a bit, as it suggests I'm screwing up the compiler's > notions about header file search order. Has anyone else seen this and > investigated how to get rid of this problem? I've had a few bug reports related to this, but all of them were from Solaris users. The -I/usr/include causes the GCC compiler to pick up a system stdarg.h header file which causes a compile error (GCC ships with its own stdarg.h files). The report for MacOS is new, though. Perhaps this is a generic GCC problem ? (#include <stdarg.h> should look in the compiler dirs first and only then scan the additional -I paths) > This is related to bug > http://python.org/sf/589427 (which was assigned to me). It's due to the > gen_preprocess_options() function in distutils/ccompiler.py. This warning > seems to be related to gcc version >= 3.1. > > I have a quick hack in my local copy of distutils/ccompiler.py. At the > bottom of gen_preprocess_options() I replaced > > for dir in include_dirs: > pp_opts.append ("-I%s" % dir) > > with > > pp_opts.extend (gen_preprocess_includes(include_dirs)) > > and added these two functions to the file: > > def gen_preprocess_includes_macosx_gcc(dirs): > """GCC on MacOSX complains if /usr/include or /usr/local/include are > mentioned in -I. > """ > pp_opts = [] > for dir in dirs: > if dir not in ("/usr/include", "/usr/local/include"): > pp_opts.append ("-I%s" % dir) > return pp_opts > > def gen_preprocess_includes(dirs): > """Generate the -I flags for a compile command.""" > if sys.platform == "darwin": > return gen_preprocess_includes_macosx_gcc(dirs) > > pp_opts = [] > for dir in dirs: > pp_opts.append ("-I%s" % dir) > return pp_opts > > This is an obscure solution, at best. I'd prefer to at least test the > compiler and version. How can I tell what compiler and version will be used > to compile files, or can't I can this level? (Seems to me that > gen_preprocess_options begs to be a method of the CCompiler class.) > > Thx, > > Skip > > _______________________________________________ > Python-Dev mailing list > Python-Dev@python.org > http://mail.python.org/mailman/listinfo/python-dev -- Marc-Andre Lemburg CEO eGenix.com Software GmbH _______________________________________________________________________ eGenix.com -- Makers of the Python mx Extensions: mxDateTime,mxODBC,... Python Consulting: http://www.egenix.com/ Python Software: http://www.egenix.com/files/python/
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4