From 9cda50a09a75c12e7185fe3e29ff237e8ab9eeca Mon Sep 17 00:00:00 2001 From: Jonghyun Park Date: Tue, 6 Dec 2016 09:37:53 +0900 Subject: [PATCH] [x86/Linux] Mark several Windows-specific functions in excepx86.cpp as NYI (dotnet/coreclr#8424) * Mark several Windows-specific functions as NYI * Use FEATURE_PAL instead of PLATFORM_UNIX * Revert the change in threads.h Commit migrated from https://github.com/dotnet/coreclr/commit/61ffc9f3fbf80a6b8a04eb2674b057c6cce465f0 --- src/coreclr/src/vm/i386/excepx86.cpp | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/src/coreclr/src/vm/i386/excepx86.cpp b/src/coreclr/src/vm/i386/excepx86.cpp index 07e6abb..91dffa5 100644 --- a/src/coreclr/src/vm/i386/excepx86.cpp +++ b/src/coreclr/src/vm/i386/excepx86.cpp @@ -373,6 +373,7 @@ CPFH_AdjustContextForThreadSuspensionRace(CONTEXT *pContext, Thread *pThread) { WRAPPER_NO_CONTRACT; +#ifndef FEATURE_PAL PCODE f_IP = GetIP(pContext); if (Thread::IsAddrOfRedirectFunc((PVOID)f_IP)) { @@ -429,6 +430,9 @@ CPFH_AdjustContextForThreadSuspensionRace(CONTEXT *pContext, Thread *pThread) SetIP(pContext, GetIP(pThread->m_OSContext) - 1); STRESS_LOG1(LF_EH, LL_INFO100, "CPFH_AdjustContextForThreadSuspensionRace: Case 4 setting IP = %x\n", pContext->Eip); } +#else + PORTABILITY_ASSERT("CPFH_AdjustContextForThreadSuspensionRace"); +#endif } #endif // FEATURE_HIJACK @@ -2009,12 +2013,17 @@ PEXCEPTION_REGISTRATION_RECORD GetCurrentSEHRecord() PEXCEPTION_REGISTRATION_RECORD GetFirstCOMPlusSEHRecord(Thread *pThread) { WRAPPER_NO_CONTRACT; +#ifndef FEATURE_PAL EXCEPTION_REGISTRATION_RECORD *pEHR = *(pThread->GetExceptionListPtr()); if (pEHR == EXCEPTION_CHAIN_END || IsUnmanagedToManagedSEHHandler(pEHR)) { return pEHR; } else { return GetNextCOMPlusSEHRecord(pEHR); } +#else // FEATURE_PAL + PORTABILITY_ASSERT("GetFirstCOMPlusSEHRecord"); + return NULL; +#endif // FEATURE_PAL } @@ -2040,7 +2049,11 @@ PEXCEPTION_REGISTRATION_RECORD GetPrevSEHRecord(EXCEPTION_REGISTRATION_RECORD *n VOID SetCurrentSEHRecord(EXCEPTION_REGISTRATION_RECORD *pSEH) { WRAPPER_NO_CONTRACT; +#ifndef FEATURE_PAL *GetThread()->GetExceptionListPtr() = pSEH; +#else // FEATURE_PAL + _ASSERTE("NYI"); +#endif // FEATURE_PAL } @@ -2077,6 +2090,7 @@ BOOL PopNestedExceptionRecords(LPVOID pTargetSP, BOOL bCheckForUnknownHandlers) STATIC_CONTRACT_GC_NOTRIGGER; STATIC_CONTRACT_SO_TOLERANT; +#ifndef FEATURE_PAL PEXCEPTION_REGISTRATION_RECORD pEHR = GetCurrentSEHRecord(); while ((LPVOID)pEHR < pTargetSP) @@ -2132,6 +2146,10 @@ BOOL PopNestedExceptionRecords(LPVOID pTargetSP, BOOL bCheckForUnknownHandlers) SetCurrentSEHRecord(pEHR); } return FALSE; +#else // FEATURE_PAL + PORTABILITY_ASSERT("PopNestedExceptionRecords"); + return FALSE; +#endif // FEATURE_PAL } // -- 2.7.4