From 9d890f42f525dc81173837080be0fe301929cb61 Mon Sep 17 00:00:00 2001 From: Tom Deseyn Date: Wed, 1 Mar 2023 14:21:39 +0100 Subject: [PATCH 01/36] Try to untangle the rid calculation. --- Directory.Build.props | 95 ++++++++------------ eng/build.ps1 | 7 -- eng/build.sh | 14 ++- eng/native/build-commons.sh | 11 ++- eng/native/init-distro-rid.sh | 164 ++++++++-------------------------- src/coreclr/build-runtime.sh | 1 - src/tests/build.proj | 3 +- src/tests/build.sh | 1 - 8 files changed, 94 insertions(+), 202 deletions(-) diff --git a/Directory.Build.props b/Directory.Build.props index 7d3052b6942f0..83b16866677ab 100644 --- a/Directory.Build.props +++ b/Directory.Build.props @@ -171,69 +171,43 @@ $([MSBuild]::NormalizeDirectory($(ArtifactsObjDir), 'wasmtime')) - - + false true + - <_hostRid Condition="'$(MSBuildRuntimeType)' == 'core'">$([System.Runtime.InteropServices.RuntimeInformation]::RuntimeIdentifier) - <_hostRid Condition="'$(MSBuildRuntimeType)' != 'core'">win-$([System.Runtime.InteropServices.RuntimeInformation]::OSArchitecture.ToString().ToLowerInvariant) - - <_parseDistroRid>$(__DistroRid) - <_parseDistroRid Condition="'$(_parseDistroRid)' == ''">$(_hostRid) - <_distroRidIndex>$(_parseDistroRid.LastIndexOf('-')) + + + <_portableOS>$(__PortableOS) + <_portableOS Condition="'$(_portableOS)' == ''">$(TargetOS.ToLowerInvariant()) + <_portableOS Condition="'$(_portableOS)' == 'windows'">win - <_runtimeOS>$(RuntimeOS) - <_runtimeOS Condition="'$(_runtimeOS)' == ''">$(_parseDistroRid.SubString(0, $(_distroRidIndex))) - - - <_runtimeOS Condition="'$(TargetsMobile)' == 'true'">$(TargetOS.ToLowerInvariant()) - - <_portableOS>linux - <_portableOS Condition="'$(_runtimeOS)' == 'linux-musl' or $(_runtimeOS.StartsWith('alpine'))">linux-musl - <_portableOS Condition="'$(_runtimeOS)' == 'linux-bionic'">linux-bionic - <_portableOS Condition="'$(_hostOS)' == 'osx'">osx - <_portableOS Condition="'$(_runtimeOS)' == 'win' or '$(TargetOS)' == 'windows'">win - <_portableOS Condition="'$(_runtimeOS)' == 'freebsd' or '$(TargetOS)' == 'freebsd'">freebsd - <_portableOS Condition="'$(_runtimeOS)' == 'illumos' or '$(TargetOS)' == 'illumos'">illumos - <_portableOS Condition="'$(_runtimeOS)' == 'solaris' or '$(TargetOS)' == 'solaris'">solaris - <_portableOS Condition="'$(_runtimeOS)' == 'browser'">browser - <_portableOS Condition="'$(_runtimeOS)' == 'wasi'">wasi - <_portableOS Condition="'$(_runtimeOS)' == 'maccatalyst'">maccatalyst - <_portableOS Condition="'$(_runtimeOS)' == 'ios'">ios - <_portableOS Condition="'$(_runtimeOS)' == 'iossimulator'">iossimulator - <_portableOS Condition="'$(_runtimeOS)' == 'tvos'">tvos - <_portableOS Condition="'$(_runtimeOS)' == 'tvossimulator'">tvossimulator - <_portableOS Condition="'$(_runtimeOS)' == 'android'">android - - <_runtimeOS Condition="$(_runtimeOS.StartsWith('tizen'))">linux - <_runtimeOS Condition="'$(PortableBuild)' == 'true'">$(_portableOS) - <_runtimeOS Condition="'$(RuntimeOS)' == '' and '$(DotNetBuildFromSource)' == 'true'">$(_portableOS) - - <_packageLibc Condition="$(_runtimeOS.Contains('musl'))">-musl - <_packageOS Condition="'$(CrossBuild)' == 'true'">$(_hostOS)$(_packageLibc) - <_packageOS Condition="'$(_packageOS)' == '' and '$(PortableBuild)' == 'true'">$(_portableOS) - <_packageOS Condition="'$(_packageOS)' == ''">$(_runtimeOS) + true + true - - <_toolsRID Condition="'$(CrossBuild)' == 'true'">$(_hostOS)-$(_hostArch) - <_toolsRID Condition="'$(BuildingInsideVisualStudio)' == 'true'">$(_runtimeOS)-x64 - <_toolsRID Condition="'$(_toolsRID)' == ''">$(_runtimeOS)-$(_hostArch) + + + <_packageOS>$(RuntimeOS) + <_packageOS Condition="'$(_packageOS)' == ''">$(_portableOS) + <_packageOS Condition="'$(CrossBuild)' == 'true'">$(_hostOS) + <_packageOS Condition="'$(CrossBuild)' == 'true' and '$(RuntimeOS)' == 'linux-musl'">linux-musl + + <_toolsRID>$(_packageOS)-$(_hostArch) + <_toolsRID Condition="'$(BuildingInsideVisualStudio)' == 'true'">$(_portableOS)-x64 - <_toolsRID Condition="'$(_runtimeOS)' == 'browser' or '$(_runtimeOS)' == 'wasi'">linux-x64 - <_toolsRID Condition="('$(_runtimeOS)' == 'browser' or '$(_runtimeOS)' == 'wasi') and '$(HostOS)' == 'windows'">win-x64 - <_toolsRID Condition="('$(_runtimeOS)' == 'browser' or '$(_runtimeOS)' == 'wasi') and '$(HostOS)' == 'osx'">osx-x64 + <_toolsRID Condition="'$(_portableOS)' == 'browser' or '$(_portableOS)' == 'wasi'">linux-x64 + <_toolsRID Condition="('$(_portableOS)' == 'browser' or '$(_portableOS)' == 'wasi') and '$(HostOS)' == 'windows'">win-x64 + <_toolsRID Condition="('$(_portableOS)' == 'browser' or '$(_portableOS)' == 'wasi') and '$(HostOS)' == 'osx'">osx-x64 - <_toolsRID Condition="'$(_runtimeOS)' == 'android' or '$(_runtimeOS)' == 'linux-bionic'">linux-x64 - <_toolsRID Condition="('$(_runtimeOS)' == 'android' or '$(_runtimeOS)' == 'linux-bionic') and '$(HostOS)' == 'windows'">win-x64 - <_toolsRID Condition="('$(_runtimeOS)' == 'android' or '$(_runtimeOS)' == 'linux-bionic') and '$(HostOS)' == 'osx'">osx-x64 + <_toolsRID Condition="'$(_portableOS)' == 'android' or '$(_portableOS)' == 'linux-bionic'">linux-x64 + <_toolsRID Condition="('$(_portableOS)' == 'android' or '$(_portableOS)' == 'linux-bionic') and '$(HostOS)' == 'windows'">win-x64 + <_toolsRID Condition="('$(_portableOS)' == 'android' or '$(_portableOS)' == 'linux-bionic') and '$(HostOS)' == 'osx'">osx-x64 - <_toolsRID Condition="'$(_runtimeOS)' == 'maccatalyst' or '$(_runtimeOS)' == 'ios' or '$(_runtimeOS)' == 'iossimulator' or '$(_runtimeOS)' == 'tvos' or '$(_runtimeOS)' == 'tvossimulator'">osx-x64 + <_toolsRID Condition="'$(_portableOS)' == 'maccatalyst' or '$(_portableOS)' == 'ios' or '$(_portableOS)' == 'iossimulator' or '$(_portableOS)' == 'tvos' or '$(_portableOS)' == 'tvossimulator'">osx-x64 linux-$(_hostArch) @@ -241,12 +215,21 @@ $(ToolsRID) $(_packageOS)-$(TargetArchitecture) + - $(_hostRid) - $(PackageRID) - $(_portableOS)-$(TargetArchitecture) - true - true + + + <_hostRid Condition="'$(MSBuildRuntimeType)' == 'core'">$([System.Runtime.InteropServices.RuntimeInformation]::RuntimeIdentifier) + <_hostRid Condition="'$(MSBuildRuntimeType)' != 'core'">win-$([System.Runtime.InteropServices.RuntimeInformation]::OSArchitecture.ToString().ToLowerInvariant) + + <_parseDistroRid>$(__DistroRid) + <_parseDistroRid Condition="'$(_parseDistroRid)' == ''">$(_hostRid) + <_distroRidIndex>$(_parseDistroRid.LastIndexOf('-')) + + <_outputOS>$(_parseDistroRid.SubString(0, $(_distroRidIndex))) + <_outputOS Condition="'$(PortableBuild)' == 'true'">$(_portableOS) + + $(_outputOS)-$(TargetArchitecture) diff --git a/eng/build.ps1 b/eng/build.ps1 index 6bf2dc78f7c06..99f0864317f39 100644 --- a/eng/build.ps1 +++ b/eng/build.ps1 @@ -304,13 +304,6 @@ foreach ($config in $configuration) { $argumentsWithConfig = $arguments + " -configuration $((Get-Culture).TextInfo.ToTitleCase($config))"; foreach ($singleArch in $arch) { $argumentsWithArch = "/p:TargetArchitecture=$singleArch " + $argumentsWithConfig - if ($os -eq "browser") { - $env:__DistroRid="browser-$singleArch" - } elseif ($os -eq "wasi") { - $env:__DistroRid="wasi-$singleArch" - } else { - $env:__DistroRid="win-$singleArch" - } Invoke-Expression "& `"$PSScriptRoot/common/build.ps1`" $argumentsWithArch" if ($lastExitCode -ne 0) { $failedBuilds += "Configuration: $config, Architecture: $singleArch" diff --git a/eng/build.sh b/eng/build.sh index 1147ec248a784..cda2fab5582b5 100755 --- a/eng/build.sh +++ b/eng/build.sh @@ -134,7 +134,7 @@ initDistroRid() local passedRootfsDir="" local targetOs="$1" - local buildArch="$2" + local targetArch="$2" local isCrossBuild="$3" local isPortableBuild="$4" @@ -142,7 +142,7 @@ initDistroRid() if [[ $isCrossBuild == 1 && "$targetOs" != "osx" ]]; then passedRootfsDir=${ROOTFS_DIR} fi - initDistroRidGlobal ${targetOs} ${buildArch} ${isPortableBuild} ${passedRootfsDir} + initDistroRidGlobal "${targetOs}" "${targetArch}" "${isPortableBuild}" "${passedRootfsDir}" } showSubsetHelp() @@ -286,6 +286,14 @@ while [[ $# > 0 ]]; do os="illumos" ;; solaris) os="solaris" ;; + linux-bionic) + os="linux" + __PortableOS=linux-bionic + ;; + linux-musl) + os="linux-musl" + __PortableOS=linux-musl + ;; *) echo "Unsupported target OS '$2'." echo "The allowed values are windows, linux, freebsd, osx, maccatalyst, tvos, tvossimulator, ios, iossimulator, android, browser, wasi, illumos and solaris." @@ -516,7 +524,7 @@ if [[ "${TreatWarningsAsErrors:-}" == "false" ]]; then arguments="$arguments -warnAsError 0" fi -initDistroRid $os $arch $crossBuild $portableBuild +initDistroRid "$os" "$arch" "$crossBuild" "$portableBuild" # Disable targeting pack caching as we reference a partially constructed targeting pack and update it later. # The later changes are ignored when using the cache. diff --git a/eng/native/build-commons.sh b/eng/native/build-commons.sh index a1f8f550cdc8b..226f852d152a0 100755 --- a/eng/native/build-commons.sh +++ b/eng/native/build-commons.sh @@ -284,7 +284,6 @@ source "$__RepoRootDir/eng/native/init-os-and-arch.sh" __TargetArch=$arch __TargetOS=$os __HostOS=$os -__BuildOS=$os __OutputRid='' # Get the number of processors available to the scheduler @@ -536,12 +535,16 @@ if [[ "$__CrossBuild" == 1 ]]; then fi fi -# init the target distro name +# init the target distro name (__DistroRid) and target portable os (__PortableOS). initTargetDistroRid - if [ -z "$__OutputRid" ]; then - __OutputRid="$(echo $__DistroRid | tr '[:upper:]' '[:lower:]')" + if [[ "$__PortableBuild" == 0 ]]; then + __OutputRid="$__DistroRid" + else + __OutputRid="$__PortableOS-$__TargetArch" + fi fi +echo "__OutputRid: ${__OutputRid}" # When the host runs on an unknown rid, it falls back to the output rid __HostFallbackOS="${__OutputRid%-*}" # Strip architecture diff --git a/eng/native/init-distro-rid.sh b/eng/native/init-distro-rid.sh index 3f22de10061fa..e280bba590a0d 100644 --- a/eng/native/init-distro-rid.sh +++ b/eng/native/init-distro-rid.sh @@ -1,105 +1,74 @@ #!/usr/bin/env bash -# initNonPortableDistroRid +# getNonPortableDistroRid # # Input: # targetOs: (str) -# buildArch: (str) -# isPortable: (int) +# targetArch: (str) # rootfsDir: (str) # # Return: -# None -# -# Notes: -# -# initNonPortableDistroRid will attempt to initialize a non portable rid. These -# rids are specific to distros need to build the product/package and consume -# them on the same platform. -# -# If -portablebuild=false is passed a non-portable rid will be created for any -# distro. -# -# It is important to note that the function does not return anything, but it -# exports __DistroRid, if there is a non-portable distro rid to be used. -# -initNonPortableDistroRid() +# non-portable rid +getNonPortableDistroRid() { - # Make sure out parameter is cleared. - __DistroRid= - local targetOs="$1" - local buildArch="$2" - local isPortable="$3" - local rootfsDir="$4" - local nonPortableBuildID="" + local targetArch="$2" + local rootfsDir="$3" + local nonPortableRid="" if [ "$targetOs" = "linux" ]; then if [ -e "${rootfsDir}/etc/os-release" ]; then source "${rootfsDir}/etc/os-release" - # We have forced __PortableBuild=0. This is because -portablebuld - # has been passed as false. - if (( isPortable == 0 )); then - if [[ "${ID}" == "rhel" || "${ID}" == "rocky" || "${ID}" == "alpine" ]]; then - # remove the last version digit - VERSION_ID="${VERSION_ID%.*}" - fi + if [[ "${ID}" == "rhel" || "${ID}" == "rocky" || "${ID}" == "alpine" ]]; then + # remove the last version digit + VERSION_ID="${VERSION_ID%.*}" + fi - if [[ "${VERSION_ID}" =~ ^([[:digit:]]|\.)+$ ]]; then - nonPortableBuildID="${ID}.${VERSION_ID}-${buildArch}" - else - # Rolling release distros either do not set VERSION_ID, set it as blank or - # set it to non-version looking string (such as TEMPLATE_VERSION_ID on ArchLinux); - # so omit it here to be consistent with everything else. - nonPortableBuildID="${ID}-${buildArch}" - fi + if [[ "${VERSION_ID}" =~ ^([[:digit:]]|\.)+$ ]]; then + nonPortableRid="${ID}.${VERSION_ID}-${targetArch}" + else + # Rolling release distros either do not set VERSION_ID, set it as blank or + # set it to non-version looking string (such as TEMPLATE_VERSION_ID on ArchLinux); + # so omit it here to be consistent with everything else. + nonPortableRid="${ID}-${targetArch}" fi elif [ -e "${rootfsDir}/android_platform" ]; then source "$rootfsDir"/android_platform - nonPortableBuildID="$RID" + nonPortableRid="$RID" fi fi if [ "$targetOs" = "freebsd" ]; then - if (( isPortable == 0 )); then - # $rootfsDir can be empty. freebsd-version is shell script and it should always work. - __freebsd_major_version=$($rootfsDir/bin/freebsd-version | { read v; echo "${v%%.*}"; }) - nonPortableBuildID="freebsd.$__freebsd_major_version-${buildArch}" - fi + # $rootfsDir can be empty. freebsd-version is shell script and it should always work. + __freebsd_major_version=$($rootfsDir/bin/freebsd-version | { read v; echo "${v%%.*}"; }) + nonPortableRid="freebsd.$__freebsd_major_version-${targetArch}" elif command -v getprop && getprop ro.product.system.model 2>&1 | grep -qi android; then __android_sdk_version=$(getprop ro.build.version.sdk) - nonPortableBuildID="android.$__android_sdk_version-${buildArch}" + nonPortableRid="android.$__android_sdk_version-${targetArch}" elif [ "$targetOs" = "illumos" ]; then __uname_version=$(uname -v) case "$__uname_version" in omnios-*) __omnios_major_version=$(echo "${__uname_version:8:2}") - nonPortableBuildID=omnios."$__omnios_major_version"-"$buildArch" + nonPortableRid=omnios."$__omnios_major_version"-"$targetArch" ;; joyent_*) __smartos_major_version=$(echo "${__uname_version:7:4}") - nonPortableBuildID=smartos."$__smartos_major_version"-"$buildArch" + nonPortableRid=smartos."$__smartos_major_version"-"$targetArch" ;; illumos_*) - nonPortableBuildID=openindiana-"$buildArch" + nonPortableRid=openindiana-"$targetArch" ;; esac elif [ "$targetOs" = "solaris" ]; then __uname_version=$(uname -v) __solaris_major_version=$(echo "${__uname_version%.*}") - nonPortableBuildID=solaris."$__solaris_major_version"-"$buildArch" + nonPortableRid=solaris."$__solaris_major_version"-"$targetArch" fi - if [ -n "${nonPortableBuildID}" ]; then - __DistroRid="${nonPortableBuildID}" - - # We are using a non-portable build rid. Force __PortableBuild to false. - __PortableBuild=0 - - export __DistroRid __PortableBuild - fi + echo "$(echo $nonPortableRid | tr '[:upper:]' '[:lower:]')" } # initDistroRidGlobal @@ -118,20 +87,13 @@ initNonPortableDistroRid() # It is important to note that the function does not return anything, but it # exports the following variables on success: # -# __DistroRid -# __PortableBuild +# __DistroRid : Non-portable rid of the target platform. +# __PortableOS : OS-part of the portable rid that corresponds to the target platform. # initDistroRidGlobal() { - # __DistroRid must be set at the end of the function. - # Previously we would create a variable __HostDistroRid and/or __DistroRid. - # - # __HostDistroRid was used in the case of a non-portable build, it has been - # deprecated. Now only __DistroRid is supported. It will be used for both - # portable and non-portable rids and will be used in build-packages.sh - local targetOs="$1" - local buildArch="$2" + local targetArch="$2" local isPortable="$3" local rootfsDir="" if [ "$#" -ge 4 ]; then @@ -146,71 +108,17 @@ initDistroRidGlobal() fi fi - initNonPortableDistroRid "${targetOs}" "${buildArch}" "${isPortable}" "${rootfsDir}" - - if [ "$buildArch" = "wasm" ]; then - if [ "$targetOs" = "browser" ]; then - __DistroRid=browser-wasm - export __DistroRid - elif [ "$targetOs" = "wasi" ]; then - __DistroRid=wasi-wasm - export __DistroRid - fi - fi - - if [ -z "${__DistroRid}" ]; then - # The non-portable build rid was not set. Set the portable rid. + __DistroRid=$(getNonPortableDistroRid "${targetOs}" "${targetArch}" "${rootfsDir}") - __PortableBuild=1 - export __PortableBuild - local distroRid="" + if [ -z "${__PortableOS:-}" ]; then + __PortableOS="$targetOs" # Check for musl-based distros (e.g Alpine Linux, Void Linux). if "${rootfsDir}/usr/bin/ldd" --version 2>&1 | grep -q musl || strings "${rootfsDir}/usr/bin/ldd" 2>&1 | grep -q musl; then - distroRid="linux-musl-${buildArch}" + __PortableOS="linux-musl" fi - - if [ -z "${distroRid}" ]; then - if [ "$targetOs" = "linux" ]; then - distroRid="linux-$buildArch" - elif [ "$targetOs" = "linux-bionic" ]; then - distroRid="linux-bionic-$buildArch" - elif [ "$targetOs" = "osx" ]; then - distroRid="osx-$buildArch" - elif [ "$targetOs" = "maccatalyst" ]; then - distroRid="maccatalyst-$buildArch" - elif [ "$targetOs" = "tvos" ]; then - distroRid="tvos-$buildArch" - elif [ "$targetOs" = "tvossimulator" ]; then - distroRid="tvossimulator-$buildArch" - elif [ "$targetOs" = "ios" ]; then - distroRid="ios-$buildArch" - elif [ "$targetOs" = "iossimulator" ]; then - distroRid="iossimulator-$buildArch" - elif [ "$targetOs" = "android" ]; then - distroRid="android-$buildArch" - elif [ "$targetOs" = "browser" ]; then - distroRid="browser-$buildArch" - elif [ "$targetOs" = "wasi" ]; then - distroRid="wasi-$buildArch" - elif [ "$targetOs" = "freebsd" ]; then - distroRid="freebsd-$buildArch" - elif [ "$targetOs" = "illumos" ]; then - distroRid="illumos-$buildArch" - elif [ "$targetOs" = "solaris" ]; then - distroRid="solaris-$buildArch" - fi - fi - - __DistroRid="${distroRid}" - export __DistroRid - fi - - if [ -z "$__DistroRid" ]; then - echo "DistroRid is not set. This is almost certainly an error" - exit 1 fi - echo "__DistroRid: ${__DistroRid}" + export __DistroRid __PortableOS } diff --git a/src/coreclr/build-runtime.sh b/src/coreclr/build-runtime.sh index 7399088f291d9..1b3740dc37b20 100755 --- a/src/coreclr/build-runtime.sh +++ b/src/coreclr/build-runtime.sh @@ -81,7 +81,6 @@ __Compiler=clang __CommonMSBuildArgs= __ConfigureOnly=0 __CrossBuild=0 -__DistroRid="" __PgoInstrument=0 __PgoOptDataPath="" __PgoOptimize=0 diff --git a/src/tests/build.proj b/src/tests/build.proj index 56a58aaca9f80..42f1f537e8d30 100644 --- a/src/tests/build.proj +++ b/src/tests/build.proj @@ -435,8 +435,7 @@ <_ConfigurationProperties>/p:TargetOS=$(TargetOS) /p:TargetArchitecture=$(TargetArchitecture) /p:Configuration=$(Configuration) /p:CrossBuild=$(CrossBuild) - "$(DotNetTool)" restore $(RestoreProj) $(PackageVersionArg) /p:SetTFMForRestore=true $(_ConfigurationProperties) - "$(DotNetTool)" restore -r $(__DistroRid) $(RestoreProj) $(PackageVersionArg) /p:SetTFMForRestore=true $(_ConfigurationProperties) + "$(DotNetTool)" restore -r $(PackageRID) $(RestoreProj) $(PackageVersionArg) /p:SetTFMForRestore=true $(_ConfigurationProperties) diff --git a/src/tests/build.sh b/src/tests/build.sh index 685c9cb72864b..dee5897dde0cf 100755 --- a/src/tests/build.sh +++ b/src/tests/build.sh @@ -332,7 +332,6 @@ __ConfigureOnly=0 __CopyNativeProjectsAfterCombinedTestBuild=true __CopyNativeTestBinaries=0 __CrossBuild=0 -__DistroRid="" __CompositeBuildMode= __CreatePerfmap= __TestBuildMode= From c320ff91fb85e425187ed989252fc5fb7dab680f Mon Sep 17 00:00:00 2001 From: Tom Deseyn Date: Wed, 1 Mar 2023 17:38:04 +0100 Subject: [PATCH 02/36] Ignore __portableOS. --- Directory.Build.props | 1 - 1 file changed, 1 deletion(-) diff --git a/Directory.Build.props b/Directory.Build.props index 83b16866677ab..b112bf4f6a42a 100644 --- a/Directory.Build.props +++ b/Directory.Build.props @@ -178,7 +178,6 @@ - <_portableOS>$(__PortableOS) <_portableOS Condition="'$(_portableOS)' == ''">$(TargetOS.ToLowerInvariant()) <_portableOS Condition="'$(_portableOS)' == 'windows'">win From 494afb7fde0ed304751280519d91fd5f2b78e39c Mon Sep 17 00:00:00 2001 From: Tom Deseyn Date: Wed, 1 Mar 2023 19:02:42 +0100 Subject: [PATCH 03/36] Add back musl detection. --- Directory.Build.props | 2 ++ 1 file changed, 2 insertions(+) diff --git a/Directory.Build.props b/Directory.Build.props index b112bf4f6a42a..e3f08ff212866 100644 --- a/Directory.Build.props +++ b/Directory.Build.props @@ -180,6 +180,8 @@ <_portableOS Condition="'$(_portableOS)' == ''">$(TargetOS.ToLowerInvariant()) <_portableOS Condition="'$(_portableOS)' == 'windows'">win + <_portableOS Condition="'$(_portableOS)' == 'linux' and '$(__PortableOS)' == 'linux-musl'">linux-musl + <_portableOS Condition="'$(_portableOS)' == 'linux' and '$(__PortableOS)' == 'linux-bionic'">linux-bionic true true From 034d1d5282c2ee2a8bd1ff399ea97d879a54eec8 Mon Sep 17 00:00:00 2001 From: Tom Deseyn Date: Wed, 1 Mar 2023 19:15:14 +0100 Subject: [PATCH 04/36] Try fix AnyOS tests. --- Directory.Build.props | 1 + eng/native/build-commons.sh | 1 + src/tests/build.proj | 3 ++- 3 files changed, 4 insertions(+), 1 deletion(-) diff --git a/Directory.Build.props b/Directory.Build.props index e3f08ff212866..4ffd6efa674b7 100644 --- a/Directory.Build.props +++ b/Directory.Build.props @@ -179,6 +179,7 @@ <_portableOS Condition="'$(_portableOS)' == ''">$(TargetOS.ToLowerInvariant()) + <_portableOS Condition="'$(_portableOS)' == 'anyos'">$(__PortableOS) <_portableOS Condition="'$(_portableOS)' == 'windows'">win <_portableOS Condition="'$(_portableOS)' == 'linux' and '$(__PortableOS)' == 'linux-musl'">linux-musl <_portableOS Condition="'$(_portableOS)' == 'linux' and '$(__PortableOS)' == 'linux-bionic'">linux-bionic diff --git a/eng/native/build-commons.sh b/eng/native/build-commons.sh index 226f852d152a0..246fba739edf0 100755 --- a/eng/native/build-commons.sh +++ b/eng/native/build-commons.sh @@ -544,6 +544,7 @@ if [ -z "$__OutputRid" ]; then __OutputRid="$__PortableOS-$__TargetArch" fi fi +export __OutputRid echo "__OutputRid: ${__OutputRid}" # When the host runs on an unknown rid, it falls back to the output rid diff --git a/src/tests/build.proj b/src/tests/build.proj index 42f1f537e8d30..1b9d14c1b223f 100644 --- a/src/tests/build.proj +++ b/src/tests/build.proj @@ -435,7 +435,8 @@ <_ConfigurationProperties>/p:TargetOS=$(TargetOS) /p:TargetArchitecture=$(TargetArchitecture) /p:Configuration=$(Configuration) /p:CrossBuild=$(CrossBuild) - "$(DotNetTool)" restore -r $(PackageRID) $(RestoreProj) $(PackageVersionArg) /p:SetTFMForRestore=true $(_ConfigurationProperties) + "$(DotNetTool)" restore $(RestoreProj) $(PackageVersionArg) /p:SetTFMForRestore=true $(_ConfigurationProperties) + "$(DotNetTool)" restore -r $(__OutputRid) $(RestoreProj) $(PackageVersionArg) /p:SetTFMForRestore=true $(_ConfigurationProperties) From 92ffb2f648065e45cefab461e570defd4cfe7f32 Mon Sep 17 00:00:00 2001 From: Tom Deseyn Date: Thu, 2 Mar 2023 18:58:03 +0100 Subject: [PATCH 05/36] Try fix coreclr linux_musl_arm64 job. --- Directory.Build.props | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Directory.Build.props b/Directory.Build.props index 4ffd6efa674b7..f59615836a55d 100644 --- a/Directory.Build.props +++ b/Directory.Build.props @@ -193,7 +193,7 @@ <_packageOS>$(RuntimeOS) <_packageOS Condition="'$(_packageOS)' == ''">$(_portableOS) <_packageOS Condition="'$(CrossBuild)' == 'true'">$(_hostOS) - <_packageOS Condition="'$(CrossBuild)' == 'true' and '$(RuntimeOS)' == 'linux-musl'">linux-musl + <_packageOS Condition="'$(CrossBuild)' == 'true' and '$(_portableOS)' == 'linux-musl'">linux-musl <_toolsRID>$(_packageOS)-$(_hostArch) <_toolsRID Condition="'$(BuildingInsideVisualStudio)' == 'true'">$(_portableOS)-x64 From ae67592f57fcd1372fc8f514abb57a5579018ceb Mon Sep 17 00:00:00 2001 From: Tom Deseyn Date: Thu, 2 Mar 2023 19:39:16 +0100 Subject: [PATCH 06/36] src/tests/build.proj: use PackageRID for restore. --- src/tests/build.proj | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/tests/build.proj b/src/tests/build.proj index 1b9d14c1b223f..42f1f537e8d30 100644 --- a/src/tests/build.proj +++ b/src/tests/build.proj @@ -435,8 +435,7 @@ <_ConfigurationProperties>/p:TargetOS=$(TargetOS) /p:TargetArchitecture=$(TargetArchitecture) /p:Configuration=$(Configuration) /p:CrossBuild=$(CrossBuild) - "$(DotNetTool)" restore $(RestoreProj) $(PackageVersionArg) /p:SetTFMForRestore=true $(_ConfigurationProperties) - "$(DotNetTool)" restore -r $(__OutputRid) $(RestoreProj) $(PackageVersionArg) /p:SetTFMForRestore=true $(_ConfigurationProperties) + "$(DotNetTool)" restore -r $(PackageRID) $(RestoreProj) $(PackageVersionArg) /p:SetTFMForRestore=true $(_ConfigurationProperties) From 8c916989e4b380118736e31015d2b2b2b1653b17 Mon Sep 17 00:00:00 2001 From: Tom Deseyn Date: Thu, 2 Mar 2023 19:45:29 +0100 Subject: [PATCH 07/36] Use RuntimeOS as an override for _packageOS. --- Directory.Build.props | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Directory.Build.props b/Directory.Build.props index f59615836a55d..585b1b067978a 100644 --- a/Directory.Build.props +++ b/Directory.Build.props @@ -190,10 +190,10 @@ - <_packageOS>$(RuntimeOS) <_packageOS Condition="'$(_packageOS)' == ''">$(_portableOS) <_packageOS Condition="'$(CrossBuild)' == 'true'">$(_hostOS) <_packageOS Condition="'$(CrossBuild)' == 'true' and '$(_portableOS)' == 'linux-musl'">linux-musl + <_packageOS Condition="'$(RuntimeOS)' != ''">$(RuntimeOS) <_toolsRID>$(_packageOS)-$(_hostArch) <_toolsRID Condition="'$(BuildingInsideVisualStudio)' == 'true'">$(_portableOS)-x64 From 4ce7c57c3f247a9237eaeecd7835ce945bd01560 Mon Sep 17 00:00:00 2001 From: Tom Deseyn Date: Thu, 2 Mar 2023 20:37:48 +0100 Subject: [PATCH 08/36] Remove (probably) out-dated override for non-portable ToolsRID. --- Directory.Build.props | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/Directory.Build.props b/Directory.Build.props index 585b1b067978a..d7e4b27ffd7f5 100644 --- a/Directory.Build.props +++ b/Directory.Build.props @@ -176,7 +176,7 @@ true - + <_portableOS Condition="'$(_portableOS)' == ''">$(TargetOS.ToLowerInvariant()) <_portableOS Condition="'$(_portableOS)' == 'anyos'">$(__PortableOS) @@ -211,8 +211,6 @@ <_toolsRID Condition="'$(_portableOS)' == 'maccatalyst' or '$(_portableOS)' == 'ios' or '$(_portableOS)' == 'iossimulator' or '$(_portableOS)' == 'tvos' or '$(_portableOS)' == 'tvossimulator'">osx-x64 - - linux-$(_hostArch) $(_toolsRID) $(ToolsRID) From e5ec2a5020fef92011a302cfad06303fb165ef01 Mon Sep 17 00:00:00 2001 From: Tom Deseyn Date: Thu, 2 Mar 2023 21:00:18 +0100 Subject: [PATCH 09/36] CI cross-builds for linux-musl use linux. --- Directory.Build.props | 1 + 1 file changed, 1 insertion(+) diff --git a/Directory.Build.props b/Directory.Build.props index d7e4b27ffd7f5..6a00dd05424b9 100644 --- a/Directory.Build.props +++ b/Directory.Build.props @@ -196,6 +196,7 @@ <_packageOS Condition="'$(RuntimeOS)' != ''">$(RuntimeOS) <_toolsRID>$(_packageOS)-$(_hostArch) + <_toolsRID Condition="'$(CrossBuild)' == 'true' and '$(_portableOS)' == 'linux-musl'">linux <_toolsRID Condition="'$(BuildingInsideVisualStudio)' == 'true'">$(_portableOS)-x64 From 6d84cb47b6ec00a71830c5c60645ceebea9eb5b9 Mon Sep 17 00:00:00 2001 From: Tom Deseyn Date: Thu, 2 Mar 2023 23:36:42 +0100 Subject: [PATCH 10/36] Add missing arch to rid. --- Directory.Build.props | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Directory.Build.props b/Directory.Build.props index 6a00dd05424b9..a276868a42dcd 100644 --- a/Directory.Build.props +++ b/Directory.Build.props @@ -196,7 +196,7 @@ <_packageOS Condition="'$(RuntimeOS)' != ''">$(RuntimeOS) <_toolsRID>$(_packageOS)-$(_hostArch) - <_toolsRID Condition="'$(CrossBuild)' == 'true' and '$(_portableOS)' == 'linux-musl'">linux + <_toolsRID Condition="'$(CrossBuild)' == 'true' and '$(_portableOS)' == 'linux-musl'">linux-$(_hostArch) <_toolsRID Condition="'$(BuildingInsideVisualStudio)' == 'true'">$(_portableOS)-x64 From 802bd95c72e8b0ddb769fed70e0fabc4b38bbafe Mon Sep 17 00:00:00 2001 From: Tom Deseyn Date: Fri, 3 Mar 2023 09:11:10 +0100 Subject: [PATCH 11/36] Try simplified ToolsRID. --- Directory.Build.props | 30 +++++++++++------------------- 1 file changed, 11 insertions(+), 19 deletions(-) diff --git a/Directory.Build.props b/Directory.Build.props index a276868a42dcd..28802eb44fa0a 100644 --- a/Directory.Build.props +++ b/Directory.Build.props @@ -195,27 +195,19 @@ <_packageOS Condition="'$(CrossBuild)' == 'true' and '$(_portableOS)' == 'linux-musl'">linux-musl <_packageOS Condition="'$(RuntimeOS)' != ''">$(RuntimeOS) - <_toolsRID>$(_packageOS)-$(_hostArch) - <_toolsRID Condition="'$(CrossBuild)' == 'true' and '$(_portableOS)' == 'linux-musl'">linux-$(_hostArch) - <_toolsRID Condition="'$(BuildingInsideVisualStudio)' == 'true'">$(_portableOS)-x64 - - - <_toolsRID Condition="'$(_portableOS)' == 'browser' or '$(_portableOS)' == 'wasi'">linux-x64 - <_toolsRID Condition="('$(_portableOS)' == 'browser' or '$(_portableOS)' == 'wasi') and '$(HostOS)' == 'windows'">win-x64 - <_toolsRID Condition="('$(_portableOS)' == 'browser' or '$(_portableOS)' == 'wasi') and '$(HostOS)' == 'osx'">osx-x64 - - - <_toolsRID Condition="'$(_portableOS)' == 'android' or '$(_portableOS)' == 'linux-bionic'">linux-x64 - <_toolsRID Condition="('$(_portableOS)' == 'android' or '$(_portableOS)' == 'linux-bionic') and '$(HostOS)' == 'windows'">win-x64 - <_toolsRID Condition="('$(_portableOS)' == 'android' or '$(_portableOS)' == 'linux-bionic') and '$(HostOS)' == 'osx'">osx-x64 - - - <_toolsRID Condition="'$(_portableOS)' == 'maccatalyst' or '$(_portableOS)' == 'ios' or '$(_portableOS)' == 'iossimulator' or '$(_portableOS)' == 'tvos' or '$(_portableOS)' == 'tvossimulator'">osx-x64 + $(_packageOS)-$(TargetArchitecture) + - $(_toolsRID) + + + <_portableHostOS>$(_hostOS) + <_portableHostOS Condition="'$(_portableHostOS)' == 'windows'">win + <_portableHostOS Condition="'$(CrossBuild)' != 'true' and '$(_portableOS)' == 'linux-musl'">linux-musl + <_portableHostOS Condition="'$(CrossBuild)' != 'true' and '$(_portableOS)' == 'linux-bionic'">linux-bionic + <_portableHostOS Condition="'$(RuntimeOS)' != ''">$(RuntimeOS) + + $(_portableHostOS)-$(_hostArch) $(ToolsRID) - - $(_packageOS)-$(TargetArchitecture) From 959f5be2dc0a84a7ec18412da0d4e02ce8a0e5f7 Mon Sep 17 00:00:00 2001 From: Tom Deseyn Date: Fri, 3 Mar 2023 14:27:38 +0100 Subject: [PATCH 12/36] Update comments. --- Directory.Build.props | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/Directory.Build.props b/Directory.Build.props index 28802eb44fa0a..924d8fce5957a 100644 --- a/Directory.Build.props +++ b/Directory.Build.props @@ -188,7 +188,7 @@ true - + <_packageOS Condition="'$(_packageOS)' == ''">$(_portableOS) <_packageOS Condition="'$(CrossBuild)' == 'true'">$(_hostOS) @@ -198,8 +198,9 @@ $(_packageOS)-$(TargetArchitecture) - + + <_portableHostOS>$(_hostOS) <_portableHostOS Condition="'$(_portableHostOS)' == 'windows'">win <_portableHostOS Condition="'$(CrossBuild)' != 'true' and '$(_portableOS)' == 'linux-musl'">linux-musl @@ -210,7 +211,7 @@ $(ToolsRID) - + <_hostRid Condition="'$(MSBuildRuntimeType)' == 'core'">$([System.Runtime.InteropServices.RuntimeInformation]::RuntimeIdentifier) <_hostRid Condition="'$(MSBuildRuntimeType)' != 'core'">win-$([System.Runtime.InteropServices.RuntimeInformation]::OSArchitecture.ToString().ToLowerInvariant) From 44dcd0db615336f29a6b43ebfdba0736042d38da Mon Sep 17 00:00:00 2001 From: Tom Deseyn Date: Fri, 3 Mar 2023 14:29:47 +0100 Subject: [PATCH 13/36] Rename OutputRid to OutputRID. --- Directory.Build.props | 10 +++++----- eng/build.sh | 2 +- eng/pipelines/mono/templates/build-job.yml | 2 +- eng/testing/tests.props | 2 +- eng/testing/tests.singlefile.targets | 2 +- src/coreclr/.nuget/Directory.Build.props | 4 ++-- src/coreclr/.nuget/builds.targets | 4 ++-- src/coreclr/runtime.proj | 2 +- src/coreclr/tools/SuperFileCheck/SuperFileCheck.csproj | 8 ++++---- src/installer/Directory.Build.props | 4 ++-- src/installer/pkg/projects/Directory.Build.props | 2 +- src/installer/pkg/projects/host-packages.proj | 2 +- src/installer/pkg/projects/nativeaot-packages.proj | 2 +- src/installer/tests/Directory.Build.targets | 2 +- .../pkg/runtime.native.System.IO.Ports.proj | 2 +- .../pkg/runtime.native.System.IO.Ports.props | 4 ++-- .../tests/StressTests/HttpStress/Directory.Build.props | 6 +++--- .../tests/StressTests/SslStress/Directory.Build.props | 6 +++--- .../TestAssets/NativeExports/NativeExports.csproj | 2 +- src/libraries/oob-src.proj | 4 ++-- src/libraries/oob.proj | 2 +- src/libraries/pretest.proj | 10 +++++----- src/libraries/sfx.proj | 2 +- src/mono/mono.proj | 8 ++++---- src/native/corehost/corehost.proj | 6 +++--- src/tests/Common/ilasm/ilasm.ilproj | 2 +- src/tests/Common/publishdependency.targets | 2 +- .../Common/test_dependencies/test_dependencies.csproj | 2 +- .../test_dependencies_fs/test_dependencies.fsproj | 2 +- src/tests/Directory.Build.targets | 2 +- src/tests/build.proj | 6 +++--- 31 files changed, 58 insertions(+), 58 deletions(-) diff --git a/Directory.Build.props b/Directory.Build.props index 924d8fce5957a..3473da205c871 100644 --- a/Directory.Build.props +++ b/Directory.Build.props @@ -211,7 +211,7 @@ $(ToolsRID) - + <_hostRid Condition="'$(MSBuildRuntimeType)' == 'core'">$([System.Runtime.InteropServices.RuntimeInformation]::RuntimeIdentifier) <_hostRid Condition="'$(MSBuildRuntimeType)' != 'core'">win-$([System.Runtime.InteropServices.RuntimeInformation]::OSArchitecture.ToString().ToLowerInvariant) @@ -223,7 +223,7 @@ <_outputOS>$(_parseDistroRid.SubString(0, $(_distroRidIndex))) <_outputOS Condition="'$(PortableBuild)' == 'true'">$(_portableOS) - $(_outputOS)-$(TargetArchitecture) + $(_outputOS)-$(TargetArchitecture) @@ -250,14 +250,14 @@ $([MSBuild]::NormalizeDirectory('$(MicrosoftNetCoreAppRefPackDir)', 'ref', '$(NetCoreAppCurrent)')) $([MSBuild]::NormalizeDirectory('$(MicrosoftNetCoreAppRefPackDir)', 'data')) - $([MSBuild]::NormalizeDirectory('$(ArtifactsBinDir)', 'microsoft.netcore.app.runtime.$(OutputRid)', '$(LibrariesConfiguration)')) - $([MSBuild]::NormalizeDirectory('$(MicrosoftNetCoreAppRuntimePackDir)', 'runtimes', '$(OutputRid)')) + $([MSBuild]::NormalizeDirectory('$(ArtifactsBinDir)', 'microsoft.netcore.app.runtime.$(OutputRID)', '$(LibrariesConfiguration)')) + $([MSBuild]::NormalizeDirectory('$(MicrosoftNetCoreAppRuntimePackDir)', 'runtimes', '$(OutputRID)')) $([MSBuild]::NormalizeDirectory('$(MicrosoftNetCoreAppRuntimePackRidDir)', 'lib', '$(NetCoreAppCurrent)')) $([MSBuild]::NormalizeDirectory('$(MicrosoftNetCoreAppRuntimePackRidDir)', 'native')) - $([MSBuild]::NormalizeDirectory('$(ArtifactsBinDir)', '$(OutputRid).$(HostConfiguration)', 'corehost')) + $([MSBuild]::NormalizeDirectory('$(ArtifactsBinDir)', '$(OutputRID).$(HostConfiguration)', 'corehost')) diff --git a/eng/build.sh b/eng/build.sh index cda2fab5582b5..4e18ac5d84a54 100755 --- a/eng/build.sh +++ b/eng/build.sh @@ -446,7 +446,7 @@ while [[ $# > 0 ]]; do echo "No value for outputrid is supplied. See help (--help) for supported values." 1>&2 exit 1 fi - arguments="$arguments /p:OutputRid=$(echo "$2" | tr "[:upper:]" "[:lower:]")" + arguments="$arguments /p:OutputRID=$(echo "$2" | tr "[:upper:]" "[:lower:]")" shift 2 ;; diff --git a/eng/pipelines/mono/templates/build-job.yml b/eng/pipelines/mono/templates/build-job.yml index ddce3b6f0070c..1ad5cbeb7963a 100644 --- a/eng/pipelines/mono/templates/build-job.yml +++ b/eng/pipelines/mono/templates/build-job.yml @@ -70,7 +70,7 @@ jobs: # Set output RID manually: musl isn't properly detected. Make sure to also convert linux to # lowercase for RID format. (Detection normally converts, but we're preventing it.) - name: OutputRidArg - value: /p:OutputRid=linux-musl-${{ parameters.archType }} + value: /p:OutputRID=linux-musl-${{ parameters.archType }} - name: _PortableBuild value: true - ${{ if eq(parameters.osGroup, 'tvos') }}: diff --git a/eng/testing/tests.props b/eng/testing/tests.props index ab58a76a58c3b..2c555d1abaffe 100644 --- a/eng/testing/tests.props +++ b/eng/testing/tests.props @@ -17,7 +17,7 @@ $([MSBuild]::NormalizeDirectory('$(ArtifactsBinDir)', 'AndroidTestRunner', '$(Configuration)', '$(NetCoreAppCurrent)')) $([MSBuild]::NormalizeDirectory('$(ArtifactsBinDir)', 'WasmTestRunner', '$(Configuration)', '$(NetCoreAppCurrent)')) - $(OutputRid) + $(OutputRID) true diff --git a/eng/testing/tests.singlefile.targets b/eng/testing/tests.singlefile.targets index 257a4ee525a6e..72939b31926ad 100644 --- a/eng/testing/tests.singlefile.targets +++ b/eng/testing/tests.singlefile.targets @@ -4,7 +4,7 @@ $([MSBuild]::NormalizeDirectory('$(OutDir)', 'publish')) $([MSBuild]::NormalizePath('$(BundleDir)', '$(RunScriptOutputName)')) - $(OutputRid) + $(OutputRID) $(AssemblyName).exe chmod +rwx $(AssemblyName) && ./$(AssemblyName) diff --git a/src/coreclr/.nuget/Directory.Build.props b/src/coreclr/.nuget/Directory.Build.props index eec59f3a0b9b9..343c4ac1bb08a 100644 --- a/src/coreclr/.nuget/Directory.Build.props +++ b/src/coreclr/.nuget/Directory.Build.props @@ -117,8 +117,8 @@ - - + amd64 $(TargetArchitecture) diff --git a/src/coreclr/.nuget/builds.targets b/src/coreclr/.nuget/builds.targets index 4dd4d825baeb9..e9acb038c4607 100644 --- a/src/coreclr/.nuget/builds.targets +++ b/src/coreclr/.nuget/builds.targets @@ -7,11 +7,11 @@ - + - <_projectsToBuild Include="@(Project)" Condition="'%(Project.PackageTargetRuntime)' == '$(OutputRid)'" /> + <_projectsToBuild Include="@(Project)" Condition="'%(Project.PackageTargetRuntime)' == '$(OutputRID)'" /> diff --git a/src/coreclr/runtime.proj b/src/coreclr/runtime.proj index d7744c3433336..7f8edcc93a781 100644 --- a/src/coreclr/runtime.proj +++ b/src/coreclr/runtime.proj @@ -37,7 +37,7 @@ <_CoreClrBuildArg Condition="'$(PgoInstrument)' == 'true'" Include="-pgoinstrument" /> <_CoreClrBuildArg Condition="'$(NativeOptimizationDataSupported)' == 'true' and '$(NoPgoOptimize)' != 'true' and '$(PgoInstrument)' != 'true'" Include="-pgodatapath "$(PgoPackagePath)"" /> <_CoreClrBuildArg Condition="'$(HostArchitecture)' != ''" Include="-hostarch $(HostArchitecture)" /> - <_CoreClrBuildArg Include="-outputrid $(OutputRid)" /> + <_CoreClrBuildArg Include="-outputrid $(OutputRID)" /> diff --git a/src/coreclr/tools/SuperFileCheck/SuperFileCheck.csproj b/src/coreclr/tools/SuperFileCheck/SuperFileCheck.csproj index 793d6690074e4..7c76b9fa817b4 100644 --- a/src/coreclr/tools/SuperFileCheck/SuperFileCheck.csproj +++ b/src/coreclr/tools/SuperFileCheck/SuperFileCheck.csproj @@ -15,10 +15,10 @@ - - <_jitToolsRidPlatformIndex>$(OutputRid.LastIndexOf('-')) - $(OutputRid.Substring(0, $(_jitToolsRidPlatformIndex))) - $(OutputRid.Substring($(_jitToolsRidPlatformIndex)).TrimStart('-')) + + <_jitToolsRidPlatformIndex>$(OutputRID.LastIndexOf('-')) + $(OutputRID.Substring(0, $(_jitToolsRidPlatformIndex))) + $(OutputRID.Substring($(_jitToolsRidPlatformIndex)).TrimStart('-')) linux diff --git a/src/installer/Directory.Build.props b/src/installer/Directory.Build.props index 44582bc378b27..33a094c082f79 100644 --- a/src/installer/Directory.Build.props +++ b/src/installer/Directory.Build.props @@ -8,8 +8,8 @@ $(TargetArchitecture) $(DefineConstants),DEBUG,TRACE $(DefineConstants),TRACE - $(OutputRid) - $(OutputRid) + $(OutputRID) + $(OutputRID) diff --git a/src/installer/pkg/projects/Directory.Build.props b/src/installer/pkg/projects/Directory.Build.props index e95f6a113e787..5f04dc0003053 100644 --- a/src/installer/pkg/projects/Directory.Build.props +++ b/src/installer/pkg/projects/Directory.Build.props @@ -122,7 +122,7 @@ @(RestoreBuildRID) - $(OutputRid) + $(OutputRID) diff --git a/src/installer/pkg/projects/host-packages.proj b/src/installer/pkg/projects/host-packages.proj index 9a6e896b59f87..772ee1b0f6369 100644 --- a/src/installer/pkg/projects/host-packages.proj +++ b/src/installer/pkg/projects/host-packages.proj @@ -4,6 +4,6 @@ - + diff --git a/src/installer/pkg/projects/nativeaot-packages.proj b/src/installer/pkg/projects/nativeaot-packages.proj index 10ab1d60c56fa..592b456515421 100644 --- a/src/installer/pkg/projects/nativeaot-packages.proj +++ b/src/installer/pkg/projects/nativeaot-packages.proj @@ -4,7 +4,7 @@ - + diff --git a/src/installer/tests/Directory.Build.targets b/src/installer/tests/Directory.Build.targets index 7691ad32cee76..43154f340b780 100644 --- a/src/installer/tests/Directory.Build.targets +++ b/src/installer/tests/Directory.Build.targets @@ -73,7 +73,7 @@ - + diff --git a/src/libraries/System.IO.Ports/pkg/runtime.native.System.IO.Ports.proj b/src/libraries/System.IO.Ports/pkg/runtime.native.System.IO.Ports.proj index 81eb8e04bf39e..1880e44996993 100644 --- a/src/libraries/System.IO.Ports/pkg/runtime.native.System.IO.Ports.proj +++ b/src/libraries/System.IO.Ports/pkg/runtime.native.System.IO.Ports.proj @@ -11,7 +11,7 @@ + They are filtered in the traversal build in oob-all.csproj based on the OutputRID. --> diff --git a/src/libraries/System.IO.Ports/pkg/runtime.native.System.IO.Ports.props b/src/libraries/System.IO.Ports/pkg/runtime.native.System.IO.Ports.props index bda41ce531962..8ee8a9c20d8d7 100644 --- a/src/libraries/System.IO.Ports/pkg/runtime.native.System.IO.Ports.props +++ b/src/libraries/System.IO.Ports/pkg/runtime.native.System.IO.Ports.props @@ -15,14 +15,14 @@ diff --git a/src/libraries/System.Net.Http/tests/StressTests/HttpStress/Directory.Build.props b/src/libraries/System.Net.Http/tests/StressTests/HttpStress/Directory.Build.props index 9ca35839f9c1b..509bca64fdc3d 100644 --- a/src/libraries/System.Net.Http/tests/StressTests/HttpStress/Directory.Build.props +++ b/src/libraries/System.Net.Http/tests/StressTests/HttpStress/Directory.Build.props @@ -1,7 +1,7 @@ - linux-x64 - win-x64 + linux-x64 + win-x64 $([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory)../, global.json))/ @@ -12,6 +12,6 @@ 8.0 Microsoft.NETCore.App $(RepositoryRoot)artifacts/bin/microsoft.netcore.app.ref/ - $(RepositoryRoot)artifacts/bin/microsoft.netcore.app.runtime.$(OutputRid)/$(Configuration)/ + $(RepositoryRoot)artifacts/bin/microsoft.netcore.app.runtime.$(OutputRID)/$(Configuration)/ \ No newline at end of file diff --git a/src/libraries/System.Net.Security/tests/StressTests/SslStress/Directory.Build.props b/src/libraries/System.Net.Security/tests/StressTests/SslStress/Directory.Build.props index 70928e5355ab1..0183d8b3696f4 100644 --- a/src/libraries/System.Net.Security/tests/StressTests/SslStress/Directory.Build.props +++ b/src/libraries/System.Net.Security/tests/StressTests/SslStress/Directory.Build.props @@ -1,7 +1,7 @@ - linux-x64 - win-x64 + linux-x64 + win-x64 $([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory)../, global.json))/ @@ -12,6 +12,6 @@ 8.0 Microsoft.NETCore.App $(RepositoryRoot)artifacts/bin/microsoft.netcore.app.ref/ - $(RepositoryRoot)artifacts/bin/microsoft.netcore.app.runtime.$(OutputRid)/$(Configuration)/ + $(RepositoryRoot)artifacts/bin/microsoft.netcore.app.runtime.$(OutputRID)/$(Configuration)/ \ No newline at end of file diff --git a/src/libraries/System.Runtime.InteropServices/tests/TestAssets/NativeExports/NativeExports.csproj b/src/libraries/System.Runtime.InteropServices/tests/TestAssets/NativeExports/NativeExports.csproj index e57771108580e..1029aa1c10b75 100644 --- a/src/libraries/System.Runtime.InteropServices/tests/TestAssets/NativeExports/NativeExports.csproj +++ b/src/libraries/System.Runtime.InteropServices/tests/TestAssets/NativeExports/NativeExports.csproj @@ -11,7 +11,7 @@ to the apphost to make sure that it is built before this project invokes DNNE. --> false - $(OutputRid) + $(OutputRID) $(PackageRID) <_TargetsAppleOS Condition="'$(TargetOS)' == 'osx' or '$(TargetOS)' == 'maccatalyst' or '$(TargetOS)' == 'ios' or '$(TargetOS)' == 'tvos' or '$(TargetOS)' == 'iossimulator' or diff --git a/src/libraries/oob-src.proj b/src/libraries/oob-src.proj index ccdaf0c39a38e..a1f2bee32ee17 100644 --- a/src/libraries/oob-src.proj +++ b/src/libraries/oob-src.proj @@ -15,9 +15,9 @@ @(NetCoreAppLibrary->'%(Identity)\src\%(Identity).csproj'); Microsoft.VisualBasic.Core\src\Microsoft.VisualBasic.Core.vbproj" /> - - diff --git a/src/libraries/oob.proj b/src/libraries/oob.proj index 074f952826da4..8eec5f7828490 100644 --- a/src/libraries/oob.proj +++ b/src/libraries/oob.proj @@ -56,7 +56,7 @@ DependsOnTargets="GetTrimOOBAssembliesInputs;PrepareForAssembliesTrim" Inputs="$(ILLinkTasksAssembly);@(OOBAssemblyToTrim);@(OOBAssemblyReference);@(OOBLibrarySuppressionsXml)" Outputs="$(OOBAssembliesTrimMarkerFile)"> - + $(ILLinkArgs) diff --git a/src/libraries/pretest.proj b/src/libraries/pretest.proj index 6118eb1120e6a..3bee7105912e7 100644 --- a/src/libraries/pretest.proj +++ b/src/libraries/pretest.proj @@ -71,10 +71,10 @@ Outputs="$(MicrosoftNetCoreAppRuntimePackDir)data\PlatformManifest.txt" Condition="'$(BuildTargetFramework)' == '$(NetCoreAppCurrent)' or '$(BuildTargetFramework)' == ''"> @@ -103,16 +103,16 @@ + TargetRuntimeIdentifier="$(OutputRID)" /> - runtimes/$(OutputRid)/lib/$(NetCoreAppCurrent) + runtimes/$(OutputRID)/lib/$(NetCoreAppCurrent) - runtimes/$(OutputRid)/native + runtimes/$(OutputRID)/native true diff --git a/src/libraries/sfx.proj b/src/libraries/sfx.proj index d5a37e1959d30..f23bfea607ea3 100644 --- a/src/libraries/sfx.proj +++ b/src/libraries/sfx.proj @@ -43,7 +43,7 @@ Condition="'$(RefOnly)' != 'true'" Inputs="@(SharedFrameworkAssembly);@(SharedFrameworkSuppressionsXml);$(ILLinkTasksAssembly)" Outputs="$(SharedFrameworkAssembliesTrimMarkerFile)"> - + $(ILLinkArgs) diff --git a/src/mono/mono.proj b/src/mono/mono.proj index 5a5694994b0c6..f1dd938dc8e67 100644 --- a/src/mono/mono.proj +++ b/src/mono/mono.proj @@ -952,10 +952,10 @@ $(RuntimeBinDir)%(_MonoRuntimeComponentsSharedFilePath.Filename)%(_MonoRuntimeComponentsSharedFilePath.Extension) <_MonoRuntimeArtifacts Include="$(_MonoAotCrossFilePath)"> - $(RuntimeBinDir)cross\$(OutputRid)\$(MonoAotCrossFileName) + $(RuntimeBinDir)cross\$(OutputRID)\$(MonoAotCrossFileName) <_MonoRuntimeArtifacts Include="$(_MonoAotCrossPdbFilePath)" Condition="Exists('$(_MonoAotCrossPdbFilePath)')"> - $(RuntimeBinDir)cross\$(OutputRid)\$(MonoAotCrossPdbFileName) + $(RuntimeBinDir)cross\$(OutputRID)\$(MonoAotCrossPdbFileName) <_MonoRuntimeArtifacts Condition="'$(MonoBundleLLVMOptimizer)' == 'true'" Include="$(MonoLLVMDir)\$(_MonoLLVMTargetArchitecture)\bin\llc$(ExeSuffix)"> $(RuntimeBinDir)\llc$(ExeSuffix) @@ -964,10 +964,10 @@ $(RuntimeBinDir)\opt$(ExeSuffix) <_MonoRuntimeArtifacts Condition="'$(MonoAOTBundleLLVMOptimizer)' == 'true'" Include="$(MonoLLVMDir)\$(_MonoLLVMTargetArchitecture)\bin\llc$(ExeSuffix)"> - $(RuntimeBinDir)cross\$(OutputRid)\llc$(ExeSuffix) + $(RuntimeBinDir)cross\$(OutputRID)\llc$(ExeSuffix) <_MonoRuntimeArtifacts Condition="'$(MonoAOTBundleLLVMOptimizer)' == 'true'" Include="$(MonoLLVMDir)\$(_MonoLLVMTargetArchitecture)\bin\opt$(ExeSuffix)"> - $(RuntimeBinDir)cross\$(OutputRid)\opt$(ExeSuffix) + $(RuntimeBinDir)cross\$(OutputRID)\opt$(ExeSuffix) <_MonoIncludeArtifacts Include="$(MonoObjDir)out\include\**" /> <_MonoRuntimeArtifacts Condition="'$(MonoComponentsStatic)' != 'true' and Exists('$(MonoObjDir)out\lib\Mono.release.framework')" Include="@(_MonoRuntimeComponentsSharedFilePath)"> diff --git a/src/native/corehost/corehost.proj b/src/native/corehost/corehost.proj index 2df956bd476a0..04341027334a2 100644 --- a/src/native/corehost/corehost.proj +++ b/src/native/corehost/corehost.proj @@ -8,7 +8,7 @@ true GetProductVersions;GenerateNativeVersionFile $(BuildCoreHostDependsOn);InitializeSourceControlInformationFromSourceControlManager - $(ArtifactsObjDir)$(OutputRid).$(Configuration)\ + $(ArtifactsObjDir)$(OutputRID).$(Configuration)\ @@ -82,7 +82,7 @@ $(BuildArgs) -ninja $(BuildArgs) -runtimeflavor $(RuntimeFlavor) $(BuildArgs) /p:OfficialBuildId="$(OfficialBuildId)" - $(BuildArgs) -outputrid $(OutputRid) + $(BuildArgs) -outputrid $(OutputRID) - $(OutputRid) + $(OutputRID) diff --git a/src/tests/Common/publishdependency.targets b/src/tests/Common/publishdependency.targets index 30b541ecea778..4a16052008d7d 100644 --- a/src/tests/Common/publishdependency.targets +++ b/src/tests/Common/publishdependency.targets @@ -28,7 +28,7 @@ + Properties="Language=C#;RuntimeIdentifier=$(OutputRID);CORE_ROOT=$(CORE_ROOT)" /> diff --git a/src/tests/Common/test_dependencies/test_dependencies.csproj b/src/tests/Common/test_dependencies/test_dependencies.csproj index 8f10be173327d..cc4d1cbf2ed64 100644 --- a/src/tests/Common/test_dependencies/test_dependencies.csproj +++ b/src/tests/Common/test_dependencies/test_dependencies.csproj @@ -5,7 +5,7 @@ $(NetCoreAppToolCurrent) true true - win-arm;win-arm64;win-x64;win-x86;$(OutputRid) + win-arm;win-arm64;win-x64;win-x86;$(OutputRID) true diff --git a/src/tests/Common/test_dependencies_fs/test_dependencies.fsproj b/src/tests/Common/test_dependencies_fs/test_dependencies.fsproj index 196db8eabec63..b7e9dde969981 100644 --- a/src/tests/Common/test_dependencies_fs/test_dependencies.fsproj +++ b/src/tests/Common/test_dependencies_fs/test_dependencies.fsproj @@ -5,7 +5,7 @@ $(NetCoreAppToolCurrent) true true - win-arm;win-arm64;win-x64;win-x86;$(OutputRid) + win-arm;win-arm64;win-x64;win-x86;$(OutputRID) true diff --git a/src/tests/Directory.Build.targets b/src/tests/Directory.Build.targets index e26e9f6388215..8bbad208ab5a1 100644 --- a/src/tests/Directory.Build.targets +++ b/src/tests/Directory.Build.targets @@ -660,7 +660,7 @@ $(CoreCLRAotSdkDir) $(MicrosoftNetCoreAppRuntimePackRidLibTfmDir) $(MicrosoftNetCoreAppRuntimePackNativeDir) - $(OutputRid) + $(OutputRID) true true diff --git a/src/tests/build.proj b/src/tests/build.proj index 42f1f537e8d30..23f0e70edfc85 100644 --- a/src/tests/build.proj +++ b/src/tests/build.proj @@ -8,7 +8,7 @@ $(XunitTestBinBase)\TestWrappers\ 1 C# - $(OutputRid) + $(OutputRID) @@ -126,8 +126,8 @@ $(MonoBinDir) - $(MonoBinDir)/cross/$(OutputRid)/mono-aot-cross - $(MonoBinDir)/cross/$(OutputRid) + $(MonoBinDir)/cross/$(OutputRID)/mono-aot-cross + $(MonoBinDir)/cross/$(OutputRID) From 9c2a97759d4cc385df701fb7bc4627296dc29809 Mon Sep 17 00:00:00 2001 From: Tom Deseyn Date: Fri, 3 Mar 2023 14:51:37 +0100 Subject: [PATCH 14/36] Tweak comment. --- Directory.Build.props | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Directory.Build.props b/Directory.Build.props index 3473da205c871..225a9393f9c57 100644 --- a/Directory.Build.props +++ b/Directory.Build.props @@ -188,7 +188,7 @@ true - + <_packageOS Condition="'$(_packageOS)' == ''">$(_portableOS) <_packageOS Condition="'$(CrossBuild)' == 'true'">$(_hostOS) From b16dc2d455002caf2a480dec5ec17f9bc9ca344d Mon Sep 17 00:00:00 2001 From: Tom Deseyn Date: Sat, 4 Mar 2023 07:56:22 +0100 Subject: [PATCH 15/36] Move TargetsLinux{Bionic,Musl} with the other Targets properties. --- Directory.Build.props | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/Directory.Build.props b/Directory.Build.props index 225a9393f9c57..11fca5ba511ab 100644 --- a/Directory.Build.props +++ b/Directory.Build.props @@ -183,9 +183,6 @@ <_portableOS Condition="'$(_portableOS)' == 'windows'">win <_portableOS Condition="'$(_portableOS)' == 'linux' and '$(__PortableOS)' == 'linux-musl'">linux-musl <_portableOS Condition="'$(_portableOS)' == 'linux' and '$(__PortableOS)' == 'linux-bionic'">linux-bionic - - true - true @@ -231,6 +228,8 @@ true true true + true + true true true true From 220c624575a848bff4dff7546c5fc08f4f53907f Mon Sep 17 00:00:00 2001 From: Tom Deseyn Date: Sun, 5 Mar 2023 09:01:39 +0100 Subject: [PATCH 16/36] Don't use RuntimeOS for PackageRID for CrossBuilds. --- Directory.Build.props | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/Directory.Build.props b/Directory.Build.props index 11fca5ba511ab..60eba13bc7acb 100644 --- a/Directory.Build.props +++ b/Directory.Build.props @@ -188,16 +188,18 @@ <_packageOS Condition="'$(_packageOS)' == ''">$(_portableOS) + <_packageOS Condition="'$(CrossBuild)' != 'true' and '$(RuntimeOS)' != ''">$(RuntimeOS) + <_packageOS Condition="'$(CrossBuild)' == 'true'">$(_hostOS) <_packageOS Condition="'$(CrossBuild)' == 'true' and '$(_portableOS)' == 'linux-musl'">linux-musl - <_packageOS Condition="'$(RuntimeOS)' != ''">$(RuntimeOS) $(_packageOS)-$(TargetArchitecture) - + - + <_portableHostOS>$(_hostOS) <_portableHostOS Condition="'$(_portableHostOS)' == 'windows'">win <_portableHostOS Condition="'$(CrossBuild)' != 'true' and '$(_portableOS)' == 'linux-musl'">linux-musl From b422a2f1e3482d669f06459290d45524d9f8cd82 Mon Sep 17 00:00:00 2001 From: Tom Deseyn Date: Sun, 5 Mar 2023 09:04:09 +0100 Subject: [PATCH 17/36] Move RuntimeOS condition to ToolsRID assignment. --- Directory.Build.props | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Directory.Build.props b/Directory.Build.props index 60eba13bc7acb..86052157b9c90 100644 --- a/Directory.Build.props +++ b/Directory.Build.props @@ -204,8 +204,8 @@ <_portableHostOS Condition="'$(_portableHostOS)' == 'windows'">win <_portableHostOS Condition="'$(CrossBuild)' != 'true' and '$(_portableOS)' == 'linux-musl'">linux-musl <_portableHostOS Condition="'$(CrossBuild)' != 'true' and '$(_portableOS)' == 'linux-bionic'">linux-bionic - <_portableHostOS Condition="'$(RuntimeOS)' != ''">$(RuntimeOS) + $(RuntimeOS)-$(_hostArch) $(_portableHostOS)-$(_hostArch) $(ToolsRID) From edeb0f27021245fe61b7378b2d8c2189a7e4c981 Mon Sep 17 00:00:00 2001 From: Tom Deseyn Date: Sun, 5 Mar 2023 09:07:31 +0100 Subject: [PATCH 18/36] Clean up a few things. --- Directory.Build.props | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Directory.Build.props b/Directory.Build.props index 86052157b9c90..837fbed3cb98f 100644 --- a/Directory.Build.props +++ b/Directory.Build.props @@ -178,7 +178,7 @@ - <_portableOS Condition="'$(_portableOS)' == ''">$(TargetOS.ToLowerInvariant()) + <_portableOS Condition="'$(_portableOS)'">$(TargetOS.ToLowerInvariant()) <_portableOS Condition="'$(_portableOS)' == 'anyos'">$(__PortableOS) <_portableOS Condition="'$(_portableOS)' == 'windows'">win <_portableOS Condition="'$(_portableOS)' == 'linux' and '$(__PortableOS)' == 'linux-musl'">linux-musl @@ -187,7 +187,7 @@ - <_packageOS Condition="'$(_packageOS)' == ''">$(_portableOS) + <_packageOS Condition="'$(CrossBuild)' != 'true'">$(_portableOS) <_packageOS Condition="'$(CrossBuild)' != 'true' and '$(RuntimeOS)' != ''">$(RuntimeOS) <_packageOS Condition="'$(CrossBuild)' == 'true'">$(_hostOS) From 76b3e610f29e3dd61c2f348b489896708eccb2ce Mon Sep 17 00:00:00 2001 From: Tom Deseyn Date: Sun, 5 Mar 2023 09:20:51 +0100 Subject: [PATCH 19/36] Fix broken Condition. --- Directory.Build.props | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Directory.Build.props b/Directory.Build.props index 837fbed3cb98f..8faf0913b4847 100644 --- a/Directory.Build.props +++ b/Directory.Build.props @@ -178,7 +178,7 @@ - <_portableOS Condition="'$(_portableOS)'">$(TargetOS.ToLowerInvariant()) + <_portableOS>$(TargetOS.ToLowerInvariant()) <_portableOS Condition="'$(_portableOS)' == 'anyos'">$(__PortableOS) <_portableOS Condition="'$(_portableOS)' == 'windows'">win <_portableOS Condition="'$(_portableOS)' == 'linux' and '$(__PortableOS)' == 'linux-musl'">linux-musl From 9c31e98c626c4132d953fe3613c1f2d0be2001ac Mon Sep 17 00:00:00 2001 From: Tom Deseyn Date: Mon, 6 Mar 2023 20:24:07 +0100 Subject: [PATCH 20/36] Try fix the linux-bionic build. --- Directory.Build.props | 1 + 1 file changed, 1 insertion(+) diff --git a/Directory.Build.props b/Directory.Build.props index 8faf0913b4847..4548b51480bdc 100644 --- a/Directory.Build.props +++ b/Directory.Build.props @@ -192,6 +192,7 @@ <_packageOS Condition="'$(CrossBuild)' == 'true'">$(_hostOS) <_packageOS Condition="'$(CrossBuild)' == 'true' and '$(_portableOS)' == 'linux-musl'">linux-musl + <_packageOS Condition="'$(CrossBuild)' == 'true' and '$(_portableOS)' == 'linux-bionic'">linux-bionic $(_packageOS)-$(TargetArchitecture) From 0d194d5e09389af60d447d0bd3c5c16121f8b801 Mon Sep 17 00:00:00 2001 From: Tom Deseyn Date: Mon, 6 Mar 2023 20:51:36 +0100 Subject: [PATCH 21/36] Try fix the linux-bionic build, part II. --- Directory.Build.props | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/Directory.Build.props b/Directory.Build.props index 4548b51480bdc..c9c2a7f5ade39 100644 --- a/Directory.Build.props +++ b/Directory.Build.props @@ -187,12 +187,10 @@ - <_packageOS Condition="'$(CrossBuild)' != 'true'">$(_portableOS) - <_packageOS Condition="'$(CrossBuild)' != 'true' and '$(RuntimeOS)' != ''">$(RuntimeOS) + <_packageOS>$(_portableOS) + <_packageOS Condition="'$(RuntimeOS)' != ''">$(RuntimeOS) - <_packageOS Condition="'$(CrossBuild)' == 'true'">$(_hostOS) - <_packageOS Condition="'$(CrossBuild)' == 'true' and '$(_portableOS)' == 'linux-musl'">linux-musl - <_packageOS Condition="'$(CrossBuild)' == 'true' and '$(_portableOS)' == 'linux-bionic'">linux-bionic + <_packageOS Condition="'$(CrossBuild)' == 'true' and '$(_portableOS)' != 'linux-musl' and '$(_portableOS)' != 'linux-bionic'">$(_hostOS) $(_packageOS)-$(TargetArchitecture) From 06bb0ea29962489bebe368631b137465b492d33b Mon Sep 17 00:00:00 2001 From: Tom Deseyn Date: Mon, 6 Mar 2023 21:10:01 +0100 Subject: [PATCH 22/36] Try fix the linux-bionic build, part III. --- Directory.Build.props | 30 +++++++++++------------ eng/pipelines/common/global-build-job.yml | 2 +- 2 files changed, 16 insertions(+), 16 deletions(-) diff --git a/Directory.Build.props b/Directory.Build.props index c9c2a7f5ade39..2950704536928 100644 --- a/Directory.Build.props +++ b/Directory.Build.props @@ -176,23 +176,23 @@ true - + - <_portableOS>$(TargetOS.ToLowerInvariant()) - <_portableOS Condition="'$(_portableOS)' == 'anyos'">$(__PortableOS) - <_portableOS Condition="'$(_portableOS)' == 'windows'">win - <_portableOS Condition="'$(_portableOS)' == 'linux' and '$(__PortableOS)' == 'linux-musl'">linux-musl - <_portableOS Condition="'$(_portableOS)' == 'linux' and '$(__PortableOS)' == 'linux-bionic'">linux-bionic + $(TargetOS.ToLowerInvariant()) + $(__PortableOS) + win + linux-musl + linux-bionic - <_packageOS>$(_portableOS) - <_packageOS Condition="'$(RuntimeOS)' != ''">$(RuntimeOS) + <_packageOS>$(PortableOS) + <_packageOS Condition="'$(CrossBuild)' != 'true' and '$(RuntimeOS)' != ''">$(RuntimeOS) - <_packageOS Condition="'$(CrossBuild)' == 'true' and '$(_portableOS)' != 'linux-musl' and '$(_portableOS)' != 'linux-bionic'">$(_hostOS) + <_packageOS Condition="'$(CrossBuild)' == 'true' and '$(PortableOS)' != 'linux-musl' and '$(PortableOS)' != 'linux-bionic'">$(_hostOS) - $(_packageOS)-$(TargetArchitecture) + $(PackageOS)-$(TargetArchitecture) @@ -201,8 +201,8 @@ note: for CrossBuilds, we're unable to determine if the host is linux-musl or linux-bionic. --> <_portableHostOS>$(_hostOS) <_portableHostOS Condition="'$(_portableHostOS)' == 'windows'">win - <_portableHostOS Condition="'$(CrossBuild)' != 'true' and '$(_portableOS)' == 'linux-musl'">linux-musl - <_portableHostOS Condition="'$(CrossBuild)' != 'true' and '$(_portableOS)' == 'linux-bionic'">linux-bionic + <_portableHostOS Condition="'$(CrossBuild)' != 'true' and '$(PortableOS)' == 'linux-musl'">linux-musl + <_portableHostOS Condition="'$(CrossBuild)' != 'true' and '$(PortableOS)' == 'linux-bionic'">linux-bionic $(RuntimeOS)-$(_hostArch) $(_portableHostOS)-$(_hostArch) @@ -219,7 +219,7 @@ <_distroRidIndex>$(_parseDistroRid.LastIndexOf('-')) <_outputOS>$(_parseDistroRid.SubString(0, $(_distroRidIndex))) - <_outputOS Condition="'$(PortableBuild)' == 'true'">$(_portableOS) + <_outputOS Condition="'$(PortableBuild)' == 'true'">$(PortableOS) $(_outputOS)-$(TargetArchitecture) @@ -229,8 +229,8 @@ true true true - true - true + true + true true true true diff --git a/eng/pipelines/common/global-build-job.yml b/eng/pipelines/common/global-build-job.yml index f059b449b9467..d4fdc3c859aa8 100644 --- a/eng/pipelines/common/global-build-job.yml +++ b/eng/pipelines/common/global-build-job.yml @@ -73,7 +73,7 @@ jobs: - ${{ if and(eq(parameters.osGroup, 'linux'), eq(parameters.osSubGroup, '_bionic')) }}: - name: _osParameter - value: /p:RuntimeOS=linux-bionic + value: /p:PortableOS=linux-bionic # Do not rename as it clashes with MSBuild property in libraries/build-native.proj - name: _crossBuildPropertyArg From 6973d62fabac9e0915112ff5d81536d00af83edb Mon Sep 17 00:00:00 2001 From: Tom Deseyn Date: Mon, 6 Mar 2023 21:33:46 +0100 Subject: [PATCH 23/36] Fix PackageRID. --- Directory.Build.props | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Directory.Build.props b/Directory.Build.props index 2950704536928..c37a0aef59869 100644 --- a/Directory.Build.props +++ b/Directory.Build.props @@ -192,7 +192,7 @@ <_packageOS Condition="'$(CrossBuild)' == 'true' and '$(PortableOS)' != 'linux-musl' and '$(PortableOS)' != 'linux-bionic'">$(_hostOS) - $(PackageOS)-$(TargetArchitecture) + $(_packageOS)-$(TargetArchitecture) From 83baf6c54b18e69ae17c19f0f4b83a22b4b8f4c3 Mon Sep 17 00:00:00 2001 From: Tom Deseyn Date: Mon, 6 Mar 2023 22:10:39 +0100 Subject: [PATCH 24/36] Use RuntimeOS as _packageOS override. --- Directory.Build.props | 35 ++++++++++++----------- eng/SourceBuild.props | 2 +- eng/pipelines/common/global-build-job.yml | 2 +- 3 files changed, 20 insertions(+), 19 deletions(-) diff --git a/Directory.Build.props b/Directory.Build.props index c37a0aef59869..1670dcf4cfdae 100644 --- a/Directory.Build.props +++ b/Directory.Build.props @@ -176,21 +176,21 @@ true - + - $(TargetOS.ToLowerInvariant()) - $(__PortableOS) - win - linux-musl - linux-bionic + <_portableOS>$(TargetOS.ToLowerInvariant()) + <_portableOS Condition="'$(_portableOS)' == 'anyos'">$(__PortableOS) + <_portableOS Condition="'$(_portableOS)' == 'windows'">win + <_portableOS Condition="'$(_portableOS)' == 'linux' and '$(__PortableOS)' == 'linux-musl'">linux-musl + <_portableOS Condition="'$(_portableOS)' == 'linux' and '$(__PortableOS)' == 'linux-bionic'">linux-bionic + <_portableOS Condition="'$(RuntimeOS)' == 'linux-bionic'">linux-bionic - <_packageOS>$(PortableOS) - <_packageOS Condition="'$(CrossBuild)' != 'true' and '$(RuntimeOS)' != ''">$(RuntimeOS) - - <_packageOS Condition="'$(CrossBuild)' == 'true' and '$(PortableOS)' != 'linux-musl' and '$(PortableOS)' != 'linux-bionic'">$(_hostOS) + <_packageOS>$(_portableOS) + <_packageOS Condition="'$(CrossBuild)' == 'true' and '$(_portableOS)' != 'linux-musl' and '$(_portableOS)' != 'linux-bionic'">$(_hostOS) + <_packageOS Condition="'$(RuntimeOS)' != ''">$(RuntimeOS) $(_packageOS)-$(TargetArchitecture) @@ -201,11 +201,12 @@ note: for CrossBuilds, we're unable to determine if the host is linux-musl or linux-bionic. --> <_portableHostOS>$(_hostOS) <_portableHostOS Condition="'$(_portableHostOS)' == 'windows'">win - <_portableHostOS Condition="'$(CrossBuild)' != 'true' and '$(PortableOS)' == 'linux-musl'">linux-musl - <_portableHostOS Condition="'$(CrossBuild)' != 'true' and '$(PortableOS)' == 'linux-bionic'">linux-bionic + <_portableHostOS Condition="'$(CrossBuild)' != 'true' and '$(_portableOS)' == 'linux-musl'">linux-musl + <_portableHostOS Condition="'$(CrossBuild)' != 'true' and '$(_portableOS)' == 'linux-bionic'">linux-bionic + + $(_portableHostOS) - $(RuntimeOS)-$(_hostArch) - $(_portableHostOS)-$(_hostArch) + $(ToolsOS)-$(_hostArch) $(ToolsRID) @@ -219,7 +220,7 @@ <_distroRidIndex>$(_parseDistroRid.LastIndexOf('-')) <_outputOS>$(_parseDistroRid.SubString(0, $(_distroRidIndex))) - <_outputOS Condition="'$(PortableBuild)' == 'true'">$(PortableOS) + <_outputOS Condition="'$(PortableBuild)' == 'true'">$(_portableOS) $(_outputOS)-$(TargetArchitecture) @@ -229,8 +230,8 @@ true true true - true - true + true + true true true true diff --git a/eng/SourceBuild.props b/eng/SourceBuild.props index 43ea8e32792d6..3b477d57a6346 100644 --- a/eng/SourceBuild.props +++ b/eng/SourceBuild.props @@ -38,7 +38,7 @@ $(InnerBuildArgs) --nodereuse false $(InnerBuildArgs) --warnAsError false $(InnerBuildArgs) --outputrid $(TargetRid) - $(InnerBuildArgs) /p:RuntimeOS=$(RuntimeOS) + $(InnerBuildArgs) /p:RuntimeOS=$(RuntimeOS) /p:ToolsOS=$(RuntimeOS) $(InnerBuildArgs) /p:OfficialBuildId=$(OfficialBuildId) $(InnerBuildArgs) /p:ContinuousIntegrationBuild=$(ContinuousIntegrationBuild) $(InnerBuildArgs) /p:AdditionalRuntimeIdentifierParent=$(BaseOS) diff --git a/eng/pipelines/common/global-build-job.yml b/eng/pipelines/common/global-build-job.yml index d4fdc3c859aa8..f059b449b9467 100644 --- a/eng/pipelines/common/global-build-job.yml +++ b/eng/pipelines/common/global-build-job.yml @@ -73,7 +73,7 @@ jobs: - ${{ if and(eq(parameters.osGroup, 'linux'), eq(parameters.osSubGroup, '_bionic')) }}: - name: _osParameter - value: /p:PortableOS=linux-bionic + value: /p:RuntimeOS=linux-bionic # Do not rename as it clashes with MSBuild property in libraries/build-native.proj - name: _crossBuildPropertyArg From 1eeef023689839f09a4d8652f8ac086616aa6eb1 Mon Sep 17 00:00:00 2001 From: Tom Deseyn Date: Tue, 7 Mar 2023 07:11:43 +0100 Subject: [PATCH 25/36] Remove RuntimeOS. --- Directory.Build.props | 8 +++----- docs/coding-guidelines/project-guidelines.md | 3 --- eng/SourceBuild.props | 2 +- eng/common/templates/steps/source-build.yml | 5 ----- eng/pipelines/common/global-build-job.yml | 3 +-- src/tests/build.proj | 3 ++- 6 files changed, 7 insertions(+), 17 deletions(-) diff --git a/Directory.Build.props b/Directory.Build.props index 1670dcf4cfdae..a3e5144db4751 100644 --- a/Directory.Build.props +++ b/Directory.Build.props @@ -183,15 +183,14 @@ <_portableOS Condition="'$(_portableOS)' == 'windows'">win <_portableOS Condition="'$(_portableOS)' == 'linux' and '$(__PortableOS)' == 'linux-musl'">linux-musl <_portableOS Condition="'$(_portableOS)' == 'linux' and '$(__PortableOS)' == 'linux-bionic'">linux-bionic - <_portableOS Condition="'$(RuntimeOS)' == 'linux-bionic'">linux-bionic <_packageOS>$(_portableOS) <_packageOS Condition="'$(CrossBuild)' == 'true' and '$(_portableOS)' != 'linux-musl' and '$(_portableOS)' != 'linux-bionic'">$(_hostOS) - <_packageOS Condition="'$(RuntimeOS)' != ''">$(RuntimeOS) + $(PackageOS)-$(TargetArchitecture) $(_packageOS)-$(TargetArchitecture) @@ -204,9 +203,8 @@ <_portableHostOS Condition="'$(CrossBuild)' != 'true' and '$(_portableOS)' == 'linux-musl'">linux-musl <_portableHostOS Condition="'$(CrossBuild)' != 'true' and '$(_portableOS)' == 'linux-bionic'">linux-bionic - $(_portableHostOS) - - $(ToolsOS)-$(_hostArch) + $(ToolsOS)-$(_hostArch) + $(_portableHostOS)-$(_hostArch) $(ToolsRID) diff --git a/docs/coding-guidelines/project-guidelines.md b/docs/coding-guidelines/project-guidelines.md index 8bb511be52f90..0d76e3276cd62 100644 --- a/docs/coding-guidelines/project-guidelines.md +++ b/docs/coding-guidelines/project-guidelines.md @@ -29,7 +29,6 @@ The following are the properties associated with each build pivot - `$(TargetOS) -> windows | linux | osx | freebsd | ... | [defaults to running OS when empty]` - `$(Configuration) -> Debug | Release | [defaults to Debug when empty]` - `$(TargetArchitecture) - x86 | x64 | arm | arm64 | [defaults to x64 when empty]` -- `$(RuntimeOS) - win7 | osx10.10 | ubuntu.14.04 | [any other RID OS+version] | [defaults to running OS when empty]` See [RIDs](https://github.com/dotnet/runtime/tree/main/src/libraries/Microsoft.NETCore.Platforms) for more info. ## Aggregate build properties Each project will define a set of supported TargetFrameworks @@ -63,8 +62,6 @@ A full or individual project build is centered around BuildTargetFramework, Targ 2. If nothing is passed to the build then we will default value of these properties from the environment. Example: `net8.0-[TargetOS Running On]-Debug-x64`. 3. When building an individual project (either from the CLI or an IDE), all target frameworks are built. -We also have `RuntimeOS` which can be passed to customize the specific OS and version needed for native package builds as well as package restoration. If not passed it will default based on the OS you are running on. - Any of the mentioned properties can be set via `/p:=` at the command line. When building using any of the wrapper scripts around it (i.e. build.cmd) a number of these properties have aliases which make them easier to pass (run build.cmd/sh -? for the aliases). ## Selecting the correct BuildSettings diff --git a/eng/SourceBuild.props b/eng/SourceBuild.props index 3b477d57a6346..1ba586d1ee237 100644 --- a/eng/SourceBuild.props +++ b/eng/SourceBuild.props @@ -38,7 +38,7 @@ $(InnerBuildArgs) --nodereuse false $(InnerBuildArgs) --warnAsError false $(InnerBuildArgs) --outputrid $(TargetRid) - $(InnerBuildArgs) /p:RuntimeOS=$(RuntimeOS) /p:ToolsOS=$(RuntimeOS) + $(InnerBuildArgs) /p:PackageOS=$(RuntimeOS) /p:ToolsOS=$(RuntimeOS) $(InnerBuildArgs) /p:OfficialBuildId=$(OfficialBuildId) $(InnerBuildArgs) /p:ContinuousIntegrationBuild=$(ContinuousIntegrationBuild) $(InnerBuildArgs) /p:AdditionalRuntimeIdentifierParent=$(BaseOS) diff --git a/eng/common/templates/steps/source-build.yml b/eng/common/templates/steps/source-build.yml index a97a185a367a9..fb48f7d35896d 100644 --- a/eng/common/templates/steps/source-build.yml +++ b/eng/common/templates/steps/source-build.yml @@ -63,11 +63,6 @@ steps: targetRidArgs='/p:TargetRid=${{ parameters.platform.targetRID }}' fi - runtimeOsArgs= - if [ '${{ parameters.platform.runtimeOS }}' != '' ]; then - runtimeOsArgs='/p:RuntimeOS=${{ parameters.platform.runtimeOS }}' - fi - publishArgs= if [ '${{ parameters.platform.skipPublishValidation }}' != 'true' ]; then publishArgs='--publish' diff --git a/eng/pipelines/common/global-build-job.yml b/eng/pipelines/common/global-build-job.yml index f059b449b9467..67e555719f5fc 100644 --- a/eng/pipelines/common/global-build-job.yml +++ b/eng/pipelines/common/global-build-job.yml @@ -73,7 +73,7 @@ jobs: - ${{ if and(eq(parameters.osGroup, 'linux'), eq(parameters.osSubGroup, '_bionic')) }}: - name: _osParameter - value: /p:RuntimeOS=linux-bionic + value: -os linux-bionic # Do not rename as it clashes with MSBuild property in libraries/build-native.proj - name: _crossBuildPropertyArg @@ -169,7 +169,6 @@ jobs: buildScript: $(_sclEnableCommand) $(Build.SourcesDirectory)$(dir)build$(scriptExt) nonPortable: ${{ parameters.isNonPortableSourceBuild }} targetRID: ${{ parameters.targetRid }} - runtimeOS: linux name: ${{ parameters.platform }} - ${{ if in(parameters.osGroup, 'osx', 'maccatalyst', 'ios', 'iossimulator', 'tvos', 'tvossimulator') }}: diff --git a/src/tests/build.proj b/src/tests/build.proj index 23f0e70edfc85..3b38faa505a5a 100644 --- a/src/tests/build.proj +++ b/src/tests/build.proj @@ -475,7 +475,8 @@ $(GroupBuildCmd) "/p:Configuration=$(Configuration)" $(GroupBuildCmd) "/p:LibrariesConfiguration=$(LibrariesConfiguration)" $(GroupBuildCmd) "/p:TargetOS=$(TargetOS)" - $(GroupBuildCmd) "/p:RuntimeOS=$(RuntimeOS)" + $(GroupBuildCmd) "/p:ToolsOS=$(ToolsOS)" + $(GroupBuildCmd) "/p:PackageOS=$(PackageOS)" $(GroupBuildCmd) "/p:RuntimeFlavor=$(RuntimeFlavor)" $(GroupBuildCmd) "/p:RuntimeVariant=$(RuntimeVariant)" $(GroupBuildCmd) "/p:CLRTestBuildAllTargets=$(CLRTestBuildAllTargets)" From a361268cd9b6f553e31f0338575248a6f0b65a4a Mon Sep 17 00:00:00 2001 From: Tom Deseyn Date: Tue, 7 Mar 2023 15:12:29 +0100 Subject: [PATCH 26/36] Fix '-os linux-musl' mapping. --- eng/build.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/eng/build.sh b/eng/build.sh index 4e18ac5d84a54..11567438aca31 100755 --- a/eng/build.sh +++ b/eng/build.sh @@ -291,7 +291,7 @@ while [[ $# > 0 ]]; do __PortableOS=linux-bionic ;; linux-musl) - os="linux-musl" + os="linux" __PortableOS=linux-musl ;; *) From 89a70f6c5c826cfc35a8a5158cfd32659c51859a Mon Sep 17 00:00:00 2001 From: Tom Deseyn Date: Tue, 7 Mar 2023 15:13:07 +0100 Subject: [PATCH 27/36] Clean up . --- eng/common/templates/steps/source-build.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/eng/common/templates/steps/source-build.yml b/eng/common/templates/steps/source-build.yml index fb48f7d35896d..4ec5577d28a0c 100644 --- a/eng/common/templates/steps/source-build.yml +++ b/eng/common/templates/steps/source-build.yml @@ -80,7 +80,6 @@ steps: $internalRuntimeDownloadArgs \ $internalRestoreArgs \ $targetRidArgs \ - $runtimeOsArgs \ /p:SourceBuildNonPortable=${{ parameters.platform.nonPortable }} \ /p:ArcadeBuildFromSource=true \ /p:AssetManifestFileName=$assetManifestFileName From 78bcd2302bdc7f506c8c5820baf42006a17d541f Mon Sep 17 00:00:00 2001 From: Tom Deseyn Date: Tue, 7 Mar 2023 15:16:29 +0100 Subject: [PATCH 28/36] Rename __PortableOS to __PortableTargetOS. --- Directory.Build.props | 6 +++--- eng/build.sh | 4 ++-- eng/native/build-commons.sh | 4 ++-- eng/native/init-distro-rid.sh | 10 +++++----- 4 files changed, 12 insertions(+), 12 deletions(-) diff --git a/Directory.Build.props b/Directory.Build.props index a3e5144db4751..31bfd19c42dc5 100644 --- a/Directory.Build.props +++ b/Directory.Build.props @@ -179,10 +179,10 @@ <_portableOS>$(TargetOS.ToLowerInvariant()) - <_portableOS Condition="'$(_portableOS)' == 'anyos'">$(__PortableOS) + <_portableOS Condition="'$(_portableOS)' == 'anyos'">$(__PortableTargetOS) <_portableOS Condition="'$(_portableOS)' == 'windows'">win - <_portableOS Condition="'$(_portableOS)' == 'linux' and '$(__PortableOS)' == 'linux-musl'">linux-musl - <_portableOS Condition="'$(_portableOS)' == 'linux' and '$(__PortableOS)' == 'linux-bionic'">linux-bionic + <_portableOS Condition="'$(_portableOS)' == 'linux' and '$(__PortableTargetOS)' == 'linux-musl'">linux-musl + <_portableOS Condition="'$(_portableOS)' == 'linux' and '$(__PortableTargetOS)' == 'linux-bionic'">linux-bionic diff --git a/eng/build.sh b/eng/build.sh index 11567438aca31..684a28a293fb6 100755 --- a/eng/build.sh +++ b/eng/build.sh @@ -288,11 +288,11 @@ while [[ $# > 0 ]]; do os="solaris" ;; linux-bionic) os="linux" - __PortableOS=linux-bionic + __PortableTargetOS=linux-bionic ;; linux-musl) os="linux" - __PortableOS=linux-musl + __PortableTargetOS=linux-musl ;; *) echo "Unsupported target OS '$2'." diff --git a/eng/native/build-commons.sh b/eng/native/build-commons.sh index 246fba739edf0..67a8684b3b722 100755 --- a/eng/native/build-commons.sh +++ b/eng/native/build-commons.sh @@ -535,13 +535,13 @@ if [[ "$__CrossBuild" == 1 ]]; then fi fi -# init the target distro name (__DistroRid) and target portable os (__PortableOS). +# init the target distro name (__DistroRid) and target portable os (__PortableTargetOS). initTargetDistroRid if [ -z "$__OutputRid" ]; then if [[ "$__PortableBuild" == 0 ]]; then __OutputRid="$__DistroRid" else - __OutputRid="$__PortableOS-$__TargetArch" + __OutputRid="$__PortableTargetOS-$__TargetArch" fi fi export __OutputRid diff --git a/eng/native/init-distro-rid.sh b/eng/native/init-distro-rid.sh index e280bba590a0d..da1a1e39a0ba3 100644 --- a/eng/native/init-distro-rid.sh +++ b/eng/native/init-distro-rid.sh @@ -88,7 +88,7 @@ getNonPortableDistroRid() # exports the following variables on success: # # __DistroRid : Non-portable rid of the target platform. -# __PortableOS : OS-part of the portable rid that corresponds to the target platform. +# __PortableTargetOS : OS-part of the portable rid that corresponds to the target platform. # initDistroRidGlobal() { @@ -110,15 +110,15 @@ initDistroRidGlobal() __DistroRid=$(getNonPortableDistroRid "${targetOs}" "${targetArch}" "${rootfsDir}") - if [ -z "${__PortableOS:-}" ]; then - __PortableOS="$targetOs" + if [ -z "${__PortableTargetOS:-}" ]; then + __PortableTargetOS="$targetOs" # Check for musl-based distros (e.g Alpine Linux, Void Linux). if "${rootfsDir}/usr/bin/ldd" --version 2>&1 | grep -q musl || strings "${rootfsDir}/usr/bin/ldd" 2>&1 | grep -q musl; then - __PortableOS="linux-musl" + __PortableTargetOS="linux-musl" fi fi - export __DistroRid __PortableOS + export __DistroRid __PortableTargetOS } From d672f14dfbea84a3f84c53b06434146d23598a11 Mon Sep 17 00:00:00 2001 From: Tom Deseyn Date: Wed, 8 Mar 2023 16:43:34 +0100 Subject: [PATCH 29/36] Extend comments. --- Directory.Build.props | 26 ++++++++++++++++++++++---- 1 file changed, 22 insertions(+), 4 deletions(-) diff --git a/Directory.Build.props b/Directory.Build.props index 31bfd19c42dc5..6d990bf186248 100644 --- a/Directory.Build.props +++ b/Directory.Build.props @@ -176,11 +176,19 @@ true - + + + <_portableOS>$(TargetOS.ToLowerInvariant()) - <_portableOS Condition="'$(_portableOS)' == 'anyos'">$(__PortableTargetOS) <_portableOS Condition="'$(_portableOS)' == 'windows'">win + + + <_portableOS Condition="'$(_portableOS)' == 'anyos'">$(__PortableTargetOS) + + <_portableOS Condition="'$(_portableOS)' == 'linux' and '$(__PortableTargetOS)' == 'linux-musl'">linux-musl <_portableOS Condition="'$(_portableOS)' == 'linux' and '$(__PortableTargetOS)' == 'linux-bionic'">linux-bionic @@ -188,23 +196,33 @@ <_packageOS>$(_portableOS) + <_packageOS Condition="'$(CrossBuild)' == 'true' and '$(_portableOS)' != 'linux-musl' and '$(_portableOS)' != 'linux-bionic'">$(_hostOS) + $(PackageOS)-$(TargetArchitecture) $(_packageOS)-$(TargetArchitecture) - + <_portableHostOS>$(_hostOS) <_portableHostOS Condition="'$(_portableHostOS)' == 'windows'">win <_portableHostOS Condition="'$(CrossBuild)' != 'true' and '$(_portableOS)' == 'linux-musl'">linux-musl <_portableHostOS Condition="'$(CrossBuild)' != 'true' and '$(_portableOS)' == 'linux-bionic'">linux-bionic + $(ToolsOS)-$(_hostArch) $(_portableHostOS)-$(_hostArch) + + $(ToolsRID) From bd52080ba33d6ad6f11aab2a682963d6d9001bf5 Mon Sep 17 00:00:00 2001 From: Tom Deseyn Date: Wed, 8 Mar 2023 16:53:48 +0100 Subject: [PATCH 30/36] Extend OutputRID comment too. --- Directory.Build.props | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/Directory.Build.props b/Directory.Build.props index 6d990bf186248..4fef87958d87c 100644 --- a/Directory.Build.props +++ b/Directory.Build.props @@ -226,8 +226,12 @@ $(ToolsRID) - + + <_hostRid Condition="'$(MSBuildRuntimeType)' == 'core'">$([System.Runtime.InteropServices.RuntimeInformation]::RuntimeIdentifier) <_hostRid Condition="'$(MSBuildRuntimeType)' != 'core'">win-$([System.Runtime.InteropServices.RuntimeInformation]::OSArchitecture.ToString().ToLowerInvariant) From 3e5800c05feef355b85c00eff27d548107553e2c Mon Sep 17 00:00:00 2001 From: Tom Deseyn Date: Tue, 14 Mar 2023 07:47:00 +0100 Subject: [PATCH 31/36] build.sh: include linux-bionic, linux-musl in usage. --- eng/build.sh | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/eng/build.sh b/eng/build.sh index 684a28a293fb6..14855d30b0f1c 100755 --- a/eng/build.sh +++ b/eng/build.sh @@ -31,7 +31,8 @@ usage() echo " --librariesConfiguration (-lc) Libraries build configuration: Debug or Release." echo " [Default: Debug]" echo " --os Target operating system: windows, linux, freebsd, osx, maccatalyst, tvos," - echo " tvossimulator, ios, iossimulator, android, browser, wasi, netbsd, illumos or solaris." + echo " tvossimulator, ios, iossimulator, android, browser, wasi, netbsd, illumos, solaris" + echo " linux-musl or linux-bionic." echo " [Default: Your machine's OS.]" echo " --outputrid Optional argument that overrides the target rid name." echo " --projects Project or solution file(s) to build." From 0814de1409acaa898d885c5e0a7521335d2fe8f9 Mon Sep 17 00:00:00 2001 From: Tom Deseyn Date: Tue, 4 Apr 2023 17:07:11 +0200 Subject: [PATCH 32/36] SourceBuild.props: no need to pass RuntimeOS. Only set ToolsOS, PackageOS when RuntimeOS is not empty. --- eng/SourceBuild.props | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/eng/SourceBuild.props b/eng/SourceBuild.props index a1e4c1bfdc693..c323c106b4260 100644 --- a/eng/SourceBuild.props +++ b/eng/SourceBuild.props @@ -33,8 +33,7 @@ $(InnerBuildArgs) --outputrid $(TargetRid) - $(InnerBuildArgs) /p:PackageOS=$(RuntimeOS) /p:ToolsOS=$(RuntimeOS) - $(InnerBuildArgs) /p:RuntimeOS=$(RuntimeOS) + $(InnerBuildArgs) /p:PackageOS=$(RuntimeOS) /p:ToolsOS=$(RuntimeOS) $(InnerBuildArgs) /p:AdditionalRuntimeIdentifierParent=$(BaseOS) From 01bae0d577cc600a9a90f1ac790971b615454b10 Mon Sep 17 00:00:00 2001 From: Tom Deseyn Date: Tue, 18 Apr 2023 05:46:00 +0200 Subject: [PATCH 33/36] Fix comment. --- eng/SourceBuild.props | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/eng/SourceBuild.props b/eng/SourceBuild.props index c323c106b4260..bbf4b6996cea3 100644 --- a/eng/SourceBuild.props +++ b/eng/SourceBuild.props @@ -31,7 +31,7 @@ $(InnerBuildArgs) --nodereuse false $(InnerBuildArgs) --warnAsError false $(InnerBuildArgs) --outputrid $(TargetRid) - $(InnerBuildArgs) /p:PackageOS=$(RuntimeOS) /p:ToolsOS=$(RuntimeOS) $(ToolsOS)-$(_hostArch) From 81402ef259e812312c2e69d835ad10512776a2ce Mon Sep 17 00:00:00 2001 From: Tom Deseyn Date: Thu, 20 Apr 2023 17:09:03 +0200 Subject: [PATCH 35/36] Unconditionally assign TargetsLinuxBionic/TargetsLinuxMusl. --- Directory.Build.props | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/Directory.Build.props b/Directory.Build.props index 32ef09b0e4a84..6f3777ec9058e 100644 --- a/Directory.Build.props +++ b/Directory.Build.props @@ -197,6 +197,9 @@ <_portableOS Condition="'$(_portableOS)' == 'linux' and '$(__PortableTargetOS)' == 'linux-musl'">linux-musl <_portableOS Condition="'$(_portableOS)' == 'linux' and '$(__PortableTargetOS)' == 'linux-bionic'">linux-bionic + + true + true @@ -255,8 +258,6 @@ true true true - true - true true true true From 8219051ba4bddd510e26ae397290b4bec5c5138b Mon Sep 17 00:00:00 2001 From: Tom Deseyn Date: Thu, 20 Apr 2023 23:40:23 +0200 Subject: [PATCH 36/36] Remove SkipInferTargetOSName. --- Directory.Build.props | 7 +++---- src/libraries/Directory.Build.props | 1 - 2 files changed, 3 insertions(+), 5 deletions(-) diff --git a/Directory.Build.props b/Directory.Build.props index 6f3777ec9058e..e238fe3f9bce9 100644 --- a/Directory.Build.props +++ b/Directory.Build.props @@ -197,9 +197,6 @@ <_portableOS Condition="'$(_portableOS)' == 'linux' and '$(__PortableTargetOS)' == 'linux-musl'">linux-musl <_portableOS Condition="'$(_portableOS)' == 'linux' and '$(__PortableTargetOS)' == 'linux-bionic'">linux-bionic - - true - true @@ -253,11 +250,13 @@ $(_outputOS)-$(TargetArchitecture) - + true true true true + true + true true true true diff --git a/src/libraries/Directory.Build.props b/src/libraries/Directory.Build.props index f5c03d347e405..3f808e7eb4f6a 100644 --- a/src/libraries/Directory.Build.props +++ b/src/libraries/Directory.Build.props @@ -1,6 +1,5 @@ - true true