This issue tracker has been migrated to GitHub, and is currently read-only.
For more information, see the GitHub FAQs in the Python's Developer Guide.

classification
Title: hpux11.00-parisc: dtoa.c: "Failed to find an exact-width 32-bit integer type"
Type: compile error Stage:
Components: Build Versions: Python 3.1, Python 3.2, Python 2.7
process
Status: closed Resolution: fixed
Dependencies: Superseder:
Assigned To: mark.dickinson Nosy List: mark.dickinson, srid
Priority: high Keywords: patch

Created on 2009-06-26 23:46 by srid, last changed 2022-04-11 14:56 by admin. This issue is now closed.

Files
File name Uploaded Description Edit
apy31-hpux11.00-parisc-bertha.log srid, 2009-06-26 23:46
issue6347.patch mark.dickinson, 2009-06-27 14:49 Possible fix for compile failure on HP-UX
config.log srid, 2009-06-29 21:26 Requested config.log
pyconfig.h srid, 2009-06-29 21:26 Requested pyconfig.h
inttypes.h srid, 2009-06-29 21:44
Messages (5)
msg89748 - (view) Author: Sridhar Ratnakumar (srid) Date: 2009-06-26 23:46
(...)
cc +DAportable -Ae -D_REENTRANT +Z -c  -DNDEBUG -O  -I. -IInclude -I./
Include   -DPy_BUILD_CORE -o Python/pystrtod.o Python/pystrtod.c
cc +DAportable -Ae -D_REENTRANT +Z -c  -DNDEBUG -O  -I. -IInclude -I./
Include   -DPy_BUILD_CORE -o Python/dtoa.o Python/dtoa.c
cpp: "Python/dtoa.c", line 158: error 4062: "Failed to find an exact-
width 32-bit integer type"
make: *** [Python/dtoa.o] Error 1

Entire build log is attached (just look at the configure/make output of 
Python).
msg89752 - (view) Author: Mark Dickinson (mark.dickinson) * (Python committer) Date: 2009-06-27 14:49
Thanks for the report!

Is the operating system you're using HP-UX 11.00, or am I misunderstanding 
the issue title?  Isn't HP-UX 11.00 quite old?  (wikipedia says 1997).  
Does the problem exist with more recent versions of HP-UX 11?

From the log file you supplied (thank you!) it looks as though the issue 
is that this version of HP-UX doesn't have the stdint.h standard header 
file that's required by C99.  This would hardly be surprising if the 1997 
date is accurate.

I have some questions and requests:

1. Please could you attach your post-configuration pyconfig.h file,
and also, if possible, the config.log file?

2. Does inttypes.h on your system define int32_t and uint32_t?

3. Does inttypes.h on your system define INT32_MAX and UINT32_MAX?

4. Does the attached patch fix the problem for you?  (Note: I'm not
yet proposing applying such a patch to the Python source;  I'm just
trying to diagnose the problem.)

For questions 2 and 3, be aware that there might be some #ifdef magic in 
inttypes.h so that what's actually defined depends on various compiler 
flags or preprocessor constants.  (For example, on some systems, I believe 
exports of INT32_MAX and friends from stdint.h are suppressed when using a 
C++ compiler instead of a C compiler.)
msg89753 - (view) Author: Mark Dickinson (mark.dickinson) * (Python committer) Date: 2009-06-27 14:52
Sorry:  additional bit for question 2:

2a:  if inttypes.h defines int32_t and uint32_t, are they C macros or 
typedefs?
msg89884 - (view) Author: Sridhar Ratnakumar (srid) Date: 2009-06-29 21:43
Hi Mark,

Thanks for showing interest on this bug.

[Mark] Is the operating system you're using HP-UX 11.00, or am I 
misunderstanding the issue title?

# Yes. output of platinfo: hpux-parisc (hpux11.00-parisc2.0)

[Mark] Does the problem exist with more recent versions of HP-UX 11?

# I'm yet to verify that as currently HP-UX 11.22 has another build 
issue: http://bugs.python.org/issue5999

[Mark] Please could you attach your post-configuration pyconfig.h file,
and also, if possible, the config.log file?

# I've attached 'config.log' and 'pyconfig.h' a few minutes ago.

[Mark] Does inttypes.h on your system define int32_t and uint32_t?

# Yes. See http://files.getdropbox.com/u/87045/tmp/hpux_test.c.txt

[Mark] if inttypes.h defines int32_t and uint32_t, are they C macros or 
typedefs?

# Interesting I can't find int32_t at all in /usr/include/inttypes.h -- 
so I'm attaching that file.

[Mark] Does inttypes.h on your system define INT32_MAX and UINT32_MAX?

# Yes. See http://files.getdropbox.com/u/87045/tmp/hpux_test.c.txt

[Mark] Does the attached patch fix the problem for you? 

# The patch "issue6347.patch" fixes the compile error! The build also 
succeeds without further errors.
msg89931 - (view) Author: Mark Dickinson (mark.dickinson) * (Python committer) Date: 2009-06-30 15:46
Thanks.  That all seems fairly clear cut:  HP-UX defines everything 
integer-related that C99 expects it to, but puts it in inttypes.h rather 
than stdint.h.  Given that the autoconf tests for uint32_t and friends 
are checking both stdint.h and inttypes.h, and that this problem 
apparently exists on other platforms as well (some versions of Solaris, 
according to the autoconf manual), I think it makes sense to update 
pyport.h to include both stdint.h and inttypes.h.

Patch committed, r73701 (trunk), r73702 (py3k) and r73703 (release31-
maint).  I don't think there's any need to backport to 3.0 or 2.6: 
neither should have this build problem.
History
Date User Action Args
2022-04-11 14:56:50adminsetgithub: 50596
2009-06-30 15:46:55mark.dickinsonsetstatus: open -> closed
resolution: fixed
messages: + msg89931

versions: + Python 2.7, Python 3.2
2009-06-29 21:44:59sridsetfiles: + inttypes.h
2009-06-29 21:43:46sridsetmessages: + msg89884
2009-06-29 21:26:33sridsetfiles: + pyconfig.h
2009-06-29 21:26:16sridsetfiles: + config.log
2009-06-27 14:52:07mark.dickinsonsetmessages: + msg89753
2009-06-27 14:49:37mark.dickinsonsetfiles: + issue6347.patch
keywords: + patch
messages: + msg89752
2009-06-27 14:03:41mark.dickinsonsetpriority: high
assignee: mark.dickinson

nosy: + mark.dickinson
2009-06-26 23:46:15sridcreate