summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorSergey Andreenko <seandree@microsoft.com>2019-02-15 14:03:47 -0800
committerJan Kotas <jkotas@microsoft.com>2019-02-15 14:03:47 -0800
commit6f1bdfffb77ba1c95f46e16a7eeff3cfaf2f2f1f (patch)
tree439f7cac3298df1c53a1a8267a445c2bc99f5cf0 /src
parent342c80a0c400e85e0507adaefae47f737c48f06f (diff)
downloadcoreclr-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.h2
-rw-r--r--src/debug/ee/rcthread.cpp40
-rw-r--r--src/inc/contract.h3
-rw-r--r--src/inc/palclr.h2
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(); \