[cmake-developers] [CMake 0013274]: test_INT_C.c and test_INT_CXX.cxx fail to compile due to broken PRIxNN macros

Mantis Bug Tracker mantis at public.kitware.com
Wed Jun 6 13:33:41 EDT 2012


The following issue has been SUBMITTED. 
====================================================================== 
http://public.kitware.com/Bug/view.php?id=13274 
====================================================================== 
Reported By:                Daniel R. Gomez
Assigned To:                
====================================================================== 
Project:                    CMake
Issue ID:                   13274
Category:                   CMake
Reproducibility:            always
Severity:                   minor
Priority:                   normal
Status:                     new
====================================================================== 
Date Submitted:             2012-06-06 13:33 EDT
Last Modified:              2012-06-06 13:33 EDT
====================================================================== 
Summary:                    test_INT_C.c and test_INT_CXX.cxx fail to compile
due to broken PRIxNN macros
Description: 
Building CMake git nightly on AIX 4.3 yields these errors:

In file included from .../CMake/Utilities/KWIML/test/test_INT_C.c:14:
.../CMake-build/Utilities/KWIML/test/test_INT_format.h: In function
`test_INT_format':
.../CMake-build/Utilities/KWIML/test/test_INT_format.h:106: `hi' undeclared
(first use in this function)
.../CMake-build/Utilities/KWIML/test/test_INT_format.h:106: (Each undeclared
identifier is reported only once
.../CMake-build/Utilities/KWIML/test/test_INT_format.h:106: for each function it
appears in.)
.../CMake-build/Utilities/KWIML/test/test_INT_format.h:108: parse error before
string constant
.../CMake-build/Utilities/KWIML/test/test_INT_format.h:110: `hd' undeclared
(first use in this function)
.../CMake-build/Utilities/KWIML/test/test_INT_format.h:112: parse error before
string constant
[...]

(Refer to http://open.cdash.org/viewBuildError.php?buildid=2337121 for the full
list)

This platform has a long-standing issue with broken PRIxNN format macros in
/usr/include/inttypes.h. An excerpt:

    #define PRId8           %hd
    #define PRId16          %hd
    #define PRId32          %d
    #if defined(__64BIT__)
    #define PRId64          %ld
    #else
    #if defined(_LONG_LONG)
    #define PRId64          %lld
    #endif
    #endif

On the Autoconf side, Gettext has an m4 macro gt_INTTYPES_PRI that checks for
this:

    https://gnunet.org/svn/Extractor/m4/inttypes-pri.m4

CMake could probably avoid the use of inttypes.h on this system altogether; the
above files compile correctly with -DcmIML_INT_NO_INTTYPES_H. Either that, or it
needs to know to use its own format-string macros instead of the system's.
====================================================================== 

Issue History 
Date Modified    Username       Field                    Change               
====================================================================== 
2012-06-06 13:33 Daniel R. GomezNew Issue                                    
======================================================================




More information about the cmake-developers mailing list