[x86/Linux] Fix WIN64EXCEPTIONS build error (dotnet/coreclr#8629)
authorJonghyun Park <parjong@gmail.com>
Wed, 11 Jan 2017 00:48:43 +0000 (09:48 +0900)
committerJan Vorlicek <janvorli@microsoft.com>
Wed, 11 Jan 2017 00:48:43 +0000 (01:48 +0100)
commitcb13bf0530c8bbacfbba966101102f810353ba2a
treec262c6aa5e83faacc9c7c298f9d60a36b422af7e
parentb1b8a7bb6d3a2b4730962590c905ddaff7eef9df
[x86/Linux] Fix WIN64EXCEPTIONS build error (dotnet/coreclr#8629)

* Move GetUnwindInfo and GetNumberOfUnwindInfos into the real code header

This commit fixes dotnet/coreclr#8342.

* Use WIN64EXCEPTIONS instead of _TARGET_X86_

* Revise FaultingExceptionFrame

This commit revises FaultingExceptionFrame to support WIN64EXCEPTIONS in
x86/Linux port.

* Add RUNTIME_FUNCTION__EndAddress as NYI

* Revise regdisp.h

* Revise eetwain.h

* Comment out exinfo.cpp if WIN64EXCEPTIONS is defined

* Revises excep.cpp

* Fix mistmatch in ThrowControlForThread defintion

* Revises cgenx86.cpp

* Disable SEH-based exception handlers when WIN64EXCEPTIONS is defined

* Revise stackwalk.cpp

* Revise jitinterface.cpp

* Revise readytorun.h

* Revise dbgipcevents.h

* Revise zapcode.cpp

* Revise clrnt.h

* Fix Windows build error

* Mark FaultingExceptionFrame::UpdateRegDisplay as NYI

* Revise per feedback

* Revert #if defined(..) as #ifdef

* Fix style changes

* Fix style changes

* Remove #undef _TARGET_X86_

* 2nd attempt to fix Windows build error

* Revise per feedback

* Revert the chagnes in clrdefinitions.cmake and add BIT32 in CMakeLists.txt

* Use !BIT64 instead of BIT32

* Include exceptionhandling.cpp and gcinfodecoder.cpp in build

This commit includes exceptionhandling.cpp and gcinfodecoder.cpp in
build, and fixes related compile errors.

* Fix COMPlus_EndCatch undefined reference

* Fix build error

* Fix GcInfoDecoder-related undefined references

* Fix AdjustContextForVirtualStub undefined reference

* Fix GetCallerSP undefined reference

* Fix ResetThreadAbortState undefined reference

* Attempt to fix Windows build error

* Fix CLRNoCatchHandler undefined reference

* Another attemp to fix Windows build error

* Fix GetXXXFromRedirectedStubStackFrame undefined references

* Fix Windows Build Error

* Add RtlpGetFunctionEndAddress and RtlVirtualUnwind as NYI

* Fix undefined references on JIT helpers

* Enable Dummy Application Run with WIN64EXCEPTIONS

* Revert "Move GetUnwindInfo and GetNumberOfUnwindInfos into the real code header"

This reverts commit dotnet/coreclr@c2bad85ac1136be3c6fb6ad7eedc5b3814b2ab29.

* Use indirect code header when WIN64EXCEPTIONS is enabled

* Port 'SyncRegDisplayToCurrentContext' and 'FillRegDisplay'

* Revise style 'RUNTIME_FUNCTION__SetUnwindInfoAddress'

* Extract out HandlerData from #ifdef region

* Add UNIXTODO

* Add UNIXTODO

* Port 'GetRegdisplayReturnValue'

* Fix incorrect comment

* Remove messages that mentions WIN32EXCEPTIONS

* Revise AdjustContextForWriteBarrier

* Port 'FaultingExceptionFrame::UpdateRegDisplay'

* Extract out 'AdjustContextForVirtualStub' and 'CLRNoCatchHandler' from #ifdef region

* Merge two #ifdef regions

* Set WIN64EXCEPTIONS as a default for x86/Linux

* Remove unnecessary #ifdef from ThrowControlForThread

* Remove unnecessary stubs

* Add Dependency Check between Compile Flags

* Revise per feedback

Commit migrated from https://github.com/dotnet/coreclr/commit/2fc44782c783f363c1a98e0767f6fa65b5548c95
38 files changed:
src/coreclr/src/ToolBox/SOS/Strike/disasmARM.cpp
src/coreclr/src/debug/daccess/enummem.cpp
src/coreclr/src/debug/di/rspriv.h
src/coreclr/src/debug/di/rsthread.cpp
src/coreclr/src/debug/inc/dbgipcevents.h
src/coreclr/src/inc/clrnt.h
src/coreclr/src/inc/corcompile.h
src/coreclr/src/inc/eetwain.h
src/coreclr/src/inc/gcinfodecoder.h
src/coreclr/src/inc/jithelpers.h
src/coreclr/src/inc/readytorun.h
src/coreclr/src/inc/regdisp.h
src/coreclr/src/inc/switches.h
src/coreclr/src/pal/inc/pal.h
src/coreclr/src/vm/CMakeLists.txt
src/coreclr/src/vm/codeman.cpp
src/coreclr/src/vm/codeman.h
src/coreclr/src/vm/eetwain.cpp
src/coreclr/src/vm/excep.cpp
src/coreclr/src/vm/excep.h
src/coreclr/src/vm/exceptionhandling.cpp
src/coreclr/src/vm/exinfo.cpp
src/coreclr/src/vm/exstate.cpp
src/coreclr/src/vm/exstatecommon.h
src/coreclr/src/vm/frames.h
src/coreclr/src/vm/gcenv.ee.cpp
src/coreclr/src/vm/i386/cgencpu.h
src/coreclr/src/vm/i386/cgenx86.cpp
src/coreclr/src/vm/i386/excepcpu.h
src/coreclr/src/vm/i386/excepx86.cpp
src/coreclr/src/vm/i386/jithelp.S
src/coreclr/src/vm/i386/unixstubs.cpp
src/coreclr/src/vm/jitinterface.cpp
src/coreclr/src/vm/jitinterface.h
src/coreclr/src/vm/stackwalk.cpp
src/coreclr/src/vm/threadsuspend.cpp
src/coreclr/src/zap/common.h
src/coreclr/src/zap/zapcode.cpp