From aed1781d4015eba1f780f65e2f11ef7841be4c46 Mon Sep 17 00:00:00 2001 From: Joel Brobecker Date: Tue, 26 Oct 2010 18:06:34 +0000 Subject: 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. --- gdb/ChangeLog | 6 ++++++ gdb/python/python-internal.h | 10 +++++++--- 2 files changed, 13 insertions(+), 3 deletions(-) (limited to 'gdb') diff --git a/gdb/ChangeLog b/gdb/ChangeLog index ad3e894..4bfe017 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,5 +1,11 @@ 2010-10-26 Joel Brobecker + * 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 + * dwarf2read.c (psymtab_include_file_name): Replace call to strcmp by call to FILENAME_CMP. diff --git a/gdb/python/python-internal.h b/gdb/python/python-internal.h index d00c23e..e18f50a 100644 --- a/gdb/python/python-internal.h +++ b/gdb/python/python-internal.h @@ -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 -- cgit v1.1