Re: GDB Python extension on AIX
David Edelsohn <[email protected]>
| Newsgroups | gmane.comp.gdb.devel |
|---|---|
| Message-ID | <CAGWvnykKKTeZHm9XSWc-1ensapFzQPiDd4LvNBUY55RgnYWcFw@mail.gmail.com> |
On Thu, Aug 11, 2016 at 3:29 AM, Andreas Schwab <[email protected]> wrote: > On Aug 11 2016, David Edelsohn <[email protected]> wrote: > >> What is the preferred way to address this? > > The preferred way is to arrange to include <pyconfig.h> before any > system headers. And file a bug with python that their use of feature > test macros makes this necessary. Python already is aware of the problem https://bugs.python.org/issue17120 GDB chose to manipulate the feature test macros further to avoid build warnings instead of re-arranging the order of headers: commit aac63f0f2626a3fce5ee936f07ecb48ab7b12ca8 Author: Joel Brobecker <[email protected]> Date: Wed Jun 30 23:12:04 2010 +0000 Fix build failure with Python installed in non-system location. The debugger fails to build when configure with --python-python=<path> where <path> is a non-system location. The reason is a warning made fatal due to the definition of _XOPEN_SOURCE inside pyconfig.h. This is exactly the same problem as with _POSIX_C_SOURCE, handled in python-internal.h as follow: | /* /usr/include/features.h on linux systems will define _POSIX_C_SOURCE | if it sees _GNU_SOURCE (which config.h will define). | pyconfig.h defines _POSIX_C_SOURCE to a different value than | /usr/include/features.h does causing compilation to fail. | To work around this, undef _POSIX_C_SOURCE before we include Python.h. */ | #undef _POSIX_C_SOURCE This patch fixes this problem the same way. 2010-06-30 Joel Brobecker <[email protected]> * python/python-internal.h (_XOPEN_SOURCE): Undefine before including Python.h. I think the ball is in GDB's court. If GDB is going to intervene in these macros for some systems and configuratino, I request a method to disable this for AIX. Thanks, David