diff options
author | Sergey Andreenko <seandree@microsoft.com> | 2019-02-15 14:03:47 -0800 |
---|---|---|
committer | Jan Kotas <jkotas@microsoft.com> | 2019-02-15 14:03:47 -0800 |
commit | 6f1bdfffb77ba1c95f46e16a7eeff3cfaf2f2f1f (patch) | |
tree | 439f7cac3298df1c53a1a8267a445c2bc99f5cf0 /src | |
parent | 342c80a0c400e85e0507adaefae47f737c48f06f (diff) | |
download | coreclr-6f1bdfffb77ba1c95f46e16a7eeff3cfaf2f2f1f.tar.gz coreclr-6f1bdfffb77ba1c95f46e16a7eeff3cfaf2f2f1f.tar.bz2 coreclr-6f1bdfffb77ba1c95f46e16a7eeff3cfaf2f2f1f.zip |
Disable arm64 contracts. (#22605)
* Fix ifdef for `g_DbgSuppressAllocationAsserts`.
It needs to be defined under `FEATURE_INTEROP_DEBUGGING`.
* Unify contracts disabling for UNIX/ARM.
It also disables some parts that were disabled for ARM, but not for UNIX.
It fixes the difference that we see between ARM32 and ARM64 Unix Checked.
* Disable contracts on arm64.
FIxes the difference that we see between windows arm32 and arm64 in checked/debug builds.
* Revert CoreFX arm64 timeout change.
That is no longer necessary.
* Reenable arm64 corefx jobs.
They should not fail with timeouts anymore.
* Don't allow `g_DbgSuppressAllocationAsserts` defnition in release builds.
* delete AssertAllocationAllowed
Diffstat (limited to 'src')
-rw-r--r-- | src/debug/ee/debugger.h | 2 | ||||
-rw-r--r-- | src/debug/ee/rcthread.cpp | 40 | ||||
-rw-r--r-- | src/inc/contract.h | 3 | ||||
-rw-r--r-- | src/inc/palclr.h | 2 |
4 files changed, 2 insertions, 45 deletions
diff --git a/src/debug/ee/debugger.h b/src/debug/ee/debugger.h index 1f824c7f58..15299c0a38 100644 --- a/src/debug/ee/debugger.h +++ b/src/debug/ee/debugger.h @@ -906,8 +906,6 @@ private: // calls operator new, which may occur during shutdown paths. static EEThreadId s_DbgHelperThreadId; - friend void AssertAllocationAllowed(); - public: // The OS ThreadId of the helper as determined from the CreateThread call. DWORD m_DbgHelperThreadOSTid; diff --git a/src/debug/ee/rcthread.cpp b/src/debug/ee/rcthread.cpp index bb653e5521..c041831f92 100644 --- a/src/debug/ee/rcthread.cpp +++ b/src/debug/ee/rcthread.cpp @@ -797,46 +797,6 @@ static LONG _debugFilter(LPEXCEPTION_POINTERS ep, PVOID pv) return EXCEPTION_CONTINUE_SEARCH; } -#ifdef _DEBUG -// Tracking to ensure that we don't call New() for the normal (non interop-safe heap) -// on the helper thread. We also can't do a normal allocation when we have hard -// suspended any other thread (since it could hold the OS heap lock). - -// TODO: this probably belongs in the EE itself, not here in the debugger stuff. - -void AssertAllocationAllowed() -{ -#ifdef USE_INTEROPSAFE_HEAP - // Don't forget to preserve error status! - DWORD err = GetLastError(); - - // We can mark certain - if (g_DbgSuppressAllocationAsserts == 0) - { - - // if we have hard suspended any threads. We want to assert as it could cause deadlock - // since those suspended threads may hold the OS heap lock - if (g_fEEStarted) { - _ASSERTE (!EEAllocationDisallowed()); - } - - // Can't call IsDbgHelperSpecialThread() here b/c that changes program state. - // So we use our - if (DebuggerRCThread::s_DbgHelperThreadId.IsCurrentThread()) - { - // In case assert allocates, bump up the 'OK' counter to avoid an infinite recursion. - SUPPRESS_ALLOCATION_ASSERTS_IN_THIS_SCOPE; - - _ASSERTE(false || !"New called on Helper Thread"); - - } - } - SetLastError(err); -#endif -} -#endif - - //--------------------------------------------------------------------------------------- // // Primary function of the Runtime Controller thread. First, we let diff --git a/src/inc/contract.h b/src/inc/contract.h index a497424d39..3913e56b8a 100644 --- a/src/inc/contract.h +++ b/src/inc/contract.h @@ -239,8 +239,7 @@ #endif // Also, we won't enable contracts if this is a DAC build. -// @ARMTODO: Disable for ARM for now, contracts slow down the debug build far too much -#if defined(ENABLE_CONTRACTS_DATA) && !defined(DACCESS_COMPILE) && !defined(CROSS_COMPILE) && !defined(_TARGET_ARM_) +#if defined(ENABLE_CONTRACTS_DATA) && !defined(DACCESS_COMPILE) && !defined(CROSS_COMPILE) #define ENABLE_CONTRACTS #endif diff --git a/src/inc/palclr.h b/src/inc/palclr.h index fbb8975c1a..77b547db56 100644 --- a/src/inc/palclr.h +++ b/src/inc/palclr.h @@ -503,7 +503,7 @@ #endif -#if defined(_DEBUG_IMPL) && !defined(JIT_BUILD) && !defined(JIT64_BUILD) && !defined(CROSS_COMPILE) && !defined(_TARGET_ARM_) // @ARMTODO: no contracts for speed +#if defined(_DEBUG_IMPL) && !defined(JIT_BUILD) && !defined(JIT64_BUILD) && !defined(CROSS_COMPILE) && !defined(DISABLE_CONTRACTS) #define PAL_TRY_HANDLER_DBG_BEGIN \ BOOL ___oldOkayToThrowValue = FALSE; \ ClrDebugState *___pState = ::GetClrDebugState(); \ |