Skip to content
This repository was archived by the owner on Jan 23, 2023. It is now read-only.
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions src/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,7 @@ add_subdirectory(strongname)
add_subdirectory(binder)
add_subdirectory(classlibnative)
add_subdirectory(dlls)
add_subdirectory(unwinder)

if(WIN32)
add_subdirectory(ipcman)
Expand Down
2 changes: 0 additions & 2 deletions src/debug/daccess/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -38,9 +38,7 @@ if(IS_64BIT_BUILD EQUAL 1)

set(DACCESS_SOURCES
${DACCESS_SOURCES}
unwinder.cpp
amd64/primitives.cpp
amd64/unwinder_amd64.cpp
)
else(IS_64BIT_BUILD EQUAL 1)
set(DACCESS_SOURCES
Expand Down
6 changes: 0 additions & 6 deletions src/debug/daccess/daccess.targets
Original file line number Diff line number Diff line change
Expand Up @@ -58,15 +58,9 @@
</ItemGroup>
<ItemGroup>
<CppCompile Condition="'$(TargetArch)' == 'i386'" Include="$(DaccessSrcDirectory)\i386\primitives.cpp" />
<CppCompile Condition="'$(TargetArch)' == 'amd64'" Include="$(DaccessSrcDirectory)\unwinder.cpp" />
<CppCompile Condition="'$(TargetArch)' == 'amd64'" Include="$(DaccessSrcDirectory)\amd64\unwinder_amd64.cpp" />
<CppCompile Condition="'$(TargetArch)' == 'amd64'" Include="$(DaccessSrcDirectory)\amd64\primitives.cpp" />
<CppCompile Condition="'$(TargetArch)' == 'arm'" Include="$(DaccessSrcDirectory)\arm\primitives.cpp" />
<CppCompile Condition="'$(TargetArch)' == 'arm'" Include="$(DaccessSrcDirectory)\arm\unwinder_arm.cpp" />
<CppCompile Condition="'$(TargetArch)' == 'arm'" Include="$(DaccessSrcDirectory)\unwinder.cpp" />
<CppCompile Condition="'$(TargetArch)' == 'arm64'" Include="$(DaccessSrcDirectory)\arm64\primitives.cpp" />
<CppCompile Condition="'$(TargetArch)' == 'arm64'" Include="$(DaccessSrcDirectory)\arm64\unwinder_arm64.cpp" />
<CppCompile Condition="'$(TargetArch)' == 'arm64'" Include="$(DaccessSrcDirectory)\unwinder.cpp" />
</ItemGroup>
<!--Import the targets-->
<Import Project="$(_NTDRIVE)$(_NTROOT)\ndp\clr\clr.targets" />
Expand Down
1 change: 1 addition & 0 deletions src/dirs.proj
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,7 @@
<ProjectFile Include="gcinfo\dirs.proj" />
<ProjectFile Include="delayimp\delayimp.nativeproj" Condition="'$(BuildProjectName)' != 'CoreSys'"/>
<ProjectFile Include="dlls\dirs.proj" />
<ProjectFile Include="unwinder\dirs.proj" Condition="'$(TargetArch)' != 'i386'" />

<!-- In FXMain we build RyuJIT only for amd64 and arm64 -->
<ProjectFile Include="jit32\dirs.proj" Condition="'$(BuildArchitecture)' != 'amd64' and '$(BuildArchitecture)' != 'arm64'"/>
Expand Down
1 change: 1 addition & 0 deletions src/dlls/mscordac/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,7 @@ set(COREDAC_LIBRARIES
mdruntimerw_dac
strongname_dac
utilcode_dac
unwinder_dac
)

if(WIN32)
Expand Down
3 changes: 3 additions & 0 deletions src/dlls/mscordac/mscordac.targets
Original file line number Diff line number Diff line change
Expand Up @@ -77,6 +77,9 @@
<TargetLib Include="$(ClrLibPath)\strongname_dac$(XPlatHostLibSuffix).lib">
<ProjectReference>$(ClrSrcDirectory)StrongName\api\dac\$(XPlatHostLibBuildDir)\strongname_dac.nativeproj</ProjectReference>
</TargetLib>
<TargetLib Condition="'$(TargetArch)' != 'i386'" Include="$(ClrLibPath)\unwinder_dac$(XPlatHostLibSuffix).lib">
<ProjectReference>$(ClrSrcDirectory)unwinder\dac\$(XPlatHostLibBuildDir)\unwinder_dac.nativeproj</ProjectReference>
</TargetLib>
<TargetLib Include="$(ClrLibPath)\dbgutil$(XPlatHostLibSuffix).lib">
<ProjectReference>$(ClrSrcDirectory)debug\dbgutil\$(XPlatHostLibBuildDir)\dbgutil.nativeproj</ProjectReference>
</TargetLib>
Expand Down
1 change: 1 addition & 0 deletions src/unwinder/.gitmirror
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Only contents of this folder, excluding subfolders, will be mirrored by the Git-TFS Mirror.
22 changes: 22 additions & 0 deletions src/unwinder/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
include_directories(BEFORE ${VM_DIR})
include_directories(BEFORE ${VM_DIR}/${ARCH_SOURCES_DIR})
include_directories(BEFORE ${CMAKE_CURRENT_SOURCE_DIR})
include_directories(BEFORE ${CLR_DIR}/src/unwinder)
include_directories(${CLR_DIR}/src/debug/ee)
include_directories(${CLR_DIR}/src/gc)
include_directories(${CLR_DIR}/src/gcdump)
include_directories(${CLR_DIR}/src/debug/daccess)

if(IS_64BIT_BUILD EQUAL 1)
include_directories(amd64)

set(UNWINDER_SOURCES
unwinder.cpp
amd64/unwinder_amd64.cpp
)

convert_to_absolute_path(UNWINDER_SOURCES ${UNWINDER_SOURCES})

add_subdirectory(dac)
endif(IS_64BIT_BUILD EQUAL 1)

1 change: 1 addition & 0 deletions src/unwinder/amd64/.gitmirror
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Only contents of this folder, excluding subfolders, will be mirrored by the Git-TFS Mirror.
1 change: 1 addition & 0 deletions src/unwinder/arm/.gitmirror
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Only contents of this folder, excluding subfolders, will be mirrored by the Git-TFS Mirror.
1 change: 1 addition & 0 deletions src/unwinder/arm64/.gitmirror
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Only contents of this folder, excluding subfolders, will be mirrored by the Git-TFS Mirror.
1 change: 1 addition & 0 deletions src/unwinder/dac/.gitmirror
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Only contents of this folder, excluding subfolders, will be mirrored by the Git-TFS Mirror.
10 changes: 10 additions & 0 deletions src/unwinder/dac/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
include(${CLR_DIR}/dac.cmake)

add_definitions(-DFEATURE_NO_HOST)
add_definitions(-D_TARGET_AMD64_=1)
add_definitions(-DDBG_TARGET_64BIT=1)
add_definitions(-DDBG_TARGET_AMD64=1)
add_definitions(-DDBG_TARGET_WIN64=1)
add_definitions(-D_WIN64=1)

add_library(unwinder_dac ${UNWINDER_SOURCES})
18 changes: 18 additions & 0 deletions src/unwinder/dac/dirs.proj
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<!--Import the settings-->
<Import Project="$(_NTDRIVE)$(_NTROOT)\ndp\clr\clr.props" />

<PropertyGroup>
<BuildInPhase1>true</BuildInPhase1>
<BuildInPhaseDefault>false</BuildInPhaseDefault>
<BuildCoreBinaries>true</BuildCoreBinaries>
<BuildSysBinaries>true</BuildSysBinaries>
</PropertyGroup>

<!--The following projects will build during PHASE 1-->
<ItemGroup Condition="'$(BuildExePhase)' == '1'">
<ProjectFile Include="hostlocal\unwinder_dac.nativeproj" />
</ItemGroup>

<Import Project="$(_NTDRIVE)$(_NTROOT)\tools\Microsoft.DevDiv.Traversal.targets" />
</Project>
1 change: 1 addition & 0 deletions src/unwinder/dac/hostlocal/.gitmirror
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Only contents of this folder, excluding subfolders, will be mirrored by the Git-TFS Mirror.
13 changes: 13 additions & 0 deletions src/unwinder/dac/hostlocal/unwinder_dac.nativeproj
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">

<PropertyGroup>
<BuildCoreBinaries>true</BuildCoreBinaries>
<BuildSysBinaries>true</BuildSysBinaries>
<OutputName>unwinder_dac</OutputName>
</PropertyGroup>

<!-- compile items -->
<Import Project="$(_NTDRIVE)$(_NTROOT)\ndp\clr\src\unwinder\unwinder.targets" />

</Project>
1 change: 1 addition & 0 deletions src/unwinder/dac/hostwinamd64/.gitmirror
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Only contents of this folder, excluding subfolders, will be mirrored by the Git-TFS Mirror.
5 changes: 5 additions & 0 deletions src/unwinder/dac/hostwinamd64/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
remove_definitions(-DPROFILING_SUPPORTED)
add_definitions(-DPROFILING_SUPPORTED_DATA)
add_definitions(-DDACCESS_COMPILE)

add_library(unwinder_dac_amd64 ${UNWINDER_SOURCES})
15 changes: 15 additions & 0 deletions src/unwinder/dac/hostwinamd64/unwinder_dac.nativeproj
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">

<!-- xplat Windows host, local target DAC build -->
<Import Project="$(_NTDRIVE)$(_NTROOT)\ndp\clr\xplat\SetTargetLocal.props" />
<Import Project="$(_NTDRIVE)$(_NTROOT)\ndp\clr\xplat\SetHostWinAMD64.props" />
<PropertyGroup>
<BuildSysBinaries>true</BuildSysBinaries>
<OutputName>unwinder_dac_amd64</OutputName>
</PropertyGroup>

<!-- compile items -->
<Import Project="$(_NTDRIVE)$(_NTROOT)\ndp\clr\src\unwinder\unwinder.targets" />

</Project>
1 change: 1 addition & 0 deletions src/unwinder/dac/hostwinx86/.gitmirror
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Only contents of this folder, excluding subfolders, will be mirrored by the Git-TFS Mirror.
15 changes: 15 additions & 0 deletions src/unwinder/dac/hostwinx86/unwinder_dac.nativeproj
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">

<!-- xplat win32 host, local target DAC build -->
<Import Project="$(_NTDRIVE)$(_NTROOT)\ndp\clr\xplat\SetTargetLocal.props" />
<Import Project="$(_NTDRIVE)$(_NTROOT)\ndp\clr\xplat\SetHostWinx86.props" />
<PropertyGroup>
<BuildSysBinaries>true</BuildSysBinaries>
<OutputName>unwinder_dac_x86</OutputName>
</PropertyGroup>

<!-- compile items -->
<Import Project="$(_NTDRIVE)$(_NTROOT)\ndp\clr\src\unwinder\unwinder.targets" />

</Project>
19 changes: 19 additions & 0 deletions src/unwinder/dirs.proj
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<!--Import the settings-->
<Import Project="$(_NTDRIVE)$(_NTROOT)\ndp\clr\clr.props" />

<PropertyGroup>
<BuildInPhase1>true</BuildInPhase1>
<BuildInPhaseDefault>false</BuildInPhaseDefault>
<BuildCoreBinaries>true</BuildCoreBinaries>
<BuildSysBinaries>true</BuildSysBinaries>
</PropertyGroup>

<!--The following projects will build during PHASE 1-->
<ItemGroup Condition="'$(BuildExePhase)' == '1'">
<ProjectFile Include="dac\dirs.proj" />
</ItemGroup>

<!--Import the targets-->
<Import Project="$(_NTDRIVE)$(_NTROOT)\tools\Microsoft.DevDiv.Traversal.targets" />
</Project>
13 changes: 13 additions & 0 deletions src/unwinder/stdafx.cpp
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
//
// Copyright (c) Microsoft. All rights reserved.
// Licensed under the MIT license. See LICENSE file in the project root for full license information.
//
//*****************************************************************************
// File: stdafx.cpp
//

//
// Host for precompiled headers.
//
//*****************************************************************************
#include "stdafx.h" // Precompiled header key.
19 changes: 19 additions & 0 deletions src/unwinder/stdafx.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
//
// Copyright (c) Microsoft. All rights reserved.
// Licensed under the MIT license. See LICENSE file in the project root for full license information.
//
//*****************************************************************************
// File: stdafx.h
//

// Prevent the inclusion of Random.h from disabling rand(). rand() is used by some other headers we include
// and there's no reason why DAC should be forbidden from using it.
#define DO_NOT_DISABLE_RAND

#define USE_COM_CONTEXT_DEF

#include <common.h>
#include <debugger.h>
#include <methoditer.h>
#include <dacprivate.h>
#include <dacimpl.h>
File renamed without changes.
60 changes: 60 additions & 0 deletions src/unwinder/unwinder.targets
Original file line number Diff line number Diff line change
@@ -0,0 +1,60 @@
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">

<!--Import the settings-->
<Import Project="$(_NTDRIVE)$(_NTROOT)\ndp\clr\clr.props" />
<Import Project="$(_NTDRIVE)$(_NTROOT)\ndp\clr\dac.props" />
<Import Project="$(_NTDRIVE)$(_NTROOT)\ndp\clr\src\debug\SetDebugTargetLocal.props" />
<!--Leaf project Properties-->
<PropertyGroup>
<UseStl Condition="'$(BuildForCoreSystem)' != 'true'">true</UseStl>

<UserIncludes>
$(UserIncludes);
$(ClrSrcDirectory)\unwinder;
$(ClrSrcDirectory)\debug\daccess;
$(ClrSrcDirectory)\vm;
$(ClrSrcDirectory)\vm\$(TargetCpu);
$(ClrSrcDirectory)\debug\inc;
$(ClrSrcDirectory)\debug\inc\$(TargetCpu);
$(ClrSrcDirectory)\debug\inc\dump;
$(ClrSrcDirectory)\debug\ee;
$(ClrSrcDirectory)\inc;
$(VCToolsIncPath);
</UserIncludes>

<CDefines>$(CDefines);UNICODE;_UNICODE;$(USER_SPECIFIC_C_DEFINES);FEATURE_NO_HOST</CDefines>

<OutputName Condition="'$(OutputName)' == ''">unwinder_dac</OutputName>
<OutputPath>$(ClrLibDest)</OutputPath>
<TargetType>LIBRARY</TargetType>
<PCHHeader>stdafx.h</PCHHeader>
<EnableCxxPCHHeaders>true</EnableCxxPCHHeaders>
<PCHCompile>$(ClrSrcDirectory)\unwinder\stdafx.cpp</PCHCompile>

<UnwinderSourcesDir>$(ClrSrcDirectory)\unwinder</UnwinderSourcesDir>
<Amd64SourcesDir>$(ClrSrcDirectory)\unwinder\amd64</Amd64SourcesDir>
<ArmSourcesDir>$(ClrSrcDirectory)\unwinder\arm</ArmSourcesDir>
<Arm64SourcesDir>$(ClrSrcDirectory)\unwinder\arm64</Arm64SourcesDir>
</PropertyGroup>

<ItemGroup>
<CppCompile Include="$(UnwinderSourcesDir)\unwinder.cpp" />
</ItemGroup>

<!-- AMD64_SOURCES -->
<ItemGroup Condition="'$(TargetArch)' == 'amd64'">
<CppCompile Include="$(Amd64SourcesDir)\unwinder_amd64.cpp" />
</ItemGroup>
<!-- ARM_SOURCES -->
<ItemGroup Condition="'$(TargetArch)' == 'arm'">
<CppCompile Include="$(ArmSourcesDir)\unwinder_arm.cpp" />
</ItemGroup>
<!-- ARM64_SOURCES -->
<ItemGroup Condition="'$(TargetArch)' == 'arm64'">
<CppCompile Include="$(Arm64SourcesDir)\unwinder_arm64.cpp" />
</ItemGroup>

<Import Project="$(Clrbase)\clr.targets" />

</Project>