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:
-rw-r--r--Directory.Build.props2
-rwxr-xr-xeng/build.sh13
-rwxr-xr-xeng/native/build-commons.sh5
-rw-r--r--eng/native/functions.cmake14
-rw-r--r--src/coreclr/runtime.proj1
-rw-r--r--src/installer/corehost/corehost.proj1
-rw-r--r--src/libraries/Native/build-native.proj3
7 files changed, 34 insertions, 5 deletions
diff --git a/Directory.Build.props b/Directory.Build.props
index dc11cc1b9f1..6a688d500c4 100644
--- a/Directory.Build.props
+++ b/Directory.Build.props
@@ -107,6 +107,8 @@
<PropertyGroup>
<!-- Default to portable build if not explicitly set -->
<PortableBuild Condition="'$(PortableBuild)' == ''">true</PortableBuild>
+ <!-- Default to discarding symbols if not explicitly set -->
+ <KeepNativeSymbols Condition="'$(KeepNativeSymbols)' == ''">false</KeepNativeSymbols>
<!-- Used for launchSettings.json and runtime config files. -->
<AppDesignerFolder>Properties</AppDesignerFolder>
<!-- Determine what architecture we are building on. -->
diff --git a/eng/build.sh b/eng/build.sh
index f271bb0ca76..1179f8efd27 100755
--- a/eng/build.sh
+++ b/eng/build.sh
@@ -76,6 +76,7 @@ usage()
echo " --gcc Optional argument to build using gcc in PATH (default)."
echo " --gccx.y Optional argument to build using gcc version x.y."
echo " --portablebuild Optional argument: set to false to force a non-portable build."
+ echo " --keepnativesymbols Optional argument: set to true to keep native symbols/debuginfo in generated binaries."
echo ""
echo "Command line arguments starting with '/p:' are passed through to MSBuild."
@@ -402,6 +403,18 @@ while [[ $# > 0 ]]; do
shift 2
;;
+ -keepnativesymbols)
+ if [ -z ${2+x} ]; then
+ echo "No value for keepNativeSymbols is supplied. See help (--help) for supported values." 1>&2
+ exit 1
+ fi
+ passedKeepNativeSymbols="$(echo "$2" | awk '{print tolower($0)}')"
+ if [ "$passedKeepNativeSymbols" = true ]; then
+ arguments="$arguments /p:KeepNativeSymbols=true"
+ fi
+ shift 2
+ ;;
+
*)
extraargs="$extraargs $1"
shift 1
diff --git a/eng/native/build-commons.sh b/eng/native/build-commons.sh
index 877ef003bbe..2e94d68fe69 100755
--- a/eng/native/build-commons.sh
+++ b/eng/native/build-commons.sh
@@ -225,6 +225,7 @@ usage()
echo "-portablebuild: pass -portablebuild=false to force a non-portable build."
echo "-skipconfigure: skip build configuration."
echo "-skipgenerateversion: disable version generation even if MSBuild is supported."
+ echo "-keepnativesymbols: keep native/unmanaged debug symbols."
echo "-verbose: optional argument to enable verbose build output."
echo ""
echo "Additional Options:"
@@ -354,6 +355,10 @@ while :; do
__CompilerMinorVersion="${parts[1]}"
;;
+ keepnativesymbols|-keepnativesymbols)
+ __CMakeArgs="$__CMakeArgs -DCLR_CMAKE_KEEP_NATIVE_SYMBOLS=true"
+ ;;
+
msbuildonunsupportedplatform|-msbuildonunsupportedplatform)
__msbuildonunsupportedplatform=1
;;
diff --git a/eng/native/functions.cmake b/eng/native/functions.cmake
index 525c289d988..27396aa5bb5 100644
--- a/eng/native/functions.cmake
+++ b/eng/native/functions.cmake
@@ -336,8 +336,10 @@ function(strip_symbols targetName outputFilename)
endfunction()
function(install_with_stripped_symbols targetName kind destination)
- strip_symbols(${targetName} symbol_file)
- install_symbols(${symbol_file} ${destination})
+ if(NOT CLR_CMAKE_KEEP_NATIVE_SYMBOLS)
+ strip_symbols(${targetName} symbol_file)
+ install_symbols(${symbol_file} ${destination})
+ endif()
if ("${kind}" STREQUAL "TARGETS")
set(install_source ${targetName})
elseif("${kind}" STREQUAL "PROGRAMS")
@@ -374,13 +376,17 @@ function(install_clr)
foreach(targetName ${INSTALL_CLR_TARGETS})
list(FIND CLR_CROSS_COMPONENTS_LIST ${targetName} INDEX)
if (NOT DEFINED CLR_CROSS_COMPONENTS_LIST OR NOT ${INDEX} EQUAL -1)
- strip_symbols(${targetName} symbol_file)
+ if (NOT CLR_CMAKE_KEEP_NATIVE_SYMBOLS)
+ strip_symbols(${targetName} symbol_file)
+ endif()
foreach(destination ${destinations})
# We don't need to install the export libraries for our DLLs
# since they won't be directly linked against.
install(PROGRAMS $<TARGET_FILE:${targetName}> DESTINATION ${destination})
- install_symbols(${symbol_file} ${destination})
+ if (NOT CLR_CMAKE_KEEP_NATIVE_SYMBOLS)
+ install_symbols(${symbol_file} ${destination})
+ endif()
if(CLR_CMAKE_PGO_INSTRUMENT)
if(WIN32)
diff --git a/src/coreclr/runtime.proj b/src/coreclr/runtime.proj
index 79b99c1649e..0422ba17afd 100644
--- a/src/coreclr/runtime.proj
+++ b/src/coreclr/runtime.proj
@@ -11,6 +11,7 @@
<_CoreClrBuildArg Condition="'$(ContinuousIntegrationBuild)' == 'true'" Include="-ci" />
<_CoreClrBuildArg Condition="'$(CrossBuild)' == 'true'" Include="-cross" />
<_CoreClrBuildArg Condition="'$(PortableBuild)' != 'true'" Include="-portablebuild=false" />
+ <_CoreClrBuildArg Condition="'$(KeepNativeSymbols)' != 'false'" Include="-keepnativesymbols" />
<_CoreClrBuildArg Condition="!$([MSBuild]::IsOsPlatform(Windows))" Include="-os $(TargetOS)" />
<_CoreClrBuildArg Condition="$([MSBuild]::IsOsPlatform(Windows)) and
diff --git a/src/installer/corehost/corehost.proj b/src/installer/corehost/corehost.proj
index 69927e8304b..38c104ca005 100644
--- a/src/installer/corehost/corehost.proj
+++ b/src/installer/corehost/corehost.proj
@@ -30,6 +30,7 @@
<BuildArgs>$(Configuration) $(TargetArchitecture) -apphostver "$(AppHostVersion)" -hostver "$(HostVersion)" -fxrver "$(HostResolverVersion)" -policyver "$(HostPolicyVersion)" -commithash "$(LatestCommit)" -os $(TargetOS)</BuildArgs>
<BuildArgs>$(BuildArgs) -cmakeargs "-DVERSION_FILE_PATH=$(NativeVersionFile)"</BuildArgs>
<BuildArgs Condition="'$(PortableBuild)' != 'true'">$(BuildArgs) -portablebuild=false</BuildArgs>
+ <BuildArgs Condition="'$(KeepNativeSymbols)' != 'false'">$(BuildArgs) -keepnativesymbols</BuildArgs>
<BuildArgs Condition="'$(CrossBuild)' == 'true'">$(BuildArgs) -cross</BuildArgs>
<BuildArgs Condition="'$(Compiler)' != ''">$(BuildArgs) $(Compiler)</BuildArgs>
<BuildArgs Condition="'$(CMakeArgs)' != ''">$(BuildArgs) $(CMakeArgs)</BuildArgs>
diff --git a/src/libraries/Native/build-native.proj b/src/libraries/Native/build-native.proj
index beaf3098745..6f3d4aa0892 100644
--- a/src/libraries/Native/build-native.proj
+++ b/src/libraries/Native/build-native.proj
@@ -24,6 +24,7 @@
<_ProcessorCountArg> -numproc $(MSBuildNodeCount)</_ProcessorCountArg>
<_PortableBuildArg Condition="'$(PortableBuild)' != 'true'"> -portablebuild=false</_PortableBuildArg>
<_CrossBuildArg Condition="'$(CrossBuild)' == 'true'"> -cross</_CrossBuildArg>
+ <_KeepNativeSymbolsBuildArg Condition="'$(KeepNativeSymbols)' != 'false'"> -keepnativesymbols</_KeepNativeSymbolsBuildArg>
<_CMakeArgs Condition="'$(CMakeArgs)' != ''"> $(CMakeArgs)</_CMakeArgs>
<!--
@@ -31,7 +32,7 @@
used to force a specific compiler toolset.
-->
<_BuildNativeCompilerArg Condition="'$(BuildNativeCompiler)' != ''"> $(BuildNativeCompiler)</_BuildNativeCompilerArg>
- <_BuildNativeUnixArgs>$(_BuildNativeArgs)$(_ProcessCountArg)$(_PortableBuildArg)$(_CrossBuildArg)$(_BuildNativeCompilerArg)$(_CMakeArgs) $(Compiler)</_BuildNativeUnixArgs>
+ <_BuildNativeUnixArgs>$(_BuildNativeArgs)$(_ProcessCountArg)$(_PortableBuildArg)$(_CrossBuildArg)$(_BuildNativeCompilerArg)$(_KeepNativeSymbolsBuildArg)$(_CMakeArgs) $(Compiler)</_BuildNativeUnixArgs>
</PropertyGroup>
<Message Text="$(MSBuildThisFileDirectory)build-native.sh $(_BuildNativeUnixArgs)" Importance="High"/>