2.4.2 on AIX fails compiling _codecs_cn.c
"Martin v. Löwis"
martin at v.loewis.de
Thu Nov 24 09:23:37 CET 2005
Paul Watson wrote:
> It appears that _ALL_SOURCE gets defined in the /usr/include/standards.h
> file. If we could #define _ANSI_C_SOURCE or _POSIX_SOURCE, it appears
> that it would eleminate _ALL_SOURCE.
Ah, ok - this should be easy enough. Python would normally define
_POSIX_SOURCE (through _XOPEN_SOURCE), but configure(.in) has this
# On AIX 4 and 5.1, mbstate_t is defined only when _XOPEN_SOURCE ==
# used in wcsnrtombs() and mbsnrtowcs() even if _XOPEN_SOURCE is not
# or has another value. By not (re)defining it, the defaults come in
if test `uname -r` -eq 1; then
which causes _XOPEN_SOURCE (and subsequently probably _POSIX_SOURCE) not
to be defined. What AIX version are you using? Can you try removing
the fragment from configure(.in), rerun configure, verify that
_XOPEN_SOURCE is defined in pyconfig.h, and then try building again?
If this works, this might be a solution. Otherwise, we need to put
something like this into _codecs_cn.c:
/* On AIX version such-and-such, hz is defined because _ALL_SOURCE is
defined, this in turn is defined because _XOPEN_SOURCE is not.
As _XOPEN_SOURCE cannot be enabled (see configure.in), we just
work around by removing the hz definition again. */
More information about the Python-list