[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