Age | Commit message (Collapse) | Author |
|
* excluding crossgen from build.
* Fix cross-component build break
* Fix tests to not use crossgen
* more test fixes.
* switching R2R jobs to use cg2 by default
* switch helix runs to use crossgen2
|
|
Fix this:
```
CMake Warning (dev) in crosscomponents.cmake:
A logical block opening on the line
C:/gh/runtime4/src/coreclr/crosscomponents.cmake:24 (if)
closes on the line
C:/gh/runtime4/src/coreclr/crosscomponents.cmake:36 (endif)
with mis-matching arguments.
Call Stack (most recent call first):
CMakeLists.txt:254 (include)
This warning is for project developers. Use -Wno-dev to suppress it.
```
|
|
- Include osx arm64 jit in package
- Also use that jit when appropriate
- build for all rids
- build cross targeting test scenario variant from separate project file to avoid issue with incorrect app host rid
- Remove app host from cross targeting x64 crossgen used in test scenarios
|
|
crosscomponent build. (#51004)
* Install crossgen, jitinterface, clrjit into the sharedframework folder.
* Remove unneeded dependency
* Add dac/dbi to cross-component sharedFramework folder.
* Don't install the cross-os dac in crosscomponents in cross-bitness scenarios.
* Jit Interface doesn't need to go into the sharedFramework folder (it wasn't there in 6.0.0p3)
|
|
system is untouched (#49906)
|
|
* Add CoreCLR compilation support for Apple Silicon
* Use CMAKE_OSX_ARCH rework
* Set clang -arch flag
* Workaround uname arch reporting emulated arch
* Fix native code compilation issues
* Implement missing osx-arm64 functionality
* Prototype fix for write no execute issues
* Strip libunwind pointer authentication bits
* Review feedback
* Does not fix Arm64 ABI issues
Co-authored-by: Jan Vorlicek <janvorli@microsoft.com>
|
|
builds (#41126)
This change is part of a larger effort to enable crossgen2 to perform general purpose cross compilation from any architecture to any other architecture. This portion of the change is to begin generating cross targeting jits with a consistent naming scheme with a minimal amount of code change.
The practical output of this change is replacement of the current practice of building protojit/protononjit/etc. with `clrjit_<targetos>_<target_arch>_<host_arch>` binaries.
In addition I've defined a couple of new subsets so that this can be less impactful to the inner dev loop.
clr.alljits, which will build all of the jits.
clr.jit, which will build only non-cross targeting jits.
clr.runtime which has been enhanced to not trigger the alljits build.
Current restrictions of the change:
1. This change does not support 32bit to 64bit compilation. I've built a larger change that includes the necessary work for that, but the changes are more disruptive, and I would prefer to scope this work to make it reviewable.
2. This work builds different compilers for the unix targetting and windows targetting compilers. This is due to the different ABIs that the architectures support. Upon investigation, I've determined that the actual product differences in these cases is small for ARM and ARM64. In the future, once we have testing, I believe it would be reasonable to unify the generated compiler binaries.
3. These changes do not build an armel targeting compiler for all scenarios, but it does build one with the current naming scheme as was done before. Again, like in condition 2, I believe we can make a single arm targetting compiler that will work.
4. These changes include changes to crossgen2 to use the new compiler binaries. However, there is no expanded testing to cover test the newly available cross compilation capabilities. That will appear in follow-on work.
|
|
This change introduces initial provisions for dynamically loading
the native JIT based on the targeting OS and architecture; the change
expects the potentially multiple versions of clrjit to coexist with
Crossgen2 in the same folder, marked by a OS / arch suffix. Based
on these prerequisites the change adds ARM64 jobs to the Crossgen2
pipeline.
Thanks
Tomas
|
|
* Enable cross OS DBI build
* Fix .gitignore
* Fix Cross OS DBI compilation issues
* Review feedback
* Cleanup dummy/twowaypipe.cpp
|
|
|
|
* Refactor CMake system to allow cross OS DAC compile
Add CLR_CMAKE_HOST_OS
Add rules to determine which cross OS combinations are valid
Make add_definitions depend on TARGET OS properties. Wherever reasonable
make C++ defines depend on runtime target rather than host.
|
|
The term platform was ambiguous. Migrate to using common terminology for
cross compilation.
Host is the platfrom which will execute the code
Target is the platform which will be debugged or for which code will be generated.
In most cases HOST == TARGET. The exceptions are the cross component crossgen
tools and the future cross DAC.
|
|
|
|
1. Remove armlb testing from netci.groovy
2. Remove legacy jit exclusions from tests.lst
3. Remove some unused `LEGACY_BACKEND` build definitions
4. Remove regpair.h
Commit migrated from https://github.com/dotnet/coreclr/commit/6716e0ce0794f0139c8c15e3ca52d4bb5ebbce0b
|
|
* Add FEATURE_CROSSBITNESS in crosscomponents.cmake
* Exclude mscordaccore mscordbi sos from CLR_CROSS_COMPONENTS_LIST when FEATURE_CROSSBITNESS is defined in crosscomponents.cmake
* Introduce target_size_t in src/jit/target.h
* Use size_t value in genMov32RelocatableImmediate in src/jit/codegen.h src/jit/codegencommon.cpp
* Fix definition/declaration inconsistency for emitter::emitIns_R_I in emitarm.cpp
* Zero HiVal when GetTree::SetOper GenTreeLngCon->GetTreeIntCon in src/jit/compiler.hpp
* Explicity specify roundUp(expr, TARGET_POINTER_SIZE)
* Use target_size_t* target in emitOutputDataSec in src/jit/emit.cpp
Commit migrated from https://github.com/dotnet/coreclr/commit/4585d5ab0cb0cda434be6cfcb89bd1252d2703b3
|
|
* Don't build superpmi as crosscomponent
* Replace install with _install in all superpmi CMakeLists.txt files
Commit migrated from https://github.com/dotnet/coreclr/commit/58b404512a589a9b7cfc917d7217596c5607fe13
|
|
RyuJIT/arm32 JIT is now named clrjit.dll (was named protojit.dll).
arm32 LEGACY_BACKEND JIT is now named legacyjit.dll (was named clrjit.dll).
Ubuntu and Tizen testing now use RyuJIT/arm32.
Tests failing for legacy backend are now excluded with `LEGACYJIT_JITSTRESS_FAIL`,
`LEGACYJIT_GCSTRESS_FAIL`, and `LEGACYJIT_FAIL`.
Commit migrated from https://github.com/dotnet/coreclr/commit/e7660e3226527166352aa7999ae1ed853a9c4868
|
|
abstract MSBuild /maxcpucount switch (dotnet/coreclr#14578)
This commit frees -ExtraParameters and uses MSBuild v15 extension point to control CL compiler parallelism.
If MSBuild 15.0 is available - installed with Visual Studio 2017 - CL parallelism control is achieved by using extension point in Microsoft.Common.props file which allows to include Directory.Build.props - for details see [Microsoft.Common.props] [1] file in MSBuild repo. https://github.com/Microsoft/msbuild/blob/dotnet/coreclr@b38e4ceeaaec36c5237ae698041e9b9f18c84876/src/Tasks/Microsoft.Common.props#L36.
MSBuild parallelism is controled via abstracted /maxcpucount command line switch
which now is available as -MSBuildNodeCount pass through run.cmd/run.sh command line
argument with default value equal to /maxcpucount (what defaults to number of logical processors).
This allows to control MSBuild parallelism on all supported platforms.
It is possible to control MSBuild parallelism programatically via MSBuild public
API using MaxNodeCount properties available on the following APIs:
Microsoft.Build.Evaluation.ProjectCollection.MaxNodeCount
Microsoft.Build.Execution.BuildParameters.MaxNodeCount
It's use in current build infrastructure would require creating unnecessary
complexity and was ruled out.
Commit migrated from https://github.com/dotnet/coreclr/commit/5a01d8a39576f0d07441e4d123a90138f4ae0735
|
|
(dotnet/coreclr#8918)
* [ARM32/Linx] cross-architecture build: restrict build project list
Restrict build project for ARM32/Linux cross-architecture
We can build these projects with PR dotnet/coreclr#8866 and dotnet/coreclr#8917. (release build)
- crossgen
- clrjit
- protojit
* modify crosscomponents.cmake
Add list items when not Linux, instead remove in Linux
Commit migrated from https://github.com/dotnet/coreclr/commit/69c55380c1c611388b8c9e3668f41ed099bdd5f1
|
|
Also, add RyuJIT to Windows ARM32 cross components build (as protojit.dll).
Commit migrated from https://github.com/dotnet/coreclr/commit/3e5eab8392893798ab3a8f3d412829519494f709
|
|
Fixes https://github.com/dotnet/coreclr/issues/6279
Fixes https://github.com/dotnet/coreclr/issues/6280
- This builds x64_arm64 clrjit.dll
- crossgen is not statically linked to jit anymore. It needs clrjit.dll
dynamically
- Adding this cross-component binary into Jit pacakge.
So, clrjit.dll (native-target) is consumed by coreclr or crossgen
(native-target)
clrjit.dll (cross-target) is consumed by crossgen (cross-target).
Likewise, later this cross-target clrjit.dll can be used for corert targeting arm64
so that we can generate arm64 code on host machine (x64).
Commit migrated from https://github.com/dotnet/coreclr/commit/0ed4e675a303a8944ec4c99c03058b99d8ff9548
|
|
Currently only enabled for arm64
Commit migrated from https://github.com/dotnet/coreclr/commit/7f46dbe0c6b0785a4e40978da684b1dc81d0b8ce
|