Crossgen2 cross target testing (#42663)
authorDavid Wrighton <davidwr@microsoft.com>
Fri, 2 Oct 2020 20:35:46 +0000 (13:35 -0700)
committerGitHub <noreply@github.com>
Fri, 2 Oct 2020 20:35:46 +0000 (13:35 -0700)
commit332f118d15b75af94963747ae1610de27c0aacaf
tree8bd1bf257c3829a89e0eebb9f73806446f7e55f9
parent74fe95be21fce089bab2ce751aa7ba2b5da5460d
Crossgen2 cross target testing (#42663)

Add cross compilation testing for crossgen2.

The goal here is to cover cross compilation for the framework libraries, with support for testing cross compilation behavior between across the large swath of possible cross target possibilities.

This testing is added to the crossgen2 outerloop and is based on the work that @echesakovMSFT built for crossgen1 for cross target support for Linux X64 to Linux Arm. (The testing model has been tweaked to allow for general purpose cross target testing.)

Important details.

There is now a cross targeting build job, which builds (on either X64 Windows or X64 Linux) the framework dlls for a given target architecture, and captures their SHA1 hashes.

Then there is a comparison job which will run crossgen2 on an arbitrary set of platforms targetting a specific OS/Architecture pair.

The current state is that is known that the x86 compiler does not quite produce identical output when varied between 64 and 32 bit, there are significant issues compiling arm32 code, and arm64 code is nearly perfect with cross compilation.
eng/pipelines/coreclr/crossgen2-outerloop.yml
eng/pipelines/coreclr/templates/crossgen2-comparison-build-job.yml [new file with mode: 0644]
eng/pipelines/coreclr/templates/crossgen2-comparison-job.yml [new file with mode: 0644]
src/tests/Common/scripts/crossgen2_comparison.py [new file with mode: 0644]