I've appended this issue to the Python bug tracker
http://bugs.python.org/issue10910
On Mar 2, 2011, at 11:17 AM, Athanasios Dousis wrote:
> Hello all,
>
> I'm upgrading from Python 2.6.5 to 2.7.1, and I'm getting the error below
> when compiling my program using Boost 1.45 and gcc 4.2.1 in OSX 10.6.6. I
> found a thread that describes similar symptoms related to the ordering of
> header files and macro definitions:
> http://code.google.com/p/unladen-swallow/issues/detail?id=87#c13
>
> The suggested patch to pyport.h
> (http://codereview.appspot.com/179049/patch/1/2) does not fix my problem,
> presumably because I'm not using FreeBSD. However, adding #include
> "Python.h" to the top of each source file (e.g., bend.cc below) does fix the
> problem. Is there a simple way to fix this without adding Python.h to every
> source file in my codebase?
>
> I've installed Boost and Python from source to non-standard directories,
> Boost 1.45 by:
> cd $(BOOST); ./bootstrap.sh --prefix=$(CURDIR)/$(BOOST)
> --with-python-root=$(CURDIR)/$(PYTHON_DIR) --with-python-version=2.7
> --with-libraries=mpi
>
> and Python 2.7 by:
> cd $(PYTHON_SRCDIR) ; ./configure --enable-shared
> --prefix=$(CURDIR)/$(PYTHON_DIR)
> cd $(PYTHON_SRCDIR) ; make -j $(NUMPROC) && make install
>
> Any guidance will be greatly appreciated.
>
> Kind regards,
> Nasos
>
> ===
> ...
> darwin.compile.c++ bin/darwin-4.2.1/release/threading-multi/bend.o
> In file included from /usr/include/c++/4.2.1/ios:47,
> from /usr/include/c++/4.2.1/ostream:45,
> from /usr/include/c++/4.2.1/iterator:70,
> from boost/boost/next_prior.hpp:15,
> from boost/boost/utility.hpp:17,
> from boost/boost/python/instance_holder.hpp:10,
> from boost/boost/python/object/pointer_holder.hpp:14,
> from boost/boost/python/to_python_indirect.hpp:10,
> from boost/boost/python/converter/arg_to_python.hpp:10,
> from boost/boost/python/call.hpp:15,
> from boost/boost/python/object_core.hpp:14,
> from boost/boost/python/args.hpp:25,
> from boost/boost/python.hpp:11,
> from bend.hh:6,
> from bend.cc:1:
> /usr/include/c++/4.2.1/bits/localefwd.h:58:34: error: macro "isspace" passed
> 2 arguments, but takes just 1
> /usr/include/c++/4.2.1/bits/localefwd.h:70:34: error: macro "isupper" passed
> 2 arguments, but takes just 1
> /usr/include/c++/4.2.1/bits/localefwd.h:74:34: error: macro "islower" passed
> 2 arguments, but takes just 1
> /usr/include/c++/4.2.1/bits/localefwd.h:78:34: error: macro "isalpha" passed
> 2 arguments, but takes just 1
> /usr/include/c++/4.2.1/bits/localefwd.h:94:34: error: macro "isalnum" passed
> 2 arguments, but takes just 1
> /usr/include/c++/4.2.1/bits/localefwd.h:102:34: error: macro "toupper" passed
> 2 arguments, but takes just 1
> /usr/include/c++/4.2.1/bits/localefwd.h:106:34: error: macro "tolower" passed
> 2 arguments, but takes just 1
> In file included from /usr/include/c++/4.2.1/bits/basic_ios.h:44,
> from /usr/include/c++/4.2.1/ios:50,
> from /usr/include/c++/4.2.1/ostream:45,
> from /usr/include/c++/4.2.1/iterator:70,
> from boost/boost/next_prior.hpp:15,
> from boost/boost/utility.hpp:17,
> from boost/boost/python/instance_holder.hpp:10,
> from boost/boost/python/object/pointer_holder.hpp:14,
> from boost/boost/python/to_python_indirect.hpp:10,
> from boost/boost/python/converter/arg_to_python.hpp:10,
> from boost/boost/python/call.hpp:15,
> from boost/boost/python/object_core.hpp:14,
> from boost/boost/python/args.hpp:25,
> from boost/boost/python.hpp:11,
> from bend.hh:6,
> from bend.cc:1:
> /usr/include/c++/4.2.1/bits/locale_facets.h:242:53: error: macro "toupper"
> passed 2 arguments, but takes just 1
> /usr/include/c++/4.2.1/bits/locale_facets.h:271:53: error: macro "tolower"
> passed 2 arguments, but takes just 1
> /usr/include/c++/4.2.1/bits/locale_facets.h:814:53: error: macro "toupper"
> passed 2 arguments, but takes just 1
> /usr/include/c++/4.2.1/bits/locale_facets.h:847:53: error: macro "tolower"
> passed 2 arguments, but takes just 1
> /usr/include/c++/4.2.1/bits/locale_facets.h:4611:44: error: macro "isspace"
> passed 2 arguments, but takes just 1
> /usr/include/c++/4.2.1/bits/locale_facets.h:4629:44: error: macro "isupper"
> passed 2 arguments, but takes just 1
> /usr/include/c++/4.2.1/bits/locale_facets.h:4635:44: error: macro "islower"
> passed 2 arguments, but takes just 1
> /usr/include/c++/4.2.1/bits/locale_facets.h:4641:44: error: macro "isalpha"
> passed 2 arguments, but takes just 1
> /usr/include/c++/