You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Currently, when build Linux/arm coreclr on Linux/x64 dev machine the following two sets of user environments must be installed:
x64/arm compiler for native build;
x64/x84 for cross-components used for crossgen/AOT to improve performance.
Purpose: Adapting crossgen and coreclr to be able to generate 32-bit ReadyToRun images on a 64-bit host without requiring to install x64/x84 Linux environment.
Add support in CMakeLists.txt, src/pal/src/CMakeLists.txt, build.sh and build.cmd for building x64_arm crosscomponents
Enable some definitions and disable unreachable code causing compilation warnings/errors, do upcasts to suppress such warnings during cross-bitness crossgen compilation (ConcurrentDictionary performance issue #18707):
For example, RtlUnwindExRtlVirtualUnwind are needed during x86_arm on Windows and on x64_arm on Linux but not on x64_arm on Windows
Many functions in src/inc/regdisp.h never reachable from crossgen but causes compilation errors
Consider splitting GenTreeIntCon into "a tree node that holds handles (i.e. pointers to host functions)" and "a tree node that never holds host pointers - i.e. pure integer constant"
Handling VNForPtrSizeIntCon and genTreeHashAdd in JIT in crossbitness scenario
Even after these some code in JIT would cause compilation warnings - requires either explicit casting or refactoring (e.g. roundUp)
EEClass::AddChunk must append methods (not prepend them as it now) in order to produce same output in both same-bitness and cross-bitness scenarios
The text was updated successfully, but these errors were encountered:
@AndyAyersMS I'd like to get this in for 2.1 if possible. For preview 2, we are going to have to use a workaround (using 32-bit tools and new Docker images), but it could still make the release. Since we can validate by simple binary output comparison on a fixed set of inputs (the framework binaries), it should be low risk.
Currently, when build Linux/arm coreclr on Linux/x64 dev machine the following two sets of user environments must be installed:
Purpose: Adapting crossgen and coreclr to be able to generate 32-bit ReadyToRun images on a 64-bit host without requiring to install x64/x84 Linux environment.
Backlog:
sizeof(void*)
with target specific macroTARGET_POINTER_SIZE
([ToFDisable] Port tests for: System.Security.Cryptography.Primitives #16514 Replace sizeof(TADDR) with TARGET_POINTER_SIZE in Zap coreclr#18028)_WIN64
with_TARGET_64BIT_
(as we do in RyuJIT) (Remove problematic ArrayPool usage #16531 Use _TARGET_64BIT_ macro coreclr#16660)emitter::code_t
rather thanssize_t
andsize_t
in emitarm.cpp and emitarm.h (PostAsync coreclr send different request compare to PostAsync clr #16617)sizeof(TADDR)
withTARGET_POINTER_SIZE
in Zapper (Add API T:System.Xml.Serialization.XmlSerializationGeneratedCode #18028)sizeof(ObjHeader)
sizeof(Object)
etc with target-specific constantsOBJHEADER_SIZE
OBJECT_SIZE
(Release these reserved names: COM1-COM9, LPT1-LPT9, CON, AUX, PRN, and NUL #18245)OFFSETOF__DelegateObject__target
OFFSETOF__DelegateObject__methodPtr
constants etc in JitInterface (LambdaCompiler could reduce Closure.Constants size #18329)TARGET_POINTER_TYPE
TARGET_POINTER_SIZE
during ZapWriteReloc ([Ping] Consider adding synchronous path to Ping #18665)size_t
inGcInfoEncoder::Build()
(Move types from S.Security.Permissions that are part of netstandard 2.0 #19206)(CI Failure System.Data.SqlClient.Tests.SqlConnectionBasicTests.ConnectionTest #19483)
CodeGen::instGen_Set_Reg_To_Imm
into relocatable immediate/non-relocatable immediate cases (CI failure in DateTimeFormatInfoGetInstance.GetInstance_ExpectedCurrent #19091)RtlUnwindEx
RtlVirtualUnwind
are needed during x86_arm on Windows and on x64_arm on Linux but not onx64_arm
on WindowsConsider splitting
GenTreeIntCon
into "a tree node that holds handles (i.e. pointers to host functions)" and "a tree node that never holds host pointers - i.e. pure integer constant"Handling
VNForPtrSizeIntCon
andgenTreeHashAdd
in JIT in crossbitness scenarioEven after these some code in JIT would cause compilation warnings - requires either explicit casting or refactoring (e.g.
roundUp
)EEClass::AddChunk
must append methods (not prepend them as it now) in order to produce same output in both same-bitness and cross-bitness scenariosThe text was updated successfully, but these errors were encountered: