Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/dotnet/runtime.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDavid Wrighton <davidwr@microsoft.com>2020-05-15 22:31:27 +0300
committerGitHub <noreply@github.com>2020-05-15 22:31:27 +0300
commitb764cae5f815fc4328eb59f570872d3285b3f82f (patch)
tree250349ee9ff4947299ce9edefbc8af62a593d044 /eng/DiaSymReaderNative.targets
parent363ac3692ca08a9f8066723bc18c585ef461212a (diff)
Enable basic generation of ngen pdb from composite image (#36311)
* Enable basic generation of ngen pdb from composite image - Port non-line number handling portion of ngen pdb from crossgen to r2rdump - This pdb generation logic may be used for both composite and non-composite R2R images - Only pdb generation is supported. Perfmap generation for unix is not supported - pdb generation is only supported on Windows x86 and amd64 platforms. Diasymreader is not supported on other systems - Pdb generation does not generation symbols with the same names as crossgen. Instead it uses the name generator from r2rdump. For current needs this should be sufficient - Update composite file format so that pdb generation process will work. Major difference is that a CorHeader is always produced for composite images now. This CorHeader is not used by the runtime, but is required for DiaSymReader to generate an ngen pdb.
Diffstat (limited to 'eng/DiaSymReaderNative.targets')
-rw-r--r--eng/DiaSymReaderNative.targets35
1 files changed, 35 insertions, 0 deletions
diff --git a/eng/DiaSymReaderNative.targets b/eng/DiaSymReaderNative.targets
new file mode 100644
index 00000000000..5836a781dfa
--- /dev/null
+++ b/eng/DiaSymReaderNative.targets
@@ -0,0 +1,35 @@
+<!-- Licensed to the .NET Foundation under one or more agreements. The .NET Foundation licenses this file to you under the MIT license. See the LICENSE file in the project root for more information. -->
+<Project>
+
+ <PropertyGroup>
+ <!--
+ Ensure the binaries using DiaSymReader.Native are marked as AnyCPU unless they specify
+ a different target. This should be the default behavior but recent SDK changes to more
+ correctly consider RIDs caused our behavior to change here. Once the SDK logic is settled
+ here we can remove this.
+
+ https://github.com/dotnet/sdk/issues/3495
+ -->
+ <PlatformTarget Condition="'$(PlatformTarget)' == ''">AnyCPU</PlatformTarget>
+ </PropertyGroup>
+
+ <!--
+ This is adding the diasymreader native assets to the output directory of our binaries. The
+ package can't be referenced directly but rather has to have it's assets manually copied
+ out. This logic is responsible for doing that.
+ -->
+ <ItemGroup Condition="'$(DotNetBuildFromSource)' != 'true'">
+ <Content Include="$(NuGetPackageRoot)\microsoft.diasymreader.native\$(MicrosoftDiaSymReaderNativeVersion)\runtimes\win\native\Microsoft.DiaSymReader.Native.x86.dll">
+ <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
+ <Visible>false</Visible>
+ <Pack>false</Pack>
+ </Content>
+ <Content Include="$(NuGetPackageRoot)\microsoft.diasymreader.native\$(MicrosoftDiaSymReaderNativeVersion)\runtimes\win\native\Microsoft.DiaSymReader.Native.amd64.dll">
+ <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
+ <Visible>false</Visible>
+ <Pack>false</Pack>
+ </Content>
+
+ <PackageReference Include="Microsoft.DiaSymReader.Native" Version="$(MicrosoftDiaSymReaderNativeVersion)" ExcludeAssets="all"/>
+ </ItemGroup>
+</Project> \ No newline at end of file