[cmake-developers] Adding LFS define to build command line?

Stephen Kelly steveire at gmail.com
Tue Oct 27 16:06:47 EDT 2015


Hi,

The build on AIX at

 https://open.cdash.org/viewBuildError.php?buildid=4072769

failed. The failure was fixed on the minor-cleanups branch. 

Looking at the error, it occurred while compiling the 
cmGeneratorExpressionNode.cxx file because at some points in the translation 
unit, a certain version of lseek64 was used, and at that point, another 
version was used. That happened because preprocessor '#defines' were not 
consistent. 

Removal of the cmMakefile.h include from cmGeneratorExpressionNode.h in the 
commit 'Remove some obsolete declarations' meant that the 
cmStandardIncludes.h file was not included before any other file including 
unistd.h. The cmStandardIncludes.h file includes the cmsys Configure.h file 
which contains particular defines.

Re-ordering the includes in cmGeneratorExpressionEvaluator.h, which is 
included by cmGeneratorExpressionNode.h means that cmStandardIncludes.h is 
included before any platform header.

This class of build breakage has occurred several times that I remember. 
Would it be possible to define the necessary preprocessor defines on the 
command line instead of relying on include order or headers? That would make 
this kind of thing not happen afaict.

Thanks,

Steve.




More information about the cmake-developers mailing list