Fix build failures with python support on sparc-solaris

There were two types of errors, mostly compiler warnings:

  1. _FILE_OFFSET_BITS being redefined in pyconfig.h;
     This is a problem we're familiar with, having seen similar
     issues on GNU/Linux systems. I used a similar solution.

  2. GCC 4.5 complains that calls to PyEval_InitThreads and
     PyEval_ReleaseLock have no effect.  This is because our Python
     is built without thread support, leading us to use the dummy
     #define in python-internal.h which just gets replaced by `0'.
     Since this function returns void (checked versions 2.4 and 2.7),
     I simply removed the 0.

gdb/ChangeLog:

        python/python-internal.h (_FILE_OFFSET_BITS): Undefine.
        (PyEval_InitThreads): Remove duplicate. Define as nothing.
        (PyEval_ReleaseLock): Define as nothing.
This commit is contained in:
Joel Brobecker 2010-10-26 18:06:34 +00:00
parent 1e3fad37be
commit aed1781d40
2 changed files with 13 additions and 3 deletions

View file

@ -1,3 +1,9 @@
2010-10-26 Joel Brobecker <brobecker@adacore.com>
* python/python-internal.h (_FILE_OFFSET_BITS): Undefine.
(PyEval_InitThreads): Remove duplicate. Define as nothing.
(PyEval_ReleaseLock): Define as nothing.
2010-10-26 Joel Brobecker <brobecker@adacore.com>
* dwarf2read.c (psymtab_include_file_name): Replace call to strcmp

View file

@ -36,6 +36,11 @@
#undef _POSIX_C_SOURCE
#undef _XOPEN_SOURCE
/* On sparc-solaris, /usr/include/sys/feature_tests.h defines
_FILE_OFFSET_BITS, which pyconfig.h also defines. Same work
arount technique as above. */
#undef _FILE_OFFSET_BITS
#if HAVE_LIBPYTHON2_4
#include "python2.4/Python.h"
#include "python2.4/frameobject.h"
@ -63,10 +68,9 @@ typedef int Py_ssize_t;
#ifndef WITH_THREAD
#define PyGILState_Ensure() ((PyGILState_STATE) 0)
#define PyGILState_Release(ARG) ((void)(ARG))
#define PyEval_InitThreads() 0
#define PyEval_InitThreads()
#define PyThreadState_Swap(ARG) ((void)(ARG))
#define PyEval_InitThreads() 0
#define PyEval_ReleaseLock() 0
#define PyEval_ReleaseLock()
#endif
/* In order to be able to parse symtab_and_line_to_sal_object function