summaryrefslogtreecommitdiff
path: root/definitionsconsistencycheck.cmake
AgeCommit message (Collapse)AuthorFilesLines
2016-06-28Move intermediate file into intermediate dir (#5981)MyungJoo Ham1-3/+3
The intermediate file, cmake.definitions, is moved into the intermediate directory: bin/obj/OS.Arch.Conf/ The script won't emit error for not having the cmake results because some systems (Windows) do not use Cmake and users might use "skipnative". Fixes #5976 Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
2016-06-23Scripts: verify compiler definitions of native and managed (#4675)MyungJoo Ham1-0/+11
* Scripts: find out compiler definitions of CMake In order to find mismatch between native and managed, we need to know the list of definitions of native. The copmiler definitions are stored at cmake.definitions This addresses the complaints of #4674 Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com> * Scripts: add check-definitions.py scripts/check-definitions.py checks the consistency between the native-build (CMake) compiler definitions and the managed-build (MSBuild/mscorlib) compiler definitions at build-time and prints out potentially dangerous inconsistencies. In order to get the proper results, managed build should be executed after the native build (build.sh will do so if no options such as skipnative or skipmanaged are given.) Fix #4674 Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com> * Scripts: allow check-definitions py to ignore the harmless The third argument of check-definitions.py specifies harmless keywords to be suppressed from emitting warning messages. Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com> * Scripts: add ignored cdefine keywords for warning As an example of how to declare compiler definition keywords that are harmless to be inconsistent between the native and the managed, we have added FEATURE_IMPLICIT_TLS and FEATURE_HIJACK. Developers may add more keywords in System.Private.CoreLib.csproj if the keywords are verified to be harmless; i.e., although the keywords exist in both cmake and clr.coreclr.props, the keywords are NEVER used in either side of the sources or the keywords only happen to have the same name while they denote the completely different semantics and may be disjoint. Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>