mirror of
https://github.com/espressif/binutils-gdb.git
synced 2025-05-28 22:21:26 +08:00
Fix Python 3 build error on 32-bit hosts
on Fedora Rawhide (==22) i686 using --with-python=/usr/bin/python3 one gets: ./python/py-value.c:1696:3: error: initialization from incompatible pointer type [-Werror] valpy_hash, /*tp_hash*/ ^ ./python/py-value.c:1696:3: error: (near initialization for ‘value_object_type.tp_hash’) [-Werror] cc1: all warnings being treated as errors Makefile:2628: recipe for target 'py-value.o' failed This is because in Python 2 tp_hash was: typedef long (*hashfunc)(PyObject *); while in Python 3 tp_hash is: typedef Py_hash_t (*hashfunc)(PyObject *); Py_hash_t is int for 32-bit hosts and long for 64-bit hosts. While on 32-bit hosts sizeof(long)==sizeof(int) still the hashfunc type is formally incompatible. As this patch should have no compiled code change it is not really necessary for gdb-7.9, it would fix there just this non-fatal compilation warning: ./python/py-value.c:1696:3: warning: initialization from incompatible pointer type valpy_hash, /*tp_hash*/ ^ ./python/py-value.c:1696:3: warning: (near initialization for ‘value_object_type.tp_hash’) gdb/ChangeLog 2015-02-04 Jan Kratochvil <jan.kratochvil@redhat.com> * python/python-internal.h (Py_hash_t): Define it for Python <3.2. * python/py-value.c (valpy_fetch_lazy): Use it. Remove cast to the return type.
This commit is contained in:
@ -895,10 +895,10 @@ valpy_fetch_lazy (PyObject *self, PyObject *args)
|
||||
|
||||
/* Calculate and return the address of the PyObject as the value of
|
||||
the builtin __hash__ call. */
|
||||
static long
|
||||
static Py_hash_t
|
||||
valpy_hash (PyObject *self)
|
||||
{
|
||||
return (long) (intptr_t) self;
|
||||
return (intptr_t) self;
|
||||
}
|
||||
|
||||
enum valpy_opcode
|
||||
|
Reference in New Issue
Block a user