[New-bugs-announce] [issue10052] Python/dtoa.c:158: #error "Failed to find an exact-width 32-bit integer type" (FreeBSD 4.11 + gcc 2.95.4)

Akira Kitada report at bugs.python.org
Sat Oct 9 09:26:45 CEST 2010


New submission from Akira Kitada <akitada at gmail.com>:

Building Python 2.7 fails on FreeBSD 4.11 with gcc 2.95.4 as below:

"""
gcc -pthread -c -fno-strict-aliasing -g -O2 -DNDEBUG -g  -O3 -Wall -Wstrict-prototypes  -I. -IInclude -I./Include   -DPy_BUILD_CORE -o Python/dtoa.o Python/dtoa.c
Python/dtoa.c:158: #error "Failed to find an exact-width 32-bit integer type"
gmake: *** [Python/dtoa.o] Error 1
"""

This error occurs when HAVE_UINT32_T or HAVE_INT32_T are not defined.
Those constants are defined in Include/pyport.h as:

"""
#if (defined UINT32_MAX || defined uint32_t)
#ifndef PY_UINT32_T
#define HAVE_UINT32_T 1
#define PY_UINT32_T uint32_t
#endif
#endif
"""

"""
#if (defined INT32_MAX || defined int32_t)
#ifndef PY_INT32_T
#define HAVE_INT32_T 1
#define PY_INT32_T int32_t
#endif
#endif
"""

This doesn't work for FreeBSD 4, where exact-width integer types are defined #typedef and does not provide *_MAX for them.

I don't think this is the right fix but adding following macro to pyport.h fixed the problem.

"""
#define UINT32_MAX 0xffffffff
#define INT32_MAX 0x7fffffff
"""

----------
components: Build
messages: 118246
nosy: akitada
priority: normal
severity: normal
status: open
title: Python/dtoa.c:158: #error "Failed to find an exact-width 32-bit integer type" (FreeBSD 4.11 + gcc 2.95.4)
type: compile error
versions: Python 2.7

_______________________________________
Python tracker <report at bugs.python.org>
<http://bugs.python.org/issue10052>
_______________________________________


More information about the New-bugs-announce mailing list