diff --git a/user/dotnet7-build/APKBUILD b/user/dotnet7-build/APKBUILD new file mode 100644 index 0000000..fcdada8 --- /dev/null +++ b/user/dotnet7-build/APKBUILD @@ -0,0 +1,529 @@ +# Maintainer: Antoine Martin (ayakael) +# Contributor: Antoine Martin (ayakael) + +# secfixes: +# 7.0.103-r0: +# - CVE-2023-21808 + +pkgname=dotnet7-build +pkgver=7.0.103 +pkgrel=0 +_gittag=v$pkgver +_giturl="https://github.com/dotnet/installer" +_testtag=16c3c04f3ae6620a474fa0474e8b298190e506c1 +_bunnytag=v12 +_patches=" + build_disable-source-link.patch + build_enable-timestamps.patch + build_shutdown-build-servers-at-each-build-step.patch + check_rid-alpine-generation.diff + roslyn-analyzer_disable-apphost.patch + runtime_76500-mono-musl-support.patch + runtime_enable-runtime-marshalling.diff + runtime_enable-system-libunwind.diff + runtime_mono-thread-coop-undefine-fortify-source.patch + sdk_14239-add-zsh-compdef-completion-script.patch + " + +_pkgver_macro=${pkgver%.*} +_pkgver_prior=${pkgver%.*.*} +_pkgver_name=${_pkgver_macro//[.0]} +pkgdesc="The .NET $_pkgver_macro bootstrap" +# x86: blocked by https://github.com/dotnet/runtime/issues/77667 +# armhf: blocked by https://github.com/dotnet/runtime/issues/77663 +# riscv64: port WIP https://github.com/dotnet/runtime/issues/36748 +arch="all !x86 !armhf !riscv64" +url=https://dotnet.microsoft.com +license="MIT" +# hack for dotnetx-build to be able to pull itself for bootstrapping +provides="dotnet$_pkgver_name-bootstrap" +provider_priority=$_pkgver_prior +checkdepends=" + babeltrace + binutils + coreutils + file + gawk + jq + lttng-tools + npm + procps + sed + strace + util-linux-misc + which + " +makedepends=" + bash + clang + cmake + dotnet$_pkgver_name-bootstrap + dotnet$_pkgver_name-bootstrap-artifacts + dotnet$_pkgver_name-stage0 + findutils + git + grep + icu-data-full + icu-dev + inetutils-syslogd + krb5-dev + libgit2-dev + libintl + libucontext-dev + libunwind-dev + libxml2-dev + libxml2-utils + linux-headers + lldb-dev + llvm-dev + lttng-ust-dev + nodejs + numactl-dev + openssl-dev + pigz + rsync + samurai + tar + xz + zlib-dev + " +case $CARCH in + s390x|x86) ;; + *) makedepends="$makedepends lld-dev";; +esac + +subpackages=" + dotnet$_pkgver_name-artifacts:artifacts:noarch + dotnet$_pkgver_name-sdk + dotnet$_pkgver_name-templates:templates:noarch + dotnet-zsh-completion:zshcomp:noarch + dotnet-bash-completion:bashcomp:noarch + dotnet-doc + netstandard21-targeting-pack:netstandard_targeting_pack:noarch + " +source=" + https://lab.ilot.io/dotnet/installer/-/releases/$_gittag/downloads/tarball/dotnet-$_gittag.tar.xz + dotnet-testsuite-$_testtag.tar.gz::https://github.com/redhat-developer/dotnet-regular-tests/archive/$_testtag.tar.gz + dotnet-bunny-$_bunnytag.tar.gz::https://github.com/redhat-developer/dotnet-bunny/archive/$_bunnytag.tar.gz + $_patches + " +builddir="$srcdir"/dotnet-$_gittag +_checkdir="$srcdir"/dotnet-bunny-${_bunnytag/v} +_testdir="$srcdir"/dotnet-regular-tests-$_testtag +_cli_root="$srcdir"/bootstrap +_libdir="/usr/lib" +# if true, then within pipeline environment, in which case send logs there +# to be scooped +if [ -d "$APORTSDIR/logs" ]; then + _logdir="$APORTSDIR"/logs/$pkgname +else + _logdir="$srcdir"/logs +fi + +case $CARCH in + x86_64) _dotnet_arch="x64";; + aarch64) _dotnet_arch="arm64";; + armv7) _dotnet_arch="arm";; + armhf) _dotnet_arch="armv6";; + *) _dotnet_arch="$CARCH";; +esac + +# Build doesn't set all the right executable bits for the right file types +_fix_executable() { + # add executable bit + find "$1" -type f \( \ + -name 'apphost' -o \ + -name 'singlefilehost' -o \ + -name 'lib*so' \ + \) \ + -exec chmod +x '{}' \; + + # remove executable bit + find "$1" -type f \( \ + -name '*.a' -o \ + -name '*.dll' -o \ + -name '*.h' -o \ + -name '*.json' -o \ + -name '*.pdb' -o \ + -name '*.props' -o \ + -name '*.pubxml' -o \ + -name '*.targets' -o \ + -name '*.txt' -o \ + -name '*.xml' \ + \) \ + -exec chmod -x '{}' \; +} + +# generates tarball containing all components built by dotnet +snapshot() { + local _pkg="$srcdir"/${builddir##*/}.tar + ulimit -n 4096 + if [ -d "$srcdir" ]; then + cd "$srcdir" + else + mkdir -p "$srcdir" && cd "$srcdir" + fi + if [ -d "installer" ]; then + cd "$srcdir"/installer + else + git clone $_giturl --branch $_gittag && cd "$srcdir"/installer + fi + + sed 's||' -i src/SourceBuild/Arcade/tools/SourceBuildArcadeTarball.targets + + if [ -d "$_libdir/dotnet/bootstrap" ]; then + local _cli_root="$(find $_libdir/dotnet/bootstrap/${_pkgver_macro}* -maxdepth 0 -type d | sort -r | head -n 1)" + else + local _cli_root="" + fi + + _InitializeDotNetCli="$_cli_root" DOTNET_INSTALL_DIR="$_cli_root" DotNetBuildFromSource=true ./build.sh \ + /p:ArcadeBuildTarball=true \ + /p:TarballDir=$builddir \ + /p:TarballFilePath=$_pkg + + msg "Compressing ${builddir##*/}.tar to $SRCDEST" + xz -T0 -9 -vv -e -c > "$SRCDEST"/${builddir##*/}.tar.xz < "$_pkg" + + cd "$startdir" + abuild checksum +} + +prepare() { + default_prepare + + # check patches + msg "check_rid-alpine-generation.diff" + patch -p1 -d "$_testdir" -i "$srcdir"/check_rid-alpine-generation.diff + + # Parallel restore is broken on mono-based builds since dotnet7 + # see https://github.com/dotnet/runtime/issues/77364 + # A workaround via runtime_enable-runtime-marshalling.diff + case $CARCH in + s390x|ppc64le) + msg "runtime_enable-runtime-marshalling.diff" + patch -p1 -i "$srcdir"/runtime_enable-runtime-marshalling.diff + ;; + esac + + # Using system libunwind is broken on aarch64|armv7, and unused on mono-based builds + # see https://github.com/dotnet/source-build/issues/2408, + case $CARCH in + aarch64|armv7) msg "Using bundled libunwind";; + armhf|s390x|ppc64le) msg "No libunwind used";; + *) + msg "Using system libunwind" + patch -p1 -i "$srcdir"/runtime_enable-system-libunwind.diff + ;; + esac + + # ensure that dotnet does not download artifacts provided by dotnet-artifacts + rm -rf "$builddir"/packages/archive + + # links logfiles to pipeline logs for easy pickup in pipelines + mkdir -p "$_logdir" "$builddir"/artifacts + ln -s "$_logdir" "$builddir"/artifacts/logs + ln -s "$_logdir" "$builddir"/artifacts/log + for i in "$builddir"/src/*; do + if [ -f "$i" ]; then + continue + fi + mkdir -p "$_logdir"/${i##*\/} "$builddir"/src/${i##*\/}/artifacts + ln -s "$_logdir"/${i##*\/} "$builddir"/src/${i##*\/}/artifacts/log + done + + # dotnet requires its bootstrap to be in a writable dir + msg "Setting up bootstrap" + local _bootstrapdir=$(find $_libdir/dotnet/bootstrap/$_pkgver_macro* -maxdepth 0 | sort -r | head -n 1) + if [ ! -d "$_cli_root" ]; then + cp -r "$_bootstrapdir" "$_cli_root" + fi +} + +build() { + msg "Building $pkgname-$pkgver" + + ulimit -n 4096 + + # Disable use of LTTng as tracing on lttng <=2,13,0 is broken + # See https://github.com/dotnet/runtime/issues/57784. + if [ -f "/usr/lib/liblttng-ust.so.1 " ]; then + export DOTNET_LTTng=0 + fi + + # looks for most recent recent version of _artifactsdir + local _artifactsdir=$(find $_libdir/dotnet/artifacts/$_pkgver_macro* -maxdepth 0 | sort -r | head -n 1) + + # ci args, else the output is forwarded to log files which isn't ideal in a + # pipeline environment, and build by defaults uses lots of space + local args=" + /v:minimal + /p:LogVerbosity=minimal + /p:MinimalConsoleLogOutput=true + /p:CleanWhileBuilding=true + " + + # part of https://github.com/dotnet/installer/pull/14792 that sets this flag + # was not integrated in 7.0.1xx yet + case $CARCH in + s390x|ppc64le) local args="$args /p:SourceBuildUseMonoRuntime=true";; + esac + + # Sets TargetRid manually as dotnet cannot be trusted to reliably compute + # the machine's runtime ID between releases. + # shellcheck disable=SC2034 + . /etc/os-release + local VERSION_ID_DOT="${VERSION_ID//[^.]}" + while [ ${#VERSION_ID_DOT} -gt 1 ]; do + local VERSION_ID="${VERSION_ID%.*}" + local VERSION_ID_DOT="${VERSION_ID//[^.]}" + done + local VERSION_ID_DASH="${VERSION_ID//[^_]}" + while [ ${#VERSION_ID_DASH} -ge 1 ]; do + local VERSION_ID="${VERSION_ID%_*}" + local VERSION_ID_DASH="${VERSION_ID//[^_]}" + done + local args="$args /p:TargetRid=$ID.$VERSION_ID-$_dotnet_arch" + + ./build.sh \ + --with-sdk "$_cli_root" \ + --with-packages "$_artifactsdir" \ + -- $args +} + +check() { + ulimit -n 4096 + # Tests timeout (in seconds) + local _tests_timeout=1000 + # Test suite disable flags + # following tests can only work after packaging step + local _disabled_tests="man-pages distribution-package bash-completion install-location release-version-sane" + # test broken: permission issue on lxc / pipelines + local _disabled_tests="$_disabled_tests createdump-aspnet workload" + # liblttng-ust_sys-sdt.h: no 'NT_STAPSDT' on Alpine's lttng-ust package + # lttng: known issue, see https://github.com/dotnet/runtime/issues/57784 + local _disabled_tests="$_disabled_tests liblttng-ust_sys-sdt.h lttng" + # {bundled,system}-libunwind: use system version on all but aarch64/armv7, as broken + # see https://github.com/redhat-developer/dotnet-regular-tests/issues/113 + # disable on mono-flavored runtime as mono does not use libunwind + case $CARCH in + armv7|aarch64) local _disabled_tests="$_disabled_tests system-libunwind";; + s390x|ppc64le|armhf) local _disabled_tests="$_disabled_tests bundled-libunwind system-libunwind";; + *) local _disabled_tests="$_disabled_tests bundled-libunwind";; + esac + # test unit broken currently + _disabled_tests="$_disabled_tests system-libunwind" + # nativeaot is not supported on armv7 + case $CARCH in + armv7) local _disabled_tests="$_disabled_tests nativeaot" + esac + + msg "Unpacking produced dotnet" + export DOTNET_ROOT="$_checkdir/release" + if [ ! -d "$DOTNET_ROOT" ]; then + mkdir -p "$DOTNET_ROOT" + tar --use-compress-program="pigz" \ + -xf "$builddir"/artifacts/$_dotnet_arch/Release/dotnet-sdk-$_pkgver_macro*.tar.gz \ + -C "$DOTNET_ROOT" \ + --no-same-owner + fi + export PATH="$DOTNET_ROOT:$PATH" + # some files either should or should not have executable bits + # (done again during packaging - this is for tests) + _fix_executable "$DOTNET_ROOT" + + msg "Building turkey test suite" + if [ ! -d "$_checkdir"/turkey ]; then + cd "$_checkdir"/Turkey + dotnet publish -f netcoreapp3.1 -c Release -p:VersionPrefix=1 -p:VersionSuffix="$(git rev-parse --short HEAD)" -o "$_checkdir"/turkey + fi + + msg "Running test suite" + cd "$_testdir" + for i in $_disabled_tests; do + if [ -d "$i" ]; then + sed -i 's|"enabled": true|"enabled": false|' $i/test.json + fi + done + dotnet "$_checkdir"/turkey/Turkey.dll -t $_tests_timeout || local ERROR=true + if [ $ERROR ]; then + msg "Check error reported, dumping logs" + for i in *.log; do + msg "Dumping $i" + cat "$i" + done + fi +} + +package() { + # directory creation + install -dm 755 \ + "$pkgdir"/$_libdir/dotnet/bootstrap/$pkgver \ + "$pkgdir"/usr/share/man/man1 \ + "$pkgdir"/$_libdir/dotnet/artifacts/$pkgver + + # unpack sdk to bootstrap + tar --use-compress-program="pigz" \ + -xf "$builddir"/artifacts/$_dotnet_arch/Release/dotnet-sdk-$_pkgver_macro*.tar.gz \ + -C "$pkgdir"/$_libdir/dotnet/bootstrap/$pkgver/ \ + --no-same-owner + + # extract arch-specific artifacts to artifacts dir for use by future dotnet builds + tar --use-compress-program="pigz" \ + -xf "$builddir"/artifacts/$_dotnet_arch/Release/Private.SourceBuilt.Artifacts.*.tar.gz \ + -C "$pkgdir"/$_libdir/dotnet/artifacts/$pkgver/ \ + --no-same-owner \ + --wildcards \ + '*alpine*' + + # assemble docs + find "$builddir" -iname 'dotnet*.1' -type f -exec cp '{}' "$pkgdir"/usr/share/man/man1/. \; + + # some files either should or should not have executable bits + _fix_executable "$pkgdir" + + # Disable use of LTTng as tracing on lttng <=2,13,0 is broken + # See https://github.com/dotnet/runtime/issues/57784. + if [ -f "/usr/lib/liblttng-ust.so.1 " ]; then + rm "$pkgdir"/$_libdir/dotnet/bootstrap/*/shared/Microsoft.NETCore.App/*/libcoreclrtraceptprovider.so + fi +} + +sdk() { + pkgdesc="The .NET $_pkgver_macro SDK" + # libucontext isn't automatically detected on all platforms + depends=" + aspnetcore$_pkgver_name-runtime + aspnetcore$_pkgver_name-targeting-pack + dotnet$_pkgver_name-apphost-pack + dotnet$_pkgver_name-targeting-pack + dotnet$_pkgver_name-templates + netstandard21-targeting-pack + libucontext + " + provides=" + dotnet-sdk-$_pkgver_macro=$pkgver-r$pkgrel + dotnet$_pkgver_name-dev=$pkgver-r$pkgrel + " + + install -dm 755 "$subpkgdir"/$_libdir/dotnet + + # sdk + tar --use-compress-program="pigz" \ + -xf "$builddir"/artifacts/$_dotnet_arch/Release/dotnet-sdk-$_pkgver_macro*.tar.gz \ + -C "$subpkgdir"/$_libdir/dotnet/ \ + --no-same-owner \ + ./sdk ./sdk-manifests + + # some files either should or should not have executable bits + _fix_executable "$subpkgdir" + + # See https://github.com/dotnet/source-build/issues/2579 + find "$subpkgdir" -type f -name 'testhost.x86' -delete + find "$subpkgdir" -type f -name 'vstest.console' -delete +} + +netstandard_targeting_pack() { + pkgdesc="The .NET 2.1 Standard targeting pack" + depends="dotnet-host" + provides="netstandard-targeting-pack-2.1=$pkgver-r$pkgrel" + + install -dm 755 "$subpkgdir"/$_libdir/dotnet/packs + tar --use-compress-program="pigz" \ + -xf "$builddir"/artifacts/$_dotnet_arch/Release/dotnet-sdk-$_pkgver_macro*.tar.gz \ + -C "$subpkgdir"/$_libdir/dotnet/ \ + --no-same-owner \ + ./packs/NETStandard.Library.Ref + + # some files either should or should not have executable bits + _fix_executable "$subpkgdir" +} + +templates() { + pkgdesc="The .NET $_pkgver_macro templates" + depends="dotnet-host" + provides="dotnet-templates-$_pkgver_macro=$pkgver-r$pkgrel" + + install -dm 755 "$subpkgdir"/$_libdir/dotnet + tar --use-compress-program="pigz" \ + -xf "$builddir"/artifacts/$_dotnet_arch/Release/dotnet-sdk-$_pkgver_macro*.tar.gz \ + -C "$subpkgdir"/$_libdir/dotnet/ \ + --no-same-owner \ + ./templates + + # some files either should or should not have executable bits + _fix_executable "$subpkgdir" +} + +artifacts() { + pkgdesc="Internal package for building .NET $_pkgver_macro Software Development Kit" + # hack to allow artifacts to pull itself + provides="dotnet$_pkgver_name-bootstrap-artifacts" + provider_priority=$_pkgver_prior + + # directory creation + install -dm 755 \ + "$subpkgdir"/$_libdir/dotnet/artifacts/$pkgver \ + "$subpkgdir"/usr/share/licenses + + # extract arch-agnostic artifacts to artifacts dir for use by future dotnet builds + tar --use-compress-program="pigz" \ + -xf "$builddir"/artifacts/$_dotnet_arch/Release/Private.SourceBuilt.Artifacts.*.tar.gz \ + -C "$subpkgdir"/$_libdir/dotnet/artifacts/$pkgver/ \ + --no-same-owner \ + --exclude '*Intermediate*' \ + --exclude '*alpine*' +} + +zshcomp() { + depends="" + pkgdesc="zsh completion for .NET" + # netstandard21-targeting-pack will always be pulled by any dotnetx-sdk + # thus pulling this with it for sdk + install_if="netstandard21-targeting-pack zsh" + depends="dotnet-host" + + install -dm 755 "$subpkgdir"/usr/share/zsh/site-functions + install -m 755 "$builddir"/src/sdk/scripts/register-completions.zsh "$subpkgdir"/usr/share/zsh/site-functions/_dotnet +} + +bashcomp() { + depends="" + pkgdesc="bash completion for .NET" + # netstandard21-targeting-pack will always be pulled by any dotnetx-sdk + # thus pulling this with it for sdk + install_if="netstandard21-targeting-pack bash-completion" + depends="dotnet-host" + + install -dm 755 "$subpkgdir"/usr/share/bash-completion/completions + install -m 755 "$builddir"/src/sdk/scripts/register-completions.bash "$subpkgdir"/usr/share/bash-completion/completions/_dotnet +} + +doc() { + default_doc + pkgdesc="Docs for .NET" + + # licenses + install -dm 755 "$subpkgdir"/usr/share/licenses/dotnet + tar --use-compress-program="pigz" \ + -xf "$builddir"/artifacts/$_dotnet_arch/Release/dotnet-sdk-$_pkgver_macro*.tar.gz \ + -C "$subpkgdir"/usr/share/licenses/dotnet/ \ + --no-same-owner \ + ./LICENSE.txt ./ThirdPartyNotices.txt +} + +sha512sums=" +1e38ce8024eb4d741b20b00fb315cacd99cf7c2a3dca73ec5cc18a0e407c6c6da075484ca7ddcad899228d1de776f6c3b9b082c02a9fc553e83e1312cf725565 dotnet-v7.0.103.tar.xz +81428356e4b9691c54cacd242368a42d3939732918a608c2a5ae3f23fff45af2d9e981ead70a977f34f4e498c422f708e523bfbbf590cfdafb5c16ef1f0fed8a dotnet-testsuite-16c3c04f3ae6620a474fa0474e8b298190e506c1.tar.gz +0028d5d97b814b122d73137b4e0d64ca5d788aa0ae5fde500de722e23522827f2538f06e75acb17cc39b8917961ee78d1f0bbc84b2b624ae0e9bf88adca2ba6f dotnet-bunny-v12.tar.gz +ebab0364deab5d99131e2724b7fbac668bc27ddf74958623af1913e49850df98b2d077d27324b2bbabbbcdf77ea48bf7a7ca83d0ced6f48bdb66cc1e8bbce4a4 build_disable-source-link.patch +86fbaa058f78bba100f534f4c4bd6d7254181909f70d264c0390d3dd89c878a14ba9b5d2de05271b2c07b73ead70e029488c926221f676d59e27e387e3e579e9 build_enable-timestamps.patch +0049b27fad32f35ee99ef620aeee518600c24bde28c7a146261c7ae4313d747f3bdbe3e8b74a3154e025a80d5c62d545aa226c20c9376599e11091a31390abe6 build_shutdown-build-servers-at-each-build-step.patch +941b430b55e323f723bbc5160447f060f40d18ce32e5803ab7dda16bfc60a0f5ec1dccd246e68475d7115ee265a9433824d8a5d997c302531311194a90deeca9 check_rid-alpine-generation.diff +4ac92d2d9190a55ee20d3e145a28a6953c98d3eb838c8acfb808b8839316443cb64da4a2c5787df0171fce7ef96ff6381043085ed90c23ec09ce9ac81571e675 roslyn-analyzer_disable-apphost.patch +7a3291a05c94986d631a37870f573aca8603e9464cb632b3e5b93eca8a358fc7dcc98a8a8017f566885ceafe462bec734b7d31c7a974270e83c6d2ae54f51902 runtime_76500-mono-musl-support.patch +1f7be536c4826638853f110ee88bbd554be015cc88c6491c1066830789be18ad324f8ed2b1b75ed7aad74457dcafc812730059cb25d36d6344bfae8a517c00c4 runtime_enable-runtime-marshalling.diff +293742ab307bef459a21deadcc4ad7c7996cc4b490910a36c2763b8ad25cc8a91c4e03b6290567cd1030f69638d0156c5b6970887858fb091f8482b67356065d runtime_enable-system-libunwind.diff +d732df247c721c9f677baabdd7f36dbf4b564814ff64164361065bb1c196b767494a1d39f634eadf01a23032c7b3e64102614b7213065c81096bbf3f8022e6a0 runtime_mono-thread-coop-undefine-fortify-source.patch +d1b4ebcbb1a6815fc0ce4c471485c232618e60968a879309fb8336821a9351d2e0028d9f7726c0c041c750b497a0baa47400c78c9ceff550b91b4a6c2816fc41 sdk_14239-add-zsh-compdef-completion-script.patch +" diff --git a/user/dotnet7-build/README.md b/user/dotnet7-build/README.md new file mode 100644 index 0000000..4c2c6df --- /dev/null +++ b/user/dotnet7-build/README.md @@ -0,0 +1,145 @@ +# dotnet7-build + +This is the .NET 7.0 package for Alpine Linux. + +Please report any issues [using Gitlab](https://gitlab.alpinelinux.org/alpine/aports/-/issues/new) and tag @ayakael + +# Building info + +## Generated packages +* `dotnet7-build` (aimed for internal use as bootstrap) +* `dotnet7-build-artifacts` (aimed for internal use as bootstrap) +* `dotnet7-sdk` +* `dotnet7-templates` (required by sdk) +* `dotnet-zsh-completion` +* `dotnet-bash-completion` +* `dotnet-doc` +* `netstandard21-targeting-pack` + +## How to build dotnet7 on Alpine +As dotnet is a self-hosting compiler (thus it compiles using itself), it +requires a bootstrap for the initial build. To solve this problem, this package +follows the `stage0` proposal outlined [here](https://lists.alpinelinux.org/~alpine/devel/%3C33KG0XO61I4IL.2Z7RTAZ5J3SY6%408pit.net%3E) + +The goal of `stage0` is to bootstrap dotnet with as little intervention as +possible, thus allowing seamless Alpine upgrades. Unfortunately, upstream only +builds bootstraps for Alpine on `x86_64`, `aarch64`, and `armv7`. Thus, `stage0` +has also been designed to be crossbuild aware, allowing bootstrapping to other +platforms. + +In summary, dotnet7 is built using three different aports. + +* `community/dotnet7-stage0` +Builds minimum components for full build of dotnet7, and packages these in an initial +`dotnet7-stage0-bootstrap` package that `dotnet7-build` pulls. +* `community/dotnet7-build` +Builds full and packages dotnet7 fully using either stage0 or previoulsy built +dotnet7 build. +* `community/dotnet7-runtime` +As abuild does not allow different versions for subpackages, a different aport +is required to package runtime bits from dotnet7-build. + +## Crossbuilding with `stage0` +Crossbuilding `stage0` is a three step process: +1. Build sysroot for target platform by using `scripts/bootstrap.sh` in aports repo: +``` +./bootstrap.sh $CTARGET_ARCH +``` +2. Although not necessary, it is recommended to add Alpine repositories to + `$HOME/sysroot-$CTARGET_ARCH/etc/apk/repositories`, making sure to add required + keys. This makes it so that whatever package is not built in step 1 will + be pulled from package repos +3. Crossbuild `dotnet7-stage0` via: +``` +CHOST=$CTARGET_ARCH abuild -r +``` + +# Specification + +This package follows [package naming and contents suggested by upstream](https://docs.microsoft.com/en-us/dotnet/core/build/distribution-packaging), +with two exceptions. It installs dotnet to `/usr/lib/dotnet` (aka `$_libdir`). +In addition, the package is named `dotnet7` as opposed to `dotnet-7.0` +to match Alpine Linux naming conventions for packages with many installable versions + +# Contributing + +The steps below are for the final package. Please only contribute to a +pre-release version if you know what you are doing. Original instructions +follow. + +## General Changes + +1. Fork the main aports repo. + +2. Checkout the forked repository. + + - `git clone ssh://git@gitlab.alpinelinux.org/$USER/aports` + - `cd community/dotnet7-build` + +3. Make your changes. Don't forget to add a changelog. + +4. Do local builds. + + - `abuild -r` + +5. Fix any errors that come up and rebuild until it works locally. + +6. Commit the changes to the git repo in a git branch + + - `git checkout -b dotnet7/` + - `git add` any new patches + - `git remove` any now-unnecessary patches + - `git commit -m 'community/dotnet7-build: descriptive description'` + - `git push` + +7. Create a merge request with your changes, tagging @ayakael for review. + +8. Once the tests in the merge-request pass, and reviewers are happy, your changes + will be merged. + +## Updating to an new upstream release + +1. Fork the main aports repo. + +2. Checkout the forked repository. + + - `git clone ssh://git@gitlab.alpinelinux.org/$USER/aports` + - `cd community/dotnet7-build` + + +3. Build the new upstream source tarball. Update the versions in the + APKBUILD file, and then create a snapshot. After build, update checksum. + + - `abuild snapshot` + - `abuild checksum` + +4. Do local builds. + + - `abuild -r` + +5. Fix any errors that come up and rebuild until it works locally. Any + patches that are needed at this point should be added to the APKBUILD file + in `_patches` variable. + +6. Upload the source archive to a remote location, and update `source` variable. + +7. Commit the changes to the git repo in a git branch. + + - `git checkout -b dotnet7/` + - `git add` any new patches + - `git remove` any now-unnecessary patches + - `git commit -m 'community/dotnet7-build: upgrade to ` + - `git push` + +8. Create a merge request with your changes, tagging @ayakael for review. + +9. Once the tests in the merge-request pass, and reviewers are happy, your changes + will be merged. + +# Testing + +This package uses CI tests as defined in `check()` function. Creating a +merge-request or running a build will fire off tests and flag any issues. + +The tests themselves are contained in this external repository: +https://github.com/redhat-developer/dotnet-regular-tests/ diff --git a/user/dotnet7-build/build_disable-source-link.patch b/user/dotnet7-build/build_disable-source-link.patch new file mode 100644 index 0000000..acf8132 --- /dev/null +++ b/user/dotnet7-build/build_disable-source-link.patch @@ -0,0 +1,20 @@ +From 98054ea87ce70247bb09ceafd2ad1a0b36d2fef4 Mon Sep 17 00:00:00 2001 +From: Antoine Martin +Date: Sat, 1 Oct 2022 09:21:58 -0400 +Subject: [PATCH] Disable source link + +Addresses undiagnosed "Source control information is not available" error + +--- +diff --git a/repos/installer.proj b/repos/installer.proj +index 3a9756a27b7..4968184b14e 100644 +--- a/repos/installer.proj ++++ b/repos/installer.proj +@@ -26,6 +26,7 @@ + --> + $(BuildCommandArgs) /p:NETCoreAppMaximumVersion=99.9 + $(BuildCommandArgs) /p:OSName=$(OSNameOverride) ++ $(BuildCommandArgs) /p:EnableSourceLink=false + $(BuildCommandArgs) /p:PortableOSName=$(PortableOS) + $(BuildCommandArgs) /p:Rid=$(TargetRid) + $(BuildCommandArgs) /p:DOTNET_INSTALL_DIR=$(DotNetCliToolDir) diff --git a/user/dotnet7-build/build_enable-timestamps.patch b/user/dotnet7-build/build_enable-timestamps.patch new file mode 100644 index 0000000..98c7a50 --- /dev/null +++ b/user/dotnet7-build/build_enable-timestamps.patch @@ -0,0 +1,40 @@ +diff --git a/repos/Directory.Build.props b/repos/Directory.Build.props +index b70a3161fef..d57f9393299 100644 +--- a/repos/Directory.Build.props ++++ b/repos/Directory.Build.props +@@ -134,6 +134,7 @@ + $(StandardSourceBuildArgs) $(FlagParameterPrefix)pack + $(StandardSourceBuildArgs) $(FlagParameterPrefix)publish + $(StandardSourceBuildArgs) -bl ++ $(StandardSourceBuildArgs) /consoleLoggerParameters:ShowTimestamp + + $(StandardSourceBuildArgs) /p:ArcadeBuildFromSource=true + $(StandardSourceBuildArgs) /p:CopyWipIntoInnerSourceBuildRepo=true + $(StandardSourceBuildArgs) /p:DotNetBuildOffline=true + +diff --git a/src/fsharp/eng/build.sh b/src/fsharp/eng/build.sh +index fff8414b3ef..d470fc6ed56 100755 +--- a/src/fsharp/eng/build.sh ++++ b/src/fsharp/eng/build.sh +@@ -144,7 +144,7 @@ while [[ $# > 0 ]]; do + --sourcebuild) + source_build=true + ;; +- /p:*) ++ /*) + properties="$properties $1" + ;; + *) +diff --git a/src/roslyn/eng/build.sh b/src/roslyn/eng/build.sh +index a08cbea099d..d3ec235732f 100755 +--- a/src/roslyn/eng/build.sh ++++ b/src/roslyn/eng/build.sh +@@ -167,7 +167,7 @@ while [[ $# > 0 ]]; do + args="$args $1" + shift + ;; +- /p:*) ++ /*) + properties="$properties $1" + ;; + *) diff --git a/user/dotnet7-build/build_shutdown-build-servers-at-each-build-step.patch b/user/dotnet7-build/build_shutdown-build-servers-at-each-build-step.patch new file mode 100644 index 0000000..9c74a75 --- /dev/null +++ b/user/dotnet7-build/build_shutdown-build-servers-at-each-build-step.patch @@ -0,0 +1,13 @@ +diff --git a/repos/Directory.Build.targets.orig b/repos/Directory.Build.targets +index 9a61647b4d5..115cd213641 100644 +--- a/repos/Directory.Build.targets.orig ++++ b/repos/Directory.Build.targets +@@ -376,6 +376,7 @@ + DependsOnTargets="BuildRepoReferences" + Inputs="$(MSBuildProjectFullPath)" + Outputs="$(RepoCompletedSemaphorePath)Build.complete"> ++ + + + + diff --git a/user/dotnet7-build/check_rid-alpine-generation.diff b/user/dotnet7-build/check_rid-alpine-generation.diff new file mode 100644 index 0000000..ee389e9 --- /dev/null +++ b/user/dotnet7-build/check_rid-alpine-generation.diff @@ -0,0 +1,42 @@ +From 5bbd0366f3caa6281fbafb49882a226453371b6a Mon Sep 17 00:00:00 2001 +From: Antoine Martin (ayakael) +Date: Wed, 10 Aug 2022 00:57:30 +0000 +Subject: [PATCH 1/1] fix-runtme-id + +General fix for RID normalisation in testing suite + +--- + runtime-id | 19 +++++++++++-------- + 1 file changed, 11 insertions(+), 8 deletions(-) + +diff --git a/runtime-id b/runtime-id +index 5673bba..7369776 100755 +--- a/runtime-id ++++ b/runtime-id +@@ -44,12 +44,15 @@ if [[ ${portable_rid} == 1 ]]; then + echo "linux-${arch}" + fi + else +- case "${ID}" in +- # Remove the minor version +- alpine|ol|rhel|rocky) rid_version=${VERSION_ID%.*} ;; +- +- *) rid_version=${VERSION_ID} ;; +- esac +- +- echo "${ID}.${rid_version}-${arch}" ++ VERSION_ID_DOT="${VERSION_ID//[^.]}" ++ while [[ ${#VERSION_ID_DOT} -gt 1 ]]; do ++ VERSION_ID="${VERSION_ID%.*}" ++ VERSION_ID_DOT="${VERSION_ID//[^.]}" ++ done ++ VERSION_ID_DASH="${VERSION_ID//[^_]}" ++ while [[ ${#VERSION_ID_DASH} -ge 1 ]]; do ++ VERSION_ID="${VERSION_ID%_*}" ++ VERSION_ID_DASH="${VERSION_ID//[^_]}" ++ done ++ echo "${ID}.${VERSION_ID}-${arch}" + fi +-- +2.37.1 + diff --git a/user/dotnet7-build/roslyn-analyzer_disable-apphost.patch b/user/dotnet7-build/roslyn-analyzer_disable-apphost.patch new file mode 100644 index 0000000..7ebf967 --- /dev/null +++ b/user/dotnet7-build/roslyn-analyzer_disable-apphost.patch @@ -0,0 +1,28 @@ +From 79f02a53316f90543d60269d7c06727c376f423b Mon Sep 17 00:00:00 2001 +From: Antoine Martin +Date: Wed, 24 Aug 2022 18:41:08 +0000 +Subject: [PATCH 1/1] disable apphost usage + +Roslyn-analyzer can't seem to find apphost produced by runtime build on ppc64le +This disables its use as it isn't necessary + +--- +diff --git a/src/roslyn-analyzers/src/PerformanceTests/Tests/PerformanceTests.csproj b/src/roslyn-analyzers/src/PerformanceTests/Tests/PerformanceTests.csproj +index 044a2aba46..3d37e147b3 100644 +--- a/src/roslyn-analyzers/src/PerformanceTests/Tests/PerformanceTests.csproj ++++ b/src/roslyn-analyzers/src/PerformanceTests/Tests/PerformanceTests.csproj +@@ -15,6 +15,7 @@ + Release + false + true ++ false + + + +@@ -27,4 +28,4 @@ + + + +- +\ No newline at end of file ++ diff --git a/user/dotnet7-build/runtime_76500-mono-musl-support.patch b/user/dotnet7-build/runtime_76500-mono-musl-support.patch new file mode 100644 index 0000000..6f4a121 --- /dev/null +++ b/user/dotnet7-build/runtime_76500-mono-musl-support.patch @@ -0,0 +1,326 @@ +From 98054ea87ce70247bb09ceafd2ad1a0b36d2fef4 Mon Sep 17 00:00:00 2001 +Patch-Source: https://github.com/dotnet/runtime/pull/76500 +From: Antoine Martin +Date: Sat, 1 Oct 2022 09:21:58 -0400 +Subject: [PATCH] Mono musl support + +--- + Directory.Build.props | 1 + + eng/common/cross/toolchain.cmake | 38 +++++++++++++++++++----- + eng/native/configurecompiler.cmake | 7 +++++ + eng/native/tryrun.cmake | 6 +++- + src/coreclr/pal/src/CMakeLists.txt | 5 ++++ + src/coreclr/pal/src/misc/perfjitdump.cpp | 2 +- + src/coreclr/vm/i386/cgenx86.cpp | 4 +++ + src/mono/CMakeLists.txt | 33 ++++++++++++++++++++ + src/mono/mono.proj | 32 +++++++++++++------- + src/mono/mono/mini/mini-runtime.c | 29 ++++++++++++++++++ + src/mono/mono/utils/mono-context.h | 8 +++++ + 11 files changed, 146 insertions(+), 19 deletions(-) + +diff --git a/src/runtime/Directory.Build.props b/src/runtime/Directory.Build.props +index 6f9b97c0a9c..4298a6df1d3 100644 +--- a/src/runtime/Directory.Build.props ++++ b/src/runtime/Directory.Build.props +@@ -22,7 +22,6 @@ + $(_hostOS) + true + true +- true + + + +@@ -154,7 +154,7 @@ + <_runtimeOS Condition="'$(TargetsMobile)' == 'true'">$(TargetOS.ToLowerInvariant()) + + <_portableOS>linux +- <_portableOS Condition="'$(_runtimeOS)' == 'linux-musl'">linux-musl ++ <_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 + +@@ -200,6 +199,9 @@ + + $(PackageRID) + $(_portableOS)-$(TargetArchitecture) ++ ++ true ++ true + + + +diff --git a/src/runtime/eng/native/tryrun.cmake b/src/runtime/eng/native/tryrun.cmake +index 6355b0988f7..056c6606b17 100644 +--- a/src/runtime/eng/native/tryrun.cmake ++++ b/src/runtime/eng/native/tryrun.cmake +@@ -8,7 +8,11 @@ endmacro() + + if(EXISTS ${CROSS_ROOTFS}/usr/lib/gcc/armv7-alpine-linux-musleabihf OR + EXISTS ${CROSS_ROOTFS}/usr/lib/gcc/armv6-alpine-linux-musleabihf OR +- EXISTS ${CROSS_ROOTFS}/usr/lib/gcc/aarch64-alpine-linux-musl) ++ EXISTS ${CROSS_ROOTFS}/usr/lib/gcc/aarch64-alpine-linux-musl OR ++ EXISTS ${CROSS_ROOTFS}/usr/lib/gcc/s390x-alpine-linux-musl OR ++ EXISTS ${CROSS_ROOTFS}/usr/lib/gcc/ppc64le-alpine-linux-musl OR ++ EXISTS ${CROSS_ROOTFS}/usr/lib/gcc/i586-alpine-linux-musl OR ++ EXISTS ${CROSS_ROOTFS}/usr/lib/gcc/riscv64-alpine-linux-musl) + + set(ALPINE_LINUX 1) + elseif(EXISTS ${CROSS_ROOTFS}/bin/freebsd-version) +diff --git a/src/runtime/src/coreclr/pal/src/CMakeLists.txt b/src/runtime/src/coreclr/pal/src/CMakeLists.txt +index d9726460ccf..c28563f8619 100644 +--- a/src/runtime/src/coreclr/pal/src/CMakeLists.txt ++++ b/src/runtime/src/coreclr/pal/src/CMakeLists.txt +@@ -315,6 +315,11 @@ if(CLR_CMAKE_TARGET_LINUX) + target_link_libraries(coreclrpal ${UNWIND_LIBS}) + endif(CLR_CMAKE_USE_SYSTEM_LIBUNWIND) + ++ # bundled libunwind requires using libucontext on alpine and x86 and ppc64le ++ if(CLR_CMAKE_TARGET_ALPINE_LINUX AND (CLR_CMAKE_TARGET_ARCH_I386 OR CLR_CMAKE_TARGET_ARCH_POWERPC64)) ++ target_link_libraries(coreclrpal ucontext) ++ endif(CLR_CMAKE_TARGET_ALPINE_LINUX AND (CLR_CMAKE_TARGET_ARCH_I386 OR CLR_CMAKE_TARGET_ARCH_POWERPC64)) ++ + endif(CLR_CMAKE_TARGET_LINUX) + + if(CLR_CMAKE_TARGET_NETBSD) +diff --git a/src/runtime/src/coreclr/pal/src/misc/perfjitdump.cpp b/src/runtime/src/coreclr/pal/src/misc/perfjitdump.cpp +index 8d7f79ed3f0..043939ad2da 100644 +--- a/src/runtime/src/coreclr/pal/src/misc/perfjitdump.cpp ++++ b/src/runtime/src/coreclr/pal/src/misc/perfjitdump.cpp +@@ -25,7 +25,7 @@ + #include + #include + #include +-#include ++#include + + #include "../inc/llvm/ELF.h" + +diff --git a/src/runtime/src/coreclr/vm/i386/cgenx86.cpp b/src/runtime/src/coreclr/vm/i386/cgenx86.cpp +index 811c84a140d..4e958a44b30 100644 +--- a/src/runtime/src/coreclr/vm/i386/cgenx86.cpp ++++ b/src/runtime/src/coreclr/vm/i386/cgenx86.cpp +@@ -1133,6 +1133,7 @@ extern "C" DWORD __stdcall avx512StateSupport() + + #else // !TARGET_UNIX + ++#if !__has_builtin(__cpuid) + void __cpuid(int cpuInfo[4], int function_id) + { + // Based on the Clang implementation provided in cpuid.h: +@@ -1143,7 +1144,9 @@ void __cpuid(int cpuInfo[4], int function_id) + : "0"(function_id) + ); + } ++#endif + ++#if !__has_builtin(__cpuidex) + void __cpuidex(int cpuInfo[4], int function_id, int subFunction_id) + { + // Based on the Clang implementation provided in cpuid.h: +@@ -1154,6 +1157,7 @@ void __cpuidex(int cpuInfo[4], int function_id, int subFunction_id) + : "0"(function_id), "2"(subFunction_id) + ); + } ++#endif + + extern "C" DWORD __stdcall xmmYmmStateSupport() + { +diff --git a/src/runtime/src/mono/CMakeLists.txt b/src/runtime/src/mono/CMakeLists.txt +index cdff32677c0..08a82cd7e83 100644 +--- a/src/runtime/src/mono/CMakeLists.txt ++++ b/src/runtime/src/mono/CMakeLists.txt +@@ -216,6 +216,35 @@ elseif(CMAKE_SYSTEM_NAME STREQUAL "Linux") + # Enable the "full RELRO" options (RELRO & BIND_NOW) at link time + add_link_options(-Wl,-z,relro) + add_link_options(-Wl,-z,now) ++ # Detect Linux ID ++ # TODO: Eventually merge with eng/native/configureplatform.cmake ++ set(LINUX_ID_FILE "/etc/os-release") ++ if(CMAKE_CROSSCOMPILING) ++ set(LINUX_ID_FILE "${CMAKE_SYSROOT}${LINUX_ID_FILE}") ++ endif() ++ ++ if(EXISTS ${LINUX_ID_FILE}) ++ execute_process( ++ COMMAND bash -c "source ${LINUX_ID_FILE} && echo \$ID" ++ OUTPUT_VARIABLE CLR_CMAKE_LINUX_ID ++ OUTPUT_STRIP_TRAILING_WHITESPACE) ++ ++ execute_process( ++ COMMAND bash -c "if strings \"${CMAKE_SYSROOT}/usr/bin/ldd\" 2>&1 | grep -q musl; then echo musl; fi" ++ OUTPUT_VARIABLE CLR_CMAKE_LINUX_MUSL ++ OUTPUT_STRIP_TRAILING_WHITESPACE) ++ endif() ++ ++ if(DEFINED CLR_CMAKE_LINUX_ID) ++ if(CLR_CMAKE_LINUX_ID STREQUAL alpine) ++ set(CLR_CMAKE_HOST_ALPINE_LINUX 1) ++ set(CLR_CMAKE_HOST_OS ${CLR_CMAKE_LINUX_ID}) ++ endif() ++ ++ if(CLR_CMAKE_LINUX_MUSL STREQUAL musl) ++ set(CLR_CMAKE_HOST_LINUX_MUSL 1) ++ endif() ++ endif(DEFINED CLR_CMAKE_LINUX_ID) + elseif(CMAKE_SYSTEM_NAME STREQUAL "Android") + set(HOST_LINUX 1) + add_definitions(-D_GNU_SOURCE -D_REENTRANT) +@@ -893,6 +922,12 @@ if(HOST_IOS OR HOST_ANDROID OR HOST_MACCAT) + else() + set(DISABLE_DLLMAP 1) + endif() ++ ++if(CLR_CMAKE_HOST_ALPINE_LINUX) ++ # On Alpine Linux, we need to ensure that the reported stack range for the primary thread is ++ # larger than the initial committed stack size. ++ add_definitions(-DENSURE_PRIMARY_STACK_SIZE) ++endif() + ### End of OS specific checks + + include_directories("${CLR_SRC_NATIVE_DIR}") +diff --git a/src/runtime/src/mono/mono.proj b/src/runtime/src/mono/mono.proj +index 59fea4a2f72..5bac7fdf1c6 100644 +--- a/src/runtime/src/mono/mono.proj ++++ b/src/runtime/src/mono/mono.proj +@@ -554,19 +560,21 @@ + darwin-x86_64 + windows-x86_64 + <_MonoRuntimeFilePath>$(MonoObjDir)out\lib\$(MonoFileName) +- <_LinuxAbi Condition="'$(TargetsAndroid)' != 'true' and '$(TargetsLinuxBionic)' != 'true'">gnu +- <_LinuxAbi Condition="'$(TargetsAndroid)' == 'true' or '$(TargetsLinuxBionic)' == 'true'">android ++ <_LinuxAbi Condition="'$(TargetsAndroid)' != 'true' and '$(TargetsLinuxBionic)' != 'true' and '$(TargetsLinuxMusl)' != 'true'">linux-gnu ++ <_LinuxAbi Condition="'$(TargetsAndroid)' != 'true' and '$(TargetsLinuxBionic)' != 'true' and '$(TargetsLinuxMusl)' == 'true'">alpine-linux-musl ++ <_LinuxAbi Condition="'$(TargetsAndroid)' == 'true' or '$(TargetsLinuxBionic)' == 'true'">linux-android + <_LinuxFloatAbi Condition="'$(TargetsAndroid)' != 'true' and '$(TargetsLinuxBionic)' != 'true'">hf + <_Objcopy>objcopy +- <_Objcopy Condition="'$(Platform)' == 'arm'">arm-linux-$(_LinuxAbi)eabi$(_LinuxFloatAbi)-$(_Objcopy) +- <_Objcopy Condition="'$(Platform)' == 'armv6'">arm-linux-$(_LinuxAbi)eabi$(_LinuxFloatAbi)-$(_Objcopy) +- <_Objcopy Condition="'$(Platform)' == 'arm64'">aarch64-linux-$(_LinuxAbi)-$(_Objcopy) +- <_Objcopy Condition="'$(Platform)' == 'riscv64'">riscv64-linux-$(_LinuxAbi)-$(_Objcopy) +- <_Objcopy Condition="'$(Platform)' == 's390x'">s390x-linux-$(_LinuxAbi)-$(_Objcopy) +- <_Objcopy Condition="'$(Platform)' == 'ppc64le'">powerpc64le-linux-$(_LinuxAbi)-$(_Objcopy) +- <_Objcopy Condition="'$(Platform)' == 'x64'">x86_64-linux-$(_LinuxAbi)-$(_Objcopy) +- <_Objcopy Condition="'$(Platform)' == 'x86'">i686-linux-$(_LinuxAbi)-$(_Objcopy) ++ <_Objcopy Condition="'$(Platform)' == 'arm'">arm-$(_LinuxAbi)eabi$(_LinuxFloatAbi)-$(_Objcopy) ++ <_Objcopy Condition="'$(Platform)' == 'armv6'">arm-$(_LinuxAbi)eabi$(_LinuxFloatAbi)-$(_Objcopy) ++ <_Objcopy Condition="'$(Platform)' == 'arm64'">aarch64-$(_LinuxAbi)-$(_Objcopy) ++ <_Objcopy Condition="'$(Platform)' == 'riscv64'">riscv64-$(_LinuxAbi)-$(_Objcopy) ++ <_Objcopy Condition="'$(Platform)' == 's390x'">s390x-$(_LinuxAbi)-$(_Objcopy) ++ <_Objcopy Condition="'$(Platform)' == 'ppc64le'">powerpc64le-$(_LinuxAbi)-$(_Objcopy) ++ <_Objcopy Condition="'$(Platform)' == 'x64'">x86_64-$(_LinuxAbi)-$(_Objcopy) ++ <_Objcopy Condition="'$(Platform)' == 'x86'">i686-$(_LinuxAbi)-$(_Objcopy) + <_Objcopy Condition="'$(TargetsAndroid)' == 'true' or '$(TargetsLinuxBionic)' == 'true'">$(ANDROID_NDK_ROOT)/toolchains/llvm/prebuilt/$(MonoToolchainPrebuiltOS)/bin/llvm-objcopy ++ <_Objcopy Condition="'$(TargetsLinuxMusl)' == 'true' and '$(CrossBuild)' != 'true'">objcopy + + <_ObjcopyPrefix Condition="'$(MonoCrossDir)' != '' and '$(Platform)' == 'riscv64'">llvm-objcopy- + +diff --git a/src/runtime/src/mono/mono/mini/CMakeLists.txt b/src/runtime/src/mono/mono/mini/CMakeLists.txt +index 30df4bac1f7..8698fd81206 100644 +--- a/src/runtime/src/mono/mono/mini/CMakeLists.txt ++++ b/src/runtime/src/mono/mono/mini/CMakeLists.txt +@@ -368,6 +368,11 @@ if(NOT DISABLE_SHARED_LIBS) + target_sources(monosgen-shared PRIVATE $) + set_target_properties(monosgen-shared PROPERTIES OUTPUT_NAME ${MONO_SHARED_LIB_NAME}) + target_link_libraries (monosgen-shared PRIVATE monoapi) ++ # Alpine Linux implements ucontext in a different library ++ if(CLR_CMAKE_HOST_ALPINE_LINUX AND TARGET_S390X) ++ target_link_libraries(monosgen-shared PRIVATE ucontext) ++ endif(CLR_CMAKE_HOST_ALPINE_LINUX AND TARGET_S390X) ++ + target_include_directories (monosgen-shared PRIVATE monoapi) + if(TARGET_WIN32) + # on Windows the import library for the shared mono library will have the same name as the static library, +@@ -527,6 +532,10 @@ if(NOT DISABLE_EXECUTABLES) + set_target_properties(mono-sgen PROPERTIES OUTPUT_NAME mono-aot-cross) + endif() + target_link_libraries(mono-sgen PRIVATE monoapi monosgen-static ${OS_LIBS} ${LLVM_LIBS} ${ICU_LIBS} ${Z_LIBS}) ++ # Alpine Linux implements ucontext in a different library ++ if(CLR_CMAKE_HOST_ALPINE_LINUX AND TARGET_S390X) ++ target_link_libraries(mono-sgen PRIVATE ucontext) ++ endif(CLR_CMAKE_HOST_ALPINE_LINUX AND TARGET_S390X) + if(NOT DISABLE_COMPONENTS AND STATIC_COMPONENTS AND NOT DISABLE_LINK_STATIC_COMPONENTS) + # if components are built statically, link them into runtime. + target_sources(mono-sgen PRIVATE "${mono-components-objects}") +diff --git a/src/runtime/src/mono/mono/mini/mini-runtime.c b/src/runtime/src/mono/mono/mini/mini-runtime.c +index c481f69adc8..4db6c9a0ae7 100644 +--- a/src/runtime/src/mono/mono/mini/mini-runtime.c ++++ b/src/runtime/src/mono/mono/mini/mini-runtime.c +@@ -4383,6 +4383,30 @@ mini_llvm_init (void) + #endif + } + ++#ifdef ENSURE_PRIMARY_STACK_SIZE ++/*++ ++ Function: ++ EnsureStackSize ++ ++ Abstract: ++ This fixes a problem on MUSL where the initial stack size reported by the ++ pthread_attr_getstack is about 128kB, but this limit is not fixed and ++ the stack can grow dynamically. The problem is that it makes the ++ functions ReflectionInvocation::[Try]EnsureSufficientExecutionStack ++ to fail for real life scenarios like e.g. compilation of corefx. ++ Since there is no real fixed limit for the stack, the code below ++ ensures moving the stack limit to a value that makes reasonable ++ real life scenarios work. ++ ++ --*/ ++static MONO_NO_OPTIMIZATION MONO_NEVER_INLINE void ++ensure_stack_size (size_t size) ++{ ++ volatile uint8_t *s = (uint8_t *)g_alloca(size); ++ *s = 0; ++} ++#endif // ENSURE_PRIMARY_STACK_SIZE ++ + void + mini_add_profiler_argument (const char *desc) + { +@@ -4544,6 +4568,11 @@ mini_init (const char *filename) + mono_w32handle_init (); + #endif + ++#ifdef ENSURE_PRIMARY_STACK_SIZE ++ // TODO: https://github.com/dotnet/runtime/issues/72920 ++ ensure_stack_size (5 * 1024 * 1024); ++#endif // ENSURE_PRIMARY_STACK_SIZE ++ + mono_thread_info_runtime_init (&ticallbacks); + + if (g_hasenv ("MONO_DEBUG")) { +diff --git a/src/runtime/src/mono/mono/utils/mono-context.h b/src/runtime/src/mono/mono/utils/mono-context.h +index a1f0fe6f68e..a9db2d336ca 100644 +--- a/src/runtime/src/mono/mono/utils/mono-context.h ++++ b/src/runtime/src/mono/mono/utils/mono-context.h +@@ -11,6 +11,14 @@ + #ifndef __MONO_MONO_CONTEXT_H__ + #define __MONO_MONO_CONTEXT_H__ + ++/* ++ * Handle non-gnu libc versions with nothing in features.h ++ * We have no idea what they're compatible with, so always fail. ++ */ ++#ifndef __GLIBC_PREREQ ++# define __GLIBC_PREREQ(x,y) 0 ++#endif ++ + #include "mono-compiler.h" + #include "mono-sigcontext.h" + #include "mono-machine.h" +diff --git a/src/runtime/src/native/libs/System.Native/pal_io.c b/src/runtime/src/native/libs/System.Native/pal_io.c +index 0929a0b49ec..86311e19507 100644 +--- a/src/runtime/src/native/libs/System.Native/pal_io.c ++++ b/src/runtime/src/native/libs/System.Native/pal_io.c +@@ -1267,7 +1267,7 @@ int32_t SystemNative_CopyFile(intptr_t sourceFd, intptr_t destinationFd, int64_t + // Try copying data using a copy-on-write clone. This shares storage between the files. + if (sourceLength != 0) + { +- while ((ret = ioctl(outFd, FICLONE, inFd)) < 0 && errno == EINTR); ++ while ((ret = ioctl(outFd, (int)FICLONE, inFd)) < 0 && errno == EINTR); + copied = ret == 0; + } + #endif +-- +2.36.3 + diff --git a/user/dotnet7-build/runtime_enable-runtime-marshalling.diff b/user/dotnet7-build/runtime_enable-runtime-marshalling.diff new file mode 100644 index 0000000..f609cfa --- /dev/null +++ b/user/dotnet7-build/runtime_enable-runtime-marshalling.diff @@ -0,0 +1,1807 @@ +From 98054ea87ce70247bb09ceafd2ad1a0b36d2fef4 Mon Sep 17 00:00:00 2001 +Patch-Source: https://github.com/dotnet/runtime/issues/77364 +From: Antoine Martin +Date: Sat, 1 Oct 2022 09:21:58 -0400 +Subject: [PATCH] Enable runtime marshalling + +Dotnet7 introduced a bug where MkDir would sometimes have a snuffed errno. +This is a temporary workaround till upstream finds why the errno is being +turned into EAGAIN. + +--- + src/libraries/Common/src/DisableRuntimeMarshalling.cs | 2 +- + .../Common/src/Interop/Unix/System.Native/Interop.MkDir.cs | 4 ++-- + src/libraries/Common/tests/Common.Tests.csproj | 2 +- + src/libraries/Microsoft.CSharp/src/Microsoft.CSharp.csproj | 2 +- + .../Microsoft.Extensions.Hosting.WindowsServices.Tests.csproj | 4 ++-- + .../UnitTests/Microsoft.Extensions.Hosting.Unit.Tests.csproj | 2 +- + .../tests/Common/Microsoft.Extensions.Logging.Tests.csproj | 2 +- + .../tests/Microsoft.Win32.Primitives.Tests.csproj | 2 +- + .../src/Microsoft.Win32.Registry.AccessControl.csproj | 2 +- + .../tests/Microsoft.Win32.Registry.AccessControl.Tests.csproj | 2 +- + .../src/Microsoft.Win32.Registry.csproj | 2 +- + .../tests/Microsoft.Win32.Registry.Tests.csproj | 2 +- + .../src/Microsoft.Win32.SystemEvents.csproj | 2 +- + .../tests/Microsoft.Win32.SystemEvents.Tests.csproj | 2 +- + src/libraries/System.Console/src/System.Console.csproj | 2 +- + .../System.Console/tests/System.Console.Tests.csproj | 2 +- + src/libraries/System.Data.Odbc/src/System.Data.Odbc.csproj | 2 +- + .../System.Data.Odbc/tests/System.Data.Odbc.Tests.csproj | 2 +- + src/libraries/System.Data.OleDb/src/System.Data.OleDb.csproj | 2 +- + .../System.Data.OleDb/tests/System.Data.OleDb.Tests.csproj | 2 +- + .../tests/System.Diagnostics.Debug.Tests.csproj | 2 +- + .../src/System.Diagnostics.EventLog.csproj | 2 +- + .../tests/System.Diagnostics.EventLog.Tests.csproj | 2 +- + .../src/System.Diagnostics.FileVersionInfo.csproj | 2 +- + .../System.Diagnostics.FileVersionInfo.Tests.csproj | 2 +- + .../src/System.Diagnostics.PerformanceCounter.csproj | 2 +- + .../tests/System.Diagnostics.PerformanceCounter.Tests.csproj | 2 +- + .../src/System.Diagnostics.Process.csproj | 2 +- + .../tests/System.Diagnostics.Process.Tests.csproj | 2 +- + .../tests/System.Diagnostics.Tracing.Tests.csproj | 2 +- + .../src/System.DirectoryServices.AccountManagement.csproj | 2 +- + .../System.DirectoryServices.AccountManagement.Tests.csproj | 2 +- + .../src/System.DirectoryServices.Protocols.csproj | 2 +- + .../tests/System.DirectoryServices.Protocols.Tests.csproj | 2 +- + .../src/System.DirectoryServices.csproj | 2 +- + .../tests/System.DirectoryServices.Tests.csproj | 2 +- + .../System.Drawing.Common/src/System.Drawing.Common.csproj | 2 +- + .../tests/System.Drawing.Common.Tests.csproj | 2 +- + .../src/System.Drawing.Primitives.csproj | 2 +- + .../System.Formats.Tar/src/System.Formats.Tar.csproj | 2 +- + .../System.Formats.Tar/tests/System.Formats.Tar.Tests.csproj | 2 +- + .../NlsTests/System.Globalization.Extensions.Nls.Tests.csproj | 2 +- + .../tests/NlsTests/System.Globalization.Nls.Tests.csproj | 2 +- + .../src/System.IO.Compression.Brotli.csproj | 2 +- + .../tests/System.IO.Compression.Brotli.Tests.csproj | 2 +- + .../src/System.IO.Compression.ZipFile.csproj | 2 +- + .../tests/System.IO.Compression.ZipFile.Tests.csproj | 2 +- + .../System.IO.Compression/src/System.IO.Compression.csproj | 2 +- + .../tests/System.IO.Compression.Tests.csproj | 2 +- + .../src/System.IO.FileSystem.AccessControl.csproj | 2 +- + .../tests/System.IO.FileSystem.AccessControl.Tests.csproj | 2 +- + .../src/System.IO.FileSystem.DriveInfo.csproj | 2 +- + .../tests/System.IO.FileSystem.DriveInfo.Tests.csproj | 2 +- + .../src/System.IO.FileSystem.Watcher.csproj | 2 +- + .../tests/System.IO.FileSystem.Watcher.Tests.csproj | 2 +- + .../tests/System.IO.FileSystem.Tests.csproj | 2 +- + .../src/System.IO.IsolatedStorage.csproj | 2 +- + .../tests/System.IO.IsolatedStorage.Tests.csproj | 2 +- + .../src/System.IO.MemoryMappedFiles.csproj | 2 +- + .../tests/System.IO.MemoryMappedFiles.Tests.csproj | 2 +- + .../src/System.IO.Pipes.AccessControl.csproj | 2 +- + .../tests/System.IO.Pipes.AccessControl.Tests.csproj | 2 +- + src/libraries/System.IO.Pipes/src/System.IO.Pipes.csproj | 2 +- + .../System.IO.Pipes/tests/System.IO.Pipes.Tests.csproj | 2 +- + src/libraries/System.IO.Ports/src/System.IO.Ports.csproj | 2 +- + .../System.IO.Ports/tests/System.IO.Ports.Tests.csproj | 2 +- + src/libraries/System.Management/src/System.Management.csproj | 2 +- + .../System.Management/tests/System.Management.Tests.csproj | 2 +- + .../src/System.Net.Http.WinHttpHandler.csproj | 2 +- + .../System.Net.Http.WinHttpHandler.Functional.Tests.csproj | 2 +- + .../System.Net.Http.WinHttpHandler.Unit.Tests.csproj | 2 +- + src/libraries/System.Net.Http/src/System.Net.Http.csproj | 2 +- + .../FunctionalTests/System.Net.Http.Functional.Tests.csproj | 2 +- + .../tests/UnitTests/System.Net.Http.Unit.Tests.csproj | 2 +- + .../src/System.Net.HttpListener.csproj | 2 +- + .../tests/System.Net.HttpListener.Tests.csproj | 2 +- + src/libraries/System.Net.Mail/src/System.Net.Mail.csproj | 2 +- + .../tests/Functional/System.Net.Mail.Functional.Tests.csproj | 2 +- + .../tests/Unit/System.Net.Mail.Unit.Tests.csproj | 2 +- + .../src/System.Net.NameResolution.csproj | 2 +- + .../System.Net.NameResolution.Functional.Tests.csproj | 2 +- + .../tests/PalTests/System.Net.NameResolution.Pal.Tests.csproj | 2 +- + .../src/System.Net.NetworkInformation.csproj | 2 +- + src/libraries/System.Net.Ping/src/System.Net.Ping.csproj | 2 +- + .../FunctionalTests/System.Net.Ping.Functional.Tests.csproj | 2 +- + .../System.Net.Primitives/src/System.Net.Primitives.csproj | 2 +- + .../System.Net.Primitives.Functional.Tests.csproj | 2 +- + .../tests/PalTests/System.Net.Primitives.Pal.Tests.csproj | 2 +- + .../UnitTests/System.Net.Primitives.UnitTests.Tests.csproj | 2 +- + src/libraries/System.Net.Quic/src/System.Net.Quic.csproj | 2 +- + .../FunctionalTests/System.Net.Quic.Functional.Tests.csproj | 2 +- + .../System.Net.Requests/src/System.Net.Requests.csproj | 2 +- + .../System.Net.Security/src/System.Net.Security.csproj | 2 +- + .../tests/FunctionalTests/System.Net.Security.Tests.csproj | 2 +- + .../tests/UnitTests/System.Net.Security.Unit.Tests.csproj | 2 +- + .../System.Net.Sockets/src/System.Net.Sockets.csproj | 2 +- + .../tests/FunctionalTests/System.Net.Sockets.Tests.csproj | 2 +- + .../System.Net.WebSockets/src/System.Net.WebSockets.csproj | 2 +- + .../System.Private.Xml/src/System.Private.Xml.csproj | 2 +- + .../tests/System.Resources.Extensions.Tests.csproj | 2 +- + .../tests/System.Resources.ResourceManager.Tests.csproj | 2 +- + .../System.Runtime.Caching/src/System.Runtime.Caching.csproj | 2 +- + .../tests/System.Runtime.Caching.Tests.csproj | 2 +- + .../tests/System.Runtime.Extensions.Tests.csproj | 2 +- + ...em.Runtime.InteropServices.RuntimeInformation.Tests.csproj | 2 +- + .../System.Runtime.InteropServices.Tests.csproj | 2 +- + .../tests/System.Runtime.Intrinsics.Tests.csproj | 2 +- + .../System.Runtime.Serialization.Formatters.Tests.csproj | 2 +- + .../tests/NlsTests/System.Runtime.Nls.Tests.csproj | 2 +- + .../System.Runtime/tests/System.Runtime.Tests.csproj | 2 +- + .../src/System.Security.AccessControl.csproj | 2 +- + .../tests/System.Security.AccessControl.Tests.csproj | 2 +- + .../tests/System.Security.Cryptography.Cng.Tests.csproj | 2 +- + .../tests/System.Security.Cryptography.Csp.Tests.csproj | 2 +- + .../src/System.Security.Cryptography.Pkcs.csproj | 2 +- + .../tests/System.Security.Cryptography.Pkcs.Tests.csproj | 2 +- + .../src/System.Security.Cryptography.ProtectedData.csproj | 2 +- + .../System.Security.Cryptography.ProtectedData.Tests.csproj | 2 +- + ...System.Security.Cryptography.X509Certificates.Tests.csproj | 2 +- + .../src/System.Security.Cryptography.csproj | 2 +- + .../tests/System.Security.Cryptography.Tests.csproj | 2 +- + .../tests/System.Security.Permissions.Tests.csproj | 2 +- + .../src/System.Security.Principal.Windows.csproj | 2 +- + .../tests/System.Security.Principal.Windows.Tests.csproj | 2 +- + .../src/System.ServiceProcess.ServiceController.csproj | 2 +- + .../System.ServiceProcess.ServiceController.Tests.csproj | 2 +- + src/libraries/System.Speech/src/System.Speech.csproj | 2 +- + src/libraries/System.Speech/tests/System.Speech.Tests.csproj | 2 +- + .../src/System.Text.Encoding.CodePages.csproj | 2 +- + .../src/System.Threading.AccessControl.csproj | 2 +- + .../tests/System.Threading.AccessControl.Tests.csproj | 2 +- + .../src/System.Transactions.Local.csproj | 2 +- + .../src/System.Windows.Extensions.csproj | 2 +- + .../tests/System.Windows.Extensions.Tests.csproj | 2 +- + 134 files changed, 136 insertions(+), 136 deletions(-) + +diff --git a/src/runtime/src/libraries/Common/src/DisableRuntimeMarshalling.cs b/src/runtime/src/libraries/Common/src/DisableRuntimeMarshalling.cs +index 9a6bc544e55..10ec1fce44a 100644 +--- a/src/runtime/src/libraries/Common/src/DisableRuntimeMarshalling.cs ++++ b/src/runtime/src/libraries/Common/src/DisableRuntimeMarshalling.cs +@@ -2,4 +2,4 @@ + // The .NET Foundation licenses this file to you under the MIT license. + + // Used to indicate that runtime marshalling should be disabled. +-[assembly: System.Runtime.CompilerServices.DisableRuntimeMarshalling] ++// [assembly: System.Runtime.CompilerServices.DisableRuntimeMarshalling] +diff --git a/src/runtime/src/libraries/Common/src/Interop/Unix/System.Native/Interop.MkDir.cs b/src/runtime/src/libraries/Common/src/Interop/Unix/System.Native/Interop.MkDir.cs +index a6bb1dc3c0f..751e0ac690b 100644 +--- a/src/runtime/src/libraries/Common/src/Interop/Unix/System.Native/Interop.MkDir.cs ++++ b/src/runtime/src/libraries/Common/src/Interop/Unix/System.Native/Interop.MkDir.cs +@@ -9,8 +9,8 @@ internal static partial class Interop + { + internal static partial class Sys + { +- [LibraryImport(Libraries.SystemNative, EntryPoint = "SystemNative_MkDir", SetLastError = true)] +- private static partial int MkDir(ref byte path, int mode); ++ [DllImport(Libraries.SystemNative, EntryPoint = "SystemNative_MkDir", SetLastError = true)] ++ private static extern int MkDir(ref byte path, int mode); + + internal static int MkDir(ReadOnlySpan path, int mode) + { +diff --git a/src/runtime/src/libraries/Common/tests/Common.Tests.csproj b/src/runtime/src/libraries/Common/tests/Common.Tests.csproj +index 72de3a2ba17..16adf14be81 100644 +--- a/src/runtime/src/libraries/Common/tests/Common.Tests.csproj ++++ b/src/runtime/src/libraries/Common/tests/Common.Tests.csproj +@@ -2,7 +2,7 @@ + + true + true +- $(NetCoreAppCurrent)-windows;$(NetCoreAppCurrent)-Linux;$(NetCoreAppCurrent)-Browser;$(NetCoreAppCurrent)-OSX ++ $(NetCoreAppCurrent)-Linux;$(NetCoreAppCurrent)-Browser;$(NetCoreAppCurrent)-OSX + true + + +diff --git a/src/runtime/src/libraries/Microsoft.CSharp/src/Microsoft.CSharp.csproj b/src/runtime/src/libraries/Microsoft.CSharp/src/Microsoft.CSharp.csproj +index 19ee3bde1b5..d390a06be81 100644 +--- a/src/runtime/src/libraries/Microsoft.CSharp/src/Microsoft.CSharp.csproj ++++ b/src/runtime/src/libraries/Microsoft.CSharp/src/Microsoft.CSharp.csproj +@@ -1,6 +1,6 @@ + + +- $(NetCoreAppCurrent)-windows;$(NetCoreAppCurrent) ++ $(NetCoreAppCurrent) + $(NoWarn);nullable + + +diff --git a/src/runtime/src/libraries/Microsoft.Extensions.Hosting.WindowsServices/tests/Microsoft.Extensions.Hosting.WindowsServices.Tests.csproj b/src/runtime/src/libraries/Microsoft.Extensions.Hosting.WindowsServices/tests/Microsoft.Extensions.Hosting.WindowsServices.Tests.csproj +index 93be9b87c96..10117338458 100644 +--- a/src/runtime/src/libraries/Microsoft.Extensions.Hosting.WindowsServices/tests/Microsoft.Extensions.Hosting.WindowsServices.Tests.csproj ++++ b/src/runtime/src/libraries/Microsoft.Extensions.Hosting.WindowsServices/tests/Microsoft.Extensions.Hosting.WindowsServices.Tests.csproj +@@ -1,8 +1,8 @@ + + + +- +- $(NetCoreAppCurrent)-windows;$(NetFrameworkMinimum) ++ ++ $(NetFrameworkMinimum) + true + + +diff --git a/src/runtime/src/libraries/Microsoft.Extensions.Hosting/tests/UnitTests/Microsoft.Extensions.Hosting.Unit.Tests.csproj b/src/runtime/src/libraries/Microsoft.Extensions.Hosting/tests/UnitTests/Microsoft.Extensions.Hosting.Unit.Tests.csproj +index 0743d679b15..8ec495e8345 100644 +--- a/src/runtime/src/libraries/Microsoft.Extensions.Hosting/tests/UnitTests/Microsoft.Extensions.Hosting.Unit.Tests.csproj ++++ b/src/runtime/src/libraries/Microsoft.Extensions.Hosting/tests/UnitTests/Microsoft.Extensions.Hosting.Unit.Tests.csproj +@@ -1,7 +1,7 @@ +  + + +- $(NetCoreAppCurrent)-windows;$(NetCoreAppCurrent);$(NetFrameworkMinimum) ++ $(NetCoreAppCurrent);$(NetFrameworkMinimum) + true + true + true +diff --git a/src/runtime/src/libraries/Microsoft.Extensions.Logging/tests/Common/Microsoft.Extensions.Logging.Tests.csproj b/src/runtime/src/libraries/Microsoft.Extensions.Logging/tests/Common/Microsoft.Extensions.Logging.Tests.csproj +index 6586026447c..c284ea4f48c 100644 +--- a/src/runtime/src/libraries/Microsoft.Extensions.Logging/tests/Common/Microsoft.Extensions.Logging.Tests.csproj ++++ b/src/runtime/src/libraries/Microsoft.Extensions.Logging/tests/Common/Microsoft.Extensions.Logging.Tests.csproj +@@ -1,7 +1,7 @@ + + + +- $(NetCoreAppCurrent)-windows;$(NetCoreAppCurrent);$(NetFrameworkMinimum) ++ $(NetCoreAppCurrent);$(NetFrameworkMinimum) + true + + +diff --git a/src/runtime/src/libraries/Microsoft.Win32.Primitives/tests/Microsoft.Win32.Primitives.Tests.csproj b/src/runtime/src/libraries/Microsoft.Win32.Primitives/tests/Microsoft.Win32.Primitives.Tests.csproj +index aa61641a9fa..56ed9a2c927 100644 +--- a/src/runtime/src/libraries/Microsoft.Win32.Primitives/tests/Microsoft.Win32.Primitives.Tests.csproj ++++ b/src/runtime/src/libraries/Microsoft.Win32.Primitives/tests/Microsoft.Win32.Primitives.Tests.csproj +@@ -1,6 +1,6 @@ + + +- $(NetCoreAppCurrent)-windows;$(NetCoreAppCurrent)-Unix;$(NetCoreAppCurrent)-Browser ++ $(NetCoreAppCurrent)-Unix;$(NetCoreAppCurrent)-Browser + + + +diff --git a/src/runtime/src/libraries/Microsoft.Win32.Registry.AccessControl/src/Microsoft.Win32.Registry.AccessControl.csproj b/src/runtime/src/libraries/Microsoft.Win32.Registry.AccessControl/src/Microsoft.Win32.Registry.AccessControl.csproj +index 7f6d66bdba8..168a20a1115 100644 +--- a/src/runtime/src/libraries/Microsoft.Win32.Registry.AccessControl/src/Microsoft.Win32.Registry.AccessControl.csproj ++++ b/src/runtime/src/libraries/Microsoft.Win32.Registry.AccessControl/src/Microsoft.Win32.Registry.AccessControl.csproj +@@ -1,6 +1,6 @@ + + +- $(NetCoreAppCurrent)-windows;$(NetCoreAppCurrent);$(NetCoreAppMinimum)-windows;$(NetCoreAppMinimum);netstandard2.0;$(NetFrameworkMinimum) ++ $(NetCoreAppCurrent);$(NetCoreAppMinimum);netstandard2.0;$(NetFrameworkMinimum) + true + true + Provides support for managing access and audit control lists for Microsoft.Win32.RegistryKey. +diff --git a/src/runtime/src/libraries/Microsoft.Win32.Registry.AccessControl/tests/Microsoft.Win32.Registry.AccessControl.Tests.csproj b/src/runtime/src/libraries/Microsoft.Win32.Registry.AccessControl/tests/Microsoft.Win32.Registry.AccessControl.Tests.csproj +index 76442c6fb1f..e92db98f790 100644 +--- a/src/runtime/src/libraries/Microsoft.Win32.Registry.AccessControl/tests/Microsoft.Win32.Registry.AccessControl.Tests.csproj ++++ b/src/runtime/src/libraries/Microsoft.Win32.Registry.AccessControl/tests/Microsoft.Win32.Registry.AccessControl.Tests.csproj +@@ -1,6 +1,6 @@ + + +- $(NetCoreAppCurrent)-windows;$(NetFrameworkMinimum) ++ $(NetFrameworkMinimum) + + + +diff --git a/src/runtime/src/libraries/Microsoft.Win32.Registry/src/Microsoft.Win32.Registry.csproj b/src/runtime/src/libraries/Microsoft.Win32.Registry/src/Microsoft.Win32.Registry.csproj +index 98652656e9c..1972ac8ad18 100644 +--- a/src/runtime/src/libraries/Microsoft.Win32.Registry/src/Microsoft.Win32.Registry.csproj ++++ b/src/runtime/src/libraries/Microsoft.Win32.Registry/src/Microsoft.Win32.Registry.csproj +@@ -2,7 +2,7 @@ + + true + $(DefineConstants);REGISTRY_ASSEMBLY +- $(NetCoreAppCurrent)-windows;$(NetCoreAppCurrent) ++ $(NetCoreAppCurrent) + $(NoWarn);CA2249 + + +diff --git a/src/runtime/src/libraries/Microsoft.Win32.Registry/tests/Microsoft.Win32.Registry.Tests.csproj b/src/runtime/src/libraries/Microsoft.Win32.Registry/tests/Microsoft.Win32.Registry.Tests.csproj +index 1feb97ef841..ae5ad78ce7f 100644 +--- a/src/runtime/src/libraries/Microsoft.Win32.Registry/tests/Microsoft.Win32.Registry.Tests.csproj ++++ b/src/runtime/src/libraries/Microsoft.Win32.Registry/tests/Microsoft.Win32.Registry.Tests.csproj +@@ -1,7 +1,7 @@ + + + $(DefineConstants);REGISTRY_ASSEMBLY +- $(NetCoreAppCurrent)-windows ++ + true + true + +diff --git a/src/runtime/src/libraries/Microsoft.Win32.SystemEvents/src/Microsoft.Win32.SystemEvents.csproj b/src/runtime/src/libraries/Microsoft.Win32.SystemEvents/src/Microsoft.Win32.SystemEvents.csproj +index d7e7dc61211..640179e2960 100644 +--- a/src/runtime/src/libraries/Microsoft.Win32.SystemEvents/src/Microsoft.Win32.SystemEvents.csproj ++++ b/src/runtime/src/libraries/Microsoft.Win32.SystemEvents/src/Microsoft.Win32.SystemEvents.csproj +@@ -1,6 +1,6 @@ + + +- $(NetCoreAppCurrent)-windows;$(NetCoreAppCurrent);$(NetCoreAppMinimum)-windows;$(NetCoreAppMinimum);netstandard2.0;$(NetFrameworkMinimum) ++ $(NetCoreAppCurrent);$(NetCoreAppMinimum);netstandard2.0;$(NetFrameworkMinimum) + true + true + Provides access to Windows system event notifications. +diff --git a/src/runtime/src/libraries/Microsoft.Win32.SystemEvents/tests/Microsoft.Win32.SystemEvents.Tests.csproj b/src/runtime/src/libraries/Microsoft.Win32.SystemEvents/tests/Microsoft.Win32.SystemEvents.Tests.csproj +index 1a8e130bee4..131134daa80 100644 +--- a/src/runtime/src/libraries/Microsoft.Win32.SystemEvents/tests/Microsoft.Win32.SystemEvents.Tests.csproj ++++ b/src/runtime/src/libraries/Microsoft.Win32.SystemEvents/tests/Microsoft.Win32.SystemEvents.Tests.csproj +@@ -1,6 +1,6 @@ + + +- $(NetCoreAppCurrent)-windows;$(NetFrameworkMinimum) ++ $(NetFrameworkMinimum) + true + true + true +diff --git a/src/runtime/src/libraries/System.Console/src/System.Console.csproj b/src/runtime/src/libraries/System.Console/src/System.Console.csproj +index 1c45c5a8f93..880b740def1 100644 +--- a/src/runtime/src/libraries/System.Console/src/System.Console.csproj ++++ b/src/runtime/src/libraries/System.Console/src/System.Console.csproj +@@ -1,7 +1,7 @@ + + + true +- $(NetCoreAppCurrent)-windows;$(NetCoreAppCurrent)-Unix;$(NetCoreAppCurrent)-Android;$(NetCoreAppCurrent)-iOS;$(NetCoreAppCurrent)-tvOS;$(NetCoreAppCurrent)-Browser;$(NetCoreAppCurrent) ++ $(NetCoreAppCurrent)-Unix;$(NetCoreAppCurrent)-Android;$(NetCoreAppCurrent)-iOS;$(NetCoreAppCurrent)-tvOS;$(NetCoreAppCurrent)-Browser;$(NetCoreAppCurrent) + + + +diff --git a/src/runtime/src/libraries/System.Console/tests/System.Console.Tests.csproj b/src/runtime/src/libraries/System.Console/tests/System.Console.Tests.csproj +index f4b451d30e1..418f9b30039 100644 +--- a/src/runtime/src/libraries/System.Console/tests/System.Console.Tests.csproj ++++ b/src/runtime/src/libraries/System.Console/tests/System.Console.Tests.csproj +@@ -2,7 +2,7 @@ + + true + true +- $(NetCoreAppCurrent);$(NetCoreAppCurrent)-windows ++ $(NetCoreAppCurrent); + true + ..\src\Resources\Strings.resx + +diff --git a/src/runtime/src/libraries/System.Data.Odbc/src/System.Data.Odbc.csproj b/src/runtime/src/libraries/System.Data.Odbc/src/System.Data.Odbc.csproj +index 8fad480d961..6efc49b3004 100644 +--- a/src/runtime/src/libraries/System.Data.Odbc/src/System.Data.Odbc.csproj ++++ b/src/runtime/src/libraries/System.Data.Odbc/src/System.Data.Odbc.csproj +@@ -1,6 +1,6 @@ + + +- $(NetCoreAppCurrent)-windows;$(NetCoreAppCurrent)-FreeBSD;$(NetCoreAppCurrent)-illumos;$(NetCoreAppCurrent)-Solaris;$(NetCoreAppCurrent)-Linux;$(NetCoreAppCurrent)-OSX;$(NetCoreAppCurrent)-iOS;$(NetCoreAppCurrent)-tvOS;$(NetCoreAppCurrent);$(NetCoreAppMinimum)-windows;$(NetCoreAppMinimum)-FreeBSD;$(NetCoreAppMinimum)-Linux;$(NetCoreAppMinimum)-OSX;$(NetCoreAppMinimum);netstandard2.0;$(NetFrameworkMinimum) ++ $(NetCoreAppCurrent)-FreeBSD;$(NetCoreAppCurrent)-illumos;$(NetCoreAppCurrent)-Solaris;$(NetCoreAppCurrent)-Linux;$(NetCoreAppCurrent)-OSX;$(NetCoreAppCurrent)-iOS;$(NetCoreAppCurrent)-tvOS;$(NetCoreAppCurrent);$(NetCoreAppMinimum)-FreeBSD;$(NetCoreAppMinimum)-Linux;$(NetCoreAppMinimum)-OSX;$(NetCoreAppMinimum);netstandard2.0;$(NetFrameworkMinimum) + true + $(NoWarn);CA2249;CA1838;CA1846 + +diff --git a/src/runtime/src/libraries/System.Data.Odbc/tests/System.Data.Odbc.Tests.csproj b/src/runtime/src/libraries/System.Data.Odbc/tests/System.Data.Odbc.Tests.csproj +index 85a15ebe3d2..a8183df7eef 100644 +--- a/src/runtime/src/libraries/System.Data.Odbc/tests/System.Data.Odbc.Tests.csproj ++++ b/src/runtime/src/libraries/System.Data.Odbc/tests/System.Data.Odbc.Tests.csproj +@@ -1,6 +1,6 @@ + + +- $(NetCoreAppCurrent)-windows;$(NetCoreAppCurrent)-FreeBSD;$(NetCoreAppCurrent)-Linux;$(NetCoreAppCurrent)-OSX;$(NetCoreAppCurrent)-iOS;$(NetCoreAppCurrent)-tvOS;$(NetFrameworkMinimum) ++ $(NetCoreAppCurrent)-FreeBSD;$(NetCoreAppCurrent)-Linux;$(NetCoreAppCurrent)-OSX;$(NetCoreAppCurrent)-iOS;$(NetCoreAppCurrent)-tvOS;$(NetFrameworkMinimum) + + + +diff --git a/src/runtime/src/libraries/System.Data.OleDb/src/System.Data.OleDb.csproj b/src/runtime/src/libraries/System.Data.OleDb/src/System.Data.OleDb.csproj +index 1a1756a85ad..0fa7a416a0f 100644 +--- a/src/runtime/src/libraries/System.Data.OleDb/src/System.Data.OleDb.csproj ++++ b/src/runtime/src/libraries/System.Data.OleDb/src/System.Data.OleDb.csproj +@@ -1,6 +1,6 @@ + + +- $(NetCoreAppCurrent)-windows;$(NetCoreAppCurrent);$(NetCoreAppMinimum)-windows;$(NetCoreAppMinimum);netstandard2.0;$(NetFrameworkMinimum) ++ $(NetCoreAppCurrent);$(NetCoreAppMinimum);netstandard2.0;$(NetFrameworkMinimum) + true + + $(NoWarn);CA2249 +diff --git a/src/runtime/src/libraries/System.Data.OleDb/tests/System.Data.OleDb.Tests.csproj b/src/runtime/src/libraries/System.Data.OleDb/tests/System.Data.OleDb.Tests.csproj +index 6f72486a944..66d1f92904e 100644 +--- a/src/runtime/src/libraries/System.Data.OleDb/tests/System.Data.OleDb.Tests.csproj ++++ b/src/runtime/src/libraries/System.Data.OleDb/tests/System.Data.OleDb.Tests.csproj +@@ -1,6 +1,6 @@ + + +- $(NetCoreAppCurrent)-windows;$(NetFrameworkMinimum) ++ $(NetFrameworkMinimum) + + + +diff --git a/src/runtime/src/libraries/System.Diagnostics.Debug/tests/System.Diagnostics.Debug.Tests.csproj b/src/runtime/src/libraries/System.Diagnostics.Debug/tests/System.Diagnostics.Debug.Tests.csproj +index 601c003fc30..6c22aac1e01 100644 +--- a/src/runtime/src/libraries/System.Diagnostics.Debug/tests/System.Diagnostics.Debug.Tests.csproj ++++ b/src/runtime/src/libraries/System.Diagnostics.Debug/tests/System.Diagnostics.Debug.Tests.csproj +@@ -1,7 +1,7 @@ + + + System.Diagnostics.Tests +- $(NetCoreAppCurrent)-windows;$(NetCoreAppCurrent)-Unix ++ $(NetCoreAppCurrent)-Unix + true + + false +diff --git a/src/runtime/src/libraries/System.Diagnostics.EventLog/src/System.Diagnostics.EventLog.csproj b/src/runtime/src/libraries/System.Diagnostics.EventLog/src/System.Diagnostics.EventLog.csproj +index dfae87cc90a..affb0753616 100644 +--- a/src/runtime/src/libraries/System.Diagnostics.EventLog/src/System.Diagnostics.EventLog.csproj ++++ b/src/runtime/src/libraries/System.Diagnostics.EventLog/src/System.Diagnostics.EventLog.csproj +@@ -1,6 +1,6 @@ + + +- $(NetCoreAppCurrent)-windows;$(NetCoreAppCurrent);$(NetCoreAppMinimum)-windows;$(NetCoreAppMinimum);netstandard2.0;$(NetFrameworkMinimum) ++ $(NetCoreAppCurrent);$(NetCoreAppMinimum);netstandard2.0;$(NetFrameworkMinimum) + true + $(NoWarn);CA1847 + + +diff --git a/src/runtime/src/libraries/System.Diagnostics.FileVersionInfo/tests/System.Diagnostics.FileVersionInfo.Tests/System.Diagnostics.FileVersionInfo.Tests.csproj b/src/runtime/src/libraries/System.Diagnostics.FileVersionInfo/tests/System.Diagnostics.FileVersionInfo.Tests/System.Diagnostics.FileVersionInfo.Tests.csproj +index d052ccaa0b6..3563132cda3 100644 +--- a/src/runtime/src/libraries/System.Diagnostics.FileVersionInfo/tests/System.Diagnostics.FileVersionInfo.Tests/System.Diagnostics.FileVersionInfo.Tests.csproj ++++ b/src/runtime/src/libraries/System.Diagnostics.FileVersionInfo/tests/System.Diagnostics.FileVersionInfo.Tests/System.Diagnostics.FileVersionInfo.Tests.csproj +@@ -1,6 +1,6 @@ + + +- $(NetCoreAppCurrent)-windows;$(NetCoreAppCurrent)-Unix;$(NetCoreAppCurrent)-Browser ++ $(NetCoreAppCurrent)-Unix;$(NetCoreAppCurrent)-Browser + true + true + true +diff --git a/src/runtime/src/libraries/System.Diagnostics.PerformanceCounter/src/System.Diagnostics.PerformanceCounter.csproj b/src/runtime/src/libraries/System.Diagnostics.PerformanceCounter/src/System.Diagnostics.PerformanceCounter.csproj +index a0dbb8e208b..4ae893f4765 100644 +--- a/src/runtime/src/libraries/System.Diagnostics.PerformanceCounter/src/System.Diagnostics.PerformanceCounter.csproj ++++ b/src/runtime/src/libraries/System.Diagnostics.PerformanceCounter/src/System.Diagnostics.PerformanceCounter.csproj +@@ -1,6 +1,6 @@ + + +- $(NetCoreAppCurrent)-windows;$(NetCoreAppCurrent);$(NetCoreAppMinimum)-windows;$(NetCoreAppMinimum);netstandard2.0;$(NetFrameworkMinimum) ++ $(NetCoreAppCurrent);$(NetCoreAppMinimum);netstandard2.0;$(NetFrameworkMinimum) + true + $(NoWarn);CA1847 + annotations +diff --git a/src/runtime/src/libraries/System.Diagnostics.PerformanceCounter/tests/System.Diagnostics.PerformanceCounter.Tests.csproj b/src/runtime/src/libraries/System.Diagnostics.PerformanceCounter/tests/System.Diagnostics.PerformanceCounter.Tests.csproj +index 2146bf437cb..dd3dfeb4ae4 100644 +--- a/src/runtime/src/libraries/System.Diagnostics.PerformanceCounter/tests/System.Diagnostics.PerformanceCounter.Tests.csproj ++++ b/src/runtime/src/libraries/System.Diagnostics.PerformanceCounter/tests/System.Diagnostics.PerformanceCounter.Tests.csproj +@@ -1,7 +1,7 @@ + + + true +- $(NetCoreAppCurrent)-windows;$(NetFrameworkMinimum) ++ $(NetFrameworkMinimum) + + + +diff --git a/src/runtime/src/libraries/System.Diagnostics.Process/src/System.Diagnostics.Process.csproj b/src/runtime/src/libraries/System.Diagnostics.Process/src/System.Diagnostics.Process.csproj +index 2c273820afb..c158c49ec2e 100644 +--- a/src/runtime/src/libraries/System.Diagnostics.Process/src/System.Diagnostics.Process.csproj ++++ b/src/runtime/src/libraries/System.Diagnostics.Process/src/System.Diagnostics.Process.csproj +@@ -2,7 +2,7 @@ + + $(DefineConstants);FEATURE_REGISTRY + true +- $(NetCoreAppCurrent)-windows;$(NetCoreAppCurrent)-FreeBSD;$(NetCoreAppCurrent)-Linux;$(NetCoreAppCurrent)-OSX;$(NetCoreAppCurrent)-MacCatalyst;$(NetCoreAppCurrent)-iOS;$(NetCoreAppCurrent)-tvOS;$(NetCoreAppCurrent) ++ $(NetCoreAppCurrent)-FreeBSD;$(NetCoreAppCurrent)-Linux;$(NetCoreAppCurrent)-OSX;$(NetCoreAppCurrent)-MacCatalyst;$(NetCoreAppCurrent)-iOS;$(NetCoreAppCurrent)-tvOS;$(NetCoreAppCurrent) + + + +diff --git a/src/runtime/src/libraries/System.Diagnostics.Process/tests/System.Diagnostics.Process.Tests.csproj b/src/runtime/src/libraries/System.Diagnostics.Process/tests/System.Diagnostics.Process.Tests.csproj +index e23bb4a94a7..bfa37a8f919 100644 +--- a/src/runtime/src/libraries/System.Diagnostics.Process/tests/System.Diagnostics.Process.Tests.csproj ++++ b/src/runtime/src/libraries/System.Diagnostics.Process/tests/System.Diagnostics.Process.Tests.csproj +@@ -2,7 +2,7 @@ + + true + true +- $(NetCoreAppCurrent)-windows;$(NetCoreAppCurrent)-Unix;$(NetCoreAppCurrent)-Browser ++ $(NetCoreAppCurrent)-Unix;$(NetCoreAppCurrent)-Browser + true + true + +diff --git a/src/runtime/src/libraries/System.Diagnostics.Tracing/tests/System.Diagnostics.Tracing.Tests.csproj b/src/runtime/src/libraries/System.Diagnostics.Tracing/tests/System.Diagnostics.Tracing.Tests.csproj +index 35b1a833abb..18c323c28ae 100644 +--- a/src/runtime/src/libraries/System.Diagnostics.Tracing/tests/System.Diagnostics.Tracing.Tests.csproj ++++ b/src/runtime/src/libraries/System.Diagnostics.Tracing/tests/System.Diagnostics.Tracing.Tests.csproj +@@ -1,7 +1,7 @@ + + + true +- $(NetCoreAppCurrent)-windows;$(NetCoreAppCurrent) ++ $(NetCoreAppCurrent) + true + true + +diff --git a/src/runtime/src/libraries/System.DirectoryServices.AccountManagement/src/System.DirectoryServices.AccountManagement.csproj b/src/runtime/src/libraries/System.DirectoryServices.AccountManagement/src/System.DirectoryServices.AccountManagement.csproj +index 8152e3c7f05..be32f5d3b5d 100644 +--- a/src/runtime/src/libraries/System.DirectoryServices.AccountManagement/src/System.DirectoryServices.AccountManagement.csproj ++++ b/src/runtime/src/libraries/System.DirectoryServices.AccountManagement/src/System.DirectoryServices.AccountManagement.csproj +@@ -1,6 +1,6 @@ +  + +- $(NetCoreAppCurrent)-windows;$(NetCoreAppCurrent);$(NetCoreAppMinimum)-windows;$(NetCoreAppMinimum);netstandard2.0 ++ $(NetCoreAppCurrent);$(NetCoreAppMinimum);netstandard2.0 + true + true + $(NoWarn);CA2249 +diff --git a/src/runtime/src/libraries/System.DirectoryServices.AccountManagement/tests/System.DirectoryServices.AccountManagement.Tests.csproj b/src/runtime/src/libraries/System.DirectoryServices.AccountManagement/tests/System.DirectoryServices.AccountManagement.Tests.csproj +index 0bb24c8eadd..6155cac4498 100644 +--- a/src/runtime/src/libraries/System.DirectoryServices.AccountManagement/tests/System.DirectoryServices.AccountManagement.Tests.csproj ++++ b/src/runtime/src/libraries/System.DirectoryServices.AccountManagement/tests/System.DirectoryServices.AccountManagement.Tests.csproj +@@ -1,6 +1,6 @@ + + +- $(NetCoreAppCurrent)-windows;net48 ++ net48 + + + +diff --git a/src/runtime/src/libraries/System.DirectoryServices.Protocols/src/System.DirectoryServices.Protocols.csproj b/src/runtime/src/libraries/System.DirectoryServices.Protocols/src/System.DirectoryServices.Protocols.csproj +index 56862519355..3e11d02035a 100644 +--- a/src/runtime/src/libraries/System.DirectoryServices.Protocols/src/System.DirectoryServices.Protocols.csproj ++++ b/src/runtime/src/libraries/System.DirectoryServices.Protocols/src/System.DirectoryServices.Protocols.csproj +@@ -1,6 +1,6 @@ + + +- $(NetCoreAppCurrent)-windows;$(NetCoreAppCurrent)-OSX;$(NetCoreAppCurrent)-Linux;$(NetCoreAppCurrent);$(NetCoreAppMinimum)-windows;$(NetCoreAppMinimum)-OSX;$(NetCoreAppMinimum)-Linux;$(NetCoreAppMinimum);netstandard2.0 ++ $(NetCoreAppCurrent)-OSX;$(NetCoreAppCurrent)-Linux;$(NetCoreAppCurrent);$(NetCoreAppMinimum)-OSX;$(NetCoreAppMinimum)-Linux;$(NetCoreAppMinimum);netstandard2.0 + true + true + true +diff --git a/src/runtime/src/libraries/System.DirectoryServices.Protocols/tests/System.DirectoryServices.Protocols.Tests.csproj b/src/runtime/src/libraries/System.DirectoryServices.Protocols/tests/System.DirectoryServices.Protocols.Tests.csproj +index 9a78a3acd54..632de15c235 100644 +--- a/src/runtime/src/libraries/System.DirectoryServices.Protocols/tests/System.DirectoryServices.Protocols.Tests.csproj ++++ b/src/runtime/src/libraries/System.DirectoryServices.Protocols/tests/System.DirectoryServices.Protocols.Tests.csproj +@@ -1,6 +1,6 @@ + + +- $(NetCoreAppCurrent)-windows;$(NetCoreAppCurrent)-Linux;$(NetCoreAppCurrent)-OSX;net48 ++ $(NetCoreAppCurrent)-Linux;$(NetCoreAppCurrent)-OSX;net48 + + + +diff --git a/src/runtime/src/libraries/System.DirectoryServices/src/System.DirectoryServices.csproj b/src/runtime/src/libraries/System.DirectoryServices/src/System.DirectoryServices.csproj +index 83a118e940d..7b045dc3c0b 100644 +--- a/src/runtime/src/libraries/System.DirectoryServices/src/System.DirectoryServices.csproj ++++ b/src/runtime/src/libraries/System.DirectoryServices/src/System.DirectoryServices.csproj +@@ -1,6 +1,6 @@ +  + +- $(NetCoreAppCurrent)-windows;$(NetCoreAppCurrent);$(NetCoreAppMinimum)-windows;$(NetCoreAppMinimum);netstandard2.0 ++ $(NetCoreAppCurrent);$(NetCoreAppMinimum);netstandard2.0 + true + true + + $(NoWarn);SYSLIB0003 +- $(NetCoreAppCurrent)-windows;net48 ++ net48 + + + +diff --git a/src/runtime/src/libraries/System.Drawing.Common/src/System.Drawing.Common.csproj b/src/runtime/src/libraries/System.Drawing.Common/src/System.Drawing.Common.csproj +index df9c7ef864a..9cf9a016204 100644 +--- a/src/runtime/src/libraries/System.Drawing.Common/src/System.Drawing.Common.csproj ++++ b/src/runtime/src/libraries/System.Drawing.Common/src/System.Drawing.Common.csproj +@@ -1,6 +1,6 @@ + + +- $(NetCoreAppCurrent)-windows;$(NetCoreAppCurrent);$(NetCoreAppMinimum)-windows;$(NetCoreAppMinimum);netstandard2.0;$(NetFrameworkMinimum) ++ $(NetCoreAppCurrent);$(NetCoreAppMinimum);netstandard2.0;$(NetFrameworkMinimum) + $(DefineConstants);DRAWING_NAMESPACE + true + CS0618 +diff --git a/src/runtime/src/libraries/System.Drawing.Common/tests/System.Drawing.Common.Tests.csproj b/src/runtime/src/libraries/System.Drawing.Common/tests/System.Drawing.Common.Tests.csproj +index 33f175f1456..0b14a790777 100644 +--- a/src/runtime/src/libraries/System.Drawing.Common/tests/System.Drawing.Common.Tests.csproj ++++ b/src/runtime/src/libraries/System.Drawing.Common/tests/System.Drawing.Common.Tests.csproj +@@ -2,7 +2,7 @@ + + true + true +- $(NetCoreAppCurrent)-windows;net48 ++ net48 + true + + +diff --git a/src/runtime/src/libraries/System.Drawing.Primitives/src/System.Drawing.Primitives.csproj b/src/runtime/src/libraries/System.Drawing.Primitives/src/System.Drawing.Primitives.csproj +index 697be7783e2..2efcb61d950 100644 +--- a/src/runtime/src/libraries/System.Drawing.Primitives/src/System.Drawing.Primitives.csproj ++++ b/src/runtime/src/libraries/System.Drawing.Primitives/src/System.Drawing.Primitives.csproj +@@ -1,7 +1,7 @@ +  + + System.Drawing +- $(NetCoreAppCurrent)-windows;$(NetCoreAppCurrent) ++ $(NetCoreAppCurrent) + + + +diff --git a/src/runtime/src/libraries/System.Formats.Tar/src/System.Formats.Tar.csproj b/src/runtime/src/libraries/System.Formats.Tar/src/System.Formats.Tar.csproj +index 33a9aa8c1dc..ea69b03b8a8 100644 +--- a/src/runtime/src/libraries/System.Formats.Tar/src/System.Formats.Tar.csproj ++++ b/src/runtime/src/libraries/System.Formats.Tar/src/System.Formats.Tar.csproj +@@ -1,6 +1,6 @@ + + +- $(NetCoreAppCurrent)-windows;$(NetCoreAppCurrent)-Unix;$(NetCoreAppCurrent) ++ $(NetCoreAppCurrent)-Unix;$(NetCoreAppCurrent) + true + + +diff --git a/src/runtime/src/libraries/System.Formats.Tar/tests/System.Formats.Tar.Tests.csproj b/src/runtime/src/libraries/System.Formats.Tar/tests/System.Formats.Tar.Tests.csproj +index ca1b4d99e50..d4475c8781f 100644 +--- a/src/runtime/src/libraries/System.Formats.Tar/tests/System.Formats.Tar.Tests.csproj ++++ b/src/runtime/src/libraries/System.Formats.Tar/tests/System.Formats.Tar.Tests.csproj +@@ -1,6 +1,6 @@ + + +- $(NetCoreAppCurrent)-windows;$(NetCoreAppCurrent)-Unix ++ $(NetCoreAppCurrent)-Unix + true + $(LibrariesProjectRoot)/Common/tests/Resources/Strings.resx + true +diff --git a/src/runtime/src/libraries/System.Globalization.Extensions/tests/NlsTests/System.Globalization.Extensions.Nls.Tests.csproj b/src/runtime/src/libraries/System.Globalization.Extensions/tests/NlsTests/System.Globalization.Extensions.Nls.Tests.csproj +index 61a409ffedc..38f61fb9197 100644 +--- a/src/runtime/src/libraries/System.Globalization.Extensions/tests/NlsTests/System.Globalization.Extensions.Nls.Tests.csproj ++++ b/src/runtime/src/libraries/System.Globalization.Extensions/tests/NlsTests/System.Globalization.Extensions.Nls.Tests.csproj +@@ -1,6 +1,6 @@ +  + +- $(NetCoreAppCurrent)-windows ++ + true + + +diff --git a/src/runtime/src/libraries/System.Globalization/tests/NlsTests/System.Globalization.Nls.Tests.csproj b/src/runtime/src/libraries/System.Globalization/tests/NlsTests/System.Globalization.Nls.Tests.csproj +index a9aeef49807..0284070ad05 100644 +--- a/src/runtime/src/libraries/System.Globalization/tests/NlsTests/System.Globalization.Nls.Tests.csproj ++++ b/src/runtime/src/libraries/System.Globalization/tests/NlsTests/System.Globalization.Nls.Tests.csproj +@@ -4,7 +4,7 @@ + true + true + +- $(NetCoreAppCurrent)-windows ++ + 14.0 + + +diff --git a/src/runtime/src/libraries/System.IO.Compression.Brotli/src/System.IO.Compression.Brotli.csproj b/src/runtime/src/libraries/System.IO.Compression.Brotli/src/System.IO.Compression.Brotli.csproj +index ced12496d65..d67e262836b 100644 +--- a/src/runtime/src/libraries/System.IO.Compression.Brotli/src/System.IO.Compression.Brotli.csproj ++++ b/src/runtime/src/libraries/System.IO.Compression.Brotli/src/System.IO.Compression.Brotli.csproj +@@ -1,7 +1,7 @@ +  + + true +- $(NetCoreAppCurrent)-windows;$(NetCoreAppCurrent)-Unix;$(NetCoreAppCurrent) ++ $(NetCoreAppCurrent)-Unix;$(NetCoreAppCurrent) + + + +diff --git a/src/runtime/src/libraries/System.IO.Compression.Brotli/tests/System.IO.Compression.Brotli.Tests.csproj b/src/runtime/src/libraries/System.IO.Compression.Brotli/tests/System.IO.Compression.Brotli.Tests.csproj +index 709f655902d..607c50be625 100644 +--- a/src/runtime/src/libraries/System.IO.Compression.Brotli/tests/System.IO.Compression.Brotli.Tests.csproj ++++ b/src/runtime/src/libraries/System.IO.Compression.Brotli/tests/System.IO.Compression.Brotli.Tests.csproj +@@ -1,6 +1,6 @@ + + +- $(NetCoreAppCurrent)-windows;$(NetCoreAppCurrent)-Unix;$(NetCoreAppCurrent)-Browser ++ $(NetCoreAppCurrent)-Unix;$(NetCoreAppCurrent)-Browser + true + true + +diff --git a/src/runtime/src/libraries/System.IO.Compression.ZipFile/src/System.IO.Compression.ZipFile.csproj b/src/runtime/src/libraries/System.IO.Compression.ZipFile/src/System.IO.Compression.ZipFile.csproj +index 94999191663..f8506c2adbc 100644 +--- a/src/runtime/src/libraries/System.IO.Compression.ZipFile/src/System.IO.Compression.ZipFile.csproj ++++ b/src/runtime/src/libraries/System.IO.Compression.ZipFile/src/System.IO.Compression.ZipFile.csproj +@@ -1,7 +1,7 @@ +  + + true +- $(NetCoreAppCurrent)-windows;$(NetCoreAppCurrent) ++ $(NetCoreAppCurrent) + + + +diff --git a/src/runtime/src/libraries/System.IO.Compression.ZipFile/tests/System.IO.Compression.ZipFile.Tests.csproj b/src/runtime/src/libraries/System.IO.Compression.ZipFile/tests/System.IO.Compression.ZipFile.Tests.csproj +index 29c88cb2f9c..b049a0f3caa 100644 +--- a/src/runtime/src/libraries/System.IO.Compression.ZipFile/tests/System.IO.Compression.ZipFile.Tests.csproj ++++ b/src/runtime/src/libraries/System.IO.Compression.ZipFile/tests/System.IO.Compression.ZipFile.Tests.csproj +@@ -3,7 +3,7 @@ + true + true + true +- $(NetCoreAppCurrent)-windows;$(NetCoreAppCurrent)-Unix;$(NetCoreAppCurrent)-Browser ++ $(NetCoreAppCurrent)-Unix;$(NetCoreAppCurrent)-Browser + + + +diff --git a/src/runtime/src/libraries/System.IO.Compression/src/System.IO.Compression.csproj b/src/runtime/src/libraries/System.IO.Compression/src/System.IO.Compression.csproj +index 80007bcfe5f..ee0bf21ccfc 100644 +--- a/src/runtime/src/libraries/System.IO.Compression/src/System.IO.Compression.csproj ++++ b/src/runtime/src/libraries/System.IO.Compression/src/System.IO.Compression.csproj +@@ -1,7 +1,7 @@ + + + true +- $(NetCoreAppCurrent)-windows;$(NetCoreAppCurrent)-Unix;$(NetCoreAppCurrent)-Browser;$(NetCoreAppCurrent) ++ $(NetCoreAppCurrent)-Unix;$(NetCoreAppCurrent)-Browser;$(NetCoreAppCurrent) + + + +diff --git a/src/runtime/src/libraries/System.IO.Compression/tests/System.IO.Compression.Tests.csproj b/src/runtime/src/libraries/System.IO.Compression/tests/System.IO.Compression.Tests.csproj +index 229119e3aa3..2fcad878c05 100644 +--- a/src/runtime/src/libraries/System.IO.Compression/tests/System.IO.Compression.Tests.csproj ++++ b/src/runtime/src/libraries/System.IO.Compression/tests/System.IO.Compression.Tests.csproj +@@ -1,6 +1,6 @@ + + +- $(NetCoreAppCurrent)-windows;$(NetCoreAppCurrent)-Unix;$(NetCoreAppCurrent)-Browser ++ $(NetCoreAppCurrent)-Unix;$(NetCoreAppCurrent)-Browser + true + + +diff --git a/src/runtime/src/libraries/System.IO.FileSystem.AccessControl/src/System.IO.FileSystem.AccessControl.csproj b/src/runtime/src/libraries/System.IO.FileSystem.AccessControl/src/System.IO.FileSystem.AccessControl.csproj +index 494ef1959db..08ddf1c7dd9 100644 +--- a/src/runtime/src/libraries/System.IO.FileSystem.AccessControl/src/System.IO.FileSystem.AccessControl.csproj ++++ b/src/runtime/src/libraries/System.IO.FileSystem.AccessControl/src/System.IO.FileSystem.AccessControl.csproj +@@ -1,6 +1,6 @@ + + +- $(NetCoreAppCurrent)-windows;$(NetCoreAppCurrent) ++ $(NetCoreAppCurrent) + + + +diff --git a/src/runtime/src/libraries/System.IO.FileSystem.AccessControl/tests/System.IO.FileSystem.AccessControl.Tests.csproj b/src/runtime/src/libraries/System.IO.FileSystem.AccessControl/tests/System.IO.FileSystem.AccessControl.Tests.csproj +index c42a680fa2f..fe12ddd7911 100644 +--- a/src/runtime/src/libraries/System.IO.FileSystem.AccessControl/tests/System.IO.FileSystem.AccessControl.Tests.csproj ++++ b/src/runtime/src/libraries/System.IO.FileSystem.AccessControl/tests/System.IO.FileSystem.AccessControl.Tests.csproj +@@ -1,6 +1,6 @@ + + +- $(NetCoreAppCurrent)-windows ++ + + + +diff --git a/src/runtime/src/libraries/System.IO.FileSystem.DriveInfo/src/System.IO.FileSystem.DriveInfo.csproj b/src/runtime/src/libraries/System.IO.FileSystem.DriveInfo/src/System.IO.FileSystem.DriveInfo.csproj +index 61225e58e8a..90c69fee153 100644 +--- a/src/runtime/src/libraries/System.IO.FileSystem.DriveInfo/src/System.IO.FileSystem.DriveInfo.csproj ++++ b/src/runtime/src/libraries/System.IO.FileSystem.DriveInfo/src/System.IO.FileSystem.DriveInfo.csproj +@@ -1,7 +1,7 @@ + + + true +- $(NetCoreAppCurrent)-windows;$(NetCoreAppCurrent)-Unix;$(NetCoreAppCurrent) ++ $(NetCoreAppCurrent)-Unix;$(NetCoreAppCurrent) + + + +diff --git a/src/runtime/src/libraries/System.IO.FileSystem.DriveInfo/tests/System.IO.FileSystem.DriveInfo.Tests.csproj b/src/runtime/src/libraries/System.IO.FileSystem.DriveInfo/tests/System.IO.FileSystem.DriveInfo.Tests.csproj +index 00d1afd3c94..8071e492986 100644 +--- a/src/runtime/src/libraries/System.IO.FileSystem.DriveInfo/tests/System.IO.FileSystem.DriveInfo.Tests.csproj ++++ b/src/runtime/src/libraries/System.IO.FileSystem.DriveInfo/tests/System.IO.FileSystem.DriveInfo.Tests.csproj +@@ -1,6 +1,6 @@ + + +- $(NetCoreAppCurrent)-windows;$(NetCoreAppCurrent)-Unix;$(NetCoreAppCurrent)-Browser ++ $(NetCoreAppCurrent)-Unix;$(NetCoreAppCurrent)-Browser + + + +diff --git a/src/runtime/src/libraries/System.IO.FileSystem.Watcher/src/System.IO.FileSystem.Watcher.csproj b/src/runtime/src/libraries/System.IO.FileSystem.Watcher/src/System.IO.FileSystem.Watcher.csproj +index 469005b661d..7edcd52db0c 100644 +--- a/src/runtime/src/libraries/System.IO.FileSystem.Watcher/src/System.IO.FileSystem.Watcher.csproj ++++ b/src/runtime/src/libraries/System.IO.FileSystem.Watcher/src/System.IO.FileSystem.Watcher.csproj +@@ -1,7 +1,7 @@ +  + + true +- $(NetCoreAppCurrent)-windows;$(NetCoreAppCurrent)-Linux;$(NetCoreAppCurrent)-OSX;$(NetCoreAppCurrent)-MacCatalyst;$(NetCoreAppCurrent)-FreeBSD;$(NetCoreAppCurrent) ++ $(NetCoreAppCurrent)-Linux;$(NetCoreAppCurrent)-OSX;$(NetCoreAppCurrent)-MacCatalyst;$(NetCoreAppCurrent)-FreeBSD;$(NetCoreAppCurrent) + + + +diff --git a/src/runtime/src/libraries/System.IO.FileSystem.Watcher/tests/System.IO.FileSystem.Watcher.Tests.csproj b/src/runtime/src/libraries/System.IO.FileSystem.Watcher/tests/System.IO.FileSystem.Watcher.Tests.csproj +index 1246c914ab8..a83fbe23499 100644 +--- a/src/runtime/src/libraries/System.IO.FileSystem.Watcher/tests/System.IO.FileSystem.Watcher.Tests.csproj ++++ b/src/runtime/src/libraries/System.IO.FileSystem.Watcher/tests/System.IO.FileSystem.Watcher.Tests.csproj +@@ -2,7 +2,7 @@ + + true + true +- $(NetCoreAppCurrent)-windows;$(NetCoreAppCurrent)-Linux;$(NetCoreAppCurrent)-OSX;$(NetCoreAppCurrent)-MacCatalyst;$(NetCoreAppCurrent)-FreeBSD ++ $(NetCoreAppCurrent)-Linux;$(NetCoreAppCurrent)-OSX;$(NetCoreAppCurrent)-MacCatalyst;$(NetCoreAppCurrent)-FreeBSD + true + true + +diff --git a/src/runtime/src/libraries/System.IO.FileSystem/tests/System.IO.FileSystem.Tests.csproj b/src/runtime/src/libraries/System.IO.FileSystem/tests/System.IO.FileSystem.Tests.csproj +index e386671171d..746e218cc24 100644 +--- a/src/runtime/src/libraries/System.IO.FileSystem/tests/System.IO.FileSystem.Tests.csproj ++++ b/src/runtime/src/libraries/System.IO.FileSystem/tests/System.IO.FileSystem.Tests.csproj +@@ -2,7 +2,7 @@ + + true + true +- $(NetCoreAppCurrent)-windows;$(NetCoreAppCurrent)-Unix;$(NetCoreAppCurrent)-Browser ++ $(NetCoreAppCurrent)-Unix;$(NetCoreAppCurrent)-Browser + + --working-dir=/test-dir + true +diff --git a/src/runtime/src/libraries/System.IO.IsolatedStorage/src/System.IO.IsolatedStorage.csproj b/src/runtime/src/libraries/System.IO.IsolatedStorage/src/System.IO.IsolatedStorage.csproj +index 2309a8c007a..b16deb25f25 100644 +--- a/src/runtime/src/libraries/System.IO.IsolatedStorage/src/System.IO.IsolatedStorage.csproj ++++ b/src/runtime/src/libraries/System.IO.IsolatedStorage/src/System.IO.IsolatedStorage.csproj +@@ -1,6 +1,6 @@ + + +- $(NetCoreAppCurrent)-windows;$(NetCoreAppCurrent)-Unix;$(NetCoreAppCurrent)-MacCatalyst;$(NetCoreAppCurrent)-iOS;$(NetCoreAppCurrent)-tvOS;$(NetCoreAppCurrent)-Android;$(NetCoreAppCurrent) ++ $(NetCoreAppCurrent)-Unix;$(NetCoreAppCurrent)-MacCatalyst;$(NetCoreAppCurrent)-iOS;$(NetCoreAppCurrent)-tvOS;$(NetCoreAppCurrent)-Android;$(NetCoreAppCurrent) + + + +diff --git a/src/runtime/src/libraries/System.IO.IsolatedStorage/tests/System.IO.IsolatedStorage.Tests.csproj b/src/runtime/src/libraries/System.IO.IsolatedStorage/tests/System.IO.IsolatedStorage.Tests.csproj +index 0410513c46c..1f4b92f6418 100644 +--- a/src/runtime/src/libraries/System.IO.IsolatedStorage/tests/System.IO.IsolatedStorage.Tests.csproj ++++ b/src/runtime/src/libraries/System.IO.IsolatedStorage/tests/System.IO.IsolatedStorage.Tests.csproj +@@ -1,6 +1,6 @@ + + +- $(NetCoreAppCurrent)-windows;$(NetCoreAppCurrent)-Unix;$(NetCoreAppCurrent)-Browser;$(NetCoreAppCurrent)-MacCatalyst;$(NetCoreAppCurrent)-iOS;$(NetCoreAppCurrent)-tvOS;$(NetCoreAppCurrent)-Android ++ $(NetCoreAppCurrent)-Unix;$(NetCoreAppCurrent)-Browser;$(NetCoreAppCurrent)-MacCatalyst;$(NetCoreAppCurrent)-iOS;$(NetCoreAppCurrent)-tvOS;$(NetCoreAppCurrent)-Android + true + + +diff --git a/src/runtime/src/libraries/System.IO.MemoryMappedFiles/src/System.IO.MemoryMappedFiles.csproj b/src/runtime/src/libraries/System.IO.MemoryMappedFiles/src/System.IO.MemoryMappedFiles.csproj +index 9be9a376620..56ed27283ac 100644 +--- a/src/runtime/src/libraries/System.IO.MemoryMappedFiles/src/System.IO.MemoryMappedFiles.csproj ++++ b/src/runtime/src/libraries/System.IO.MemoryMappedFiles/src/System.IO.MemoryMappedFiles.csproj +@@ -1,7 +1,7 @@ + + + true +- $(NetCoreAppCurrent)-windows;$(NetCoreAppCurrent)-Unix;$(NetCoreAppCurrent)-Browser;$(NetCoreAppCurrent) ++ $(NetCoreAppCurrent)-Unix;$(NetCoreAppCurrent)-Browser;$(NetCoreAppCurrent) + + + +diff --git a/src/runtime/src/libraries/System.IO.MemoryMappedFiles/tests/System.IO.MemoryMappedFiles.Tests.csproj b/src/runtime/src/libraries/System.IO.MemoryMappedFiles/tests/System.IO.MemoryMappedFiles.Tests.csproj +index ef44754372e..4525b0aa830 100644 +--- a/src/runtime/src/libraries/System.IO.MemoryMappedFiles/tests/System.IO.MemoryMappedFiles.Tests.csproj ++++ b/src/runtime/src/libraries/System.IO.MemoryMappedFiles/tests/System.IO.MemoryMappedFiles.Tests.csproj +@@ -2,7 +2,7 @@ + + true + true +- $(NetCoreAppCurrent)-windows;$(NetCoreAppCurrent)-Unix;$(NetCoreAppCurrent)-Browser ++ $(NetCoreAppCurrent)-Unix;$(NetCoreAppCurrent)-Browser + true + + +diff --git a/src/runtime/src/libraries/System.IO.Pipes.AccessControl/src/System.IO.Pipes.AccessControl.csproj b/src/runtime/src/libraries/System.IO.Pipes.AccessControl/src/System.IO.Pipes.AccessControl.csproj +index 3dd3c8a455b..82091dc68d0 100644 +--- a/src/runtime/src/libraries/System.IO.Pipes.AccessControl/src/System.IO.Pipes.AccessControl.csproj ++++ b/src/runtime/src/libraries/System.IO.Pipes.AccessControl/src/System.IO.Pipes.AccessControl.csproj +@@ -1,6 +1,6 @@ + + +- $(NetCoreAppCurrent)-windows;$(NetCoreAppCurrent) ++ $(NetCoreAppCurrent) + + + +diff --git a/src/runtime/src/libraries/System.IO.Pipes.AccessControl/tests/System.IO.Pipes.AccessControl.Tests.csproj b/src/runtime/src/libraries/System.IO.Pipes.AccessControl/tests/System.IO.Pipes.AccessControl.Tests.csproj +index 386250a4320..e0e4eab4e8e 100644 +--- a/src/runtime/src/libraries/System.IO.Pipes.AccessControl/tests/System.IO.Pipes.AccessControl.Tests.csproj ++++ b/src/runtime/src/libraries/System.IO.Pipes.AccessControl/tests/System.IO.Pipes.AccessControl.Tests.csproj +@@ -1,6 +1,6 @@ + + +- $(NetCoreAppCurrent)-windows ++ + + + +diff --git a/src/runtime/src/libraries/System.IO.Pipes/src/System.IO.Pipes.csproj b/src/runtime/src/libraries/System.IO.Pipes/src/System.IO.Pipes.csproj +index b0956d6ba7b..77585616ea3 100644 +--- a/src/runtime/src/libraries/System.IO.Pipes/src/System.IO.Pipes.csproj ++++ b/src/runtime/src/libraries/System.IO.Pipes/src/System.IO.Pipes.csproj +@@ -1,6 +1,6 @@ + + +- $(NetCoreAppCurrent)-windows;$(NetCoreAppCurrent)-Unix;$(NetCoreAppCurrent) ++ $(NetCoreAppCurrent)-Unix;$(NetCoreAppCurrent) + true + + +diff --git a/src/runtime/src/libraries/System.IO.Pipes/tests/System.IO.Pipes.Tests.csproj b/src/runtime/src/libraries/System.IO.Pipes/tests/System.IO.Pipes.Tests.csproj +index 8f31d5dd604..2e6ae7616ea 100644 +--- a/src/runtime/src/libraries/System.IO.Pipes/tests/System.IO.Pipes.Tests.csproj ++++ b/src/runtime/src/libraries/System.IO.Pipes/tests/System.IO.Pipes.Tests.csproj +@@ -2,7 +2,7 @@ + + true + true +- $(NetCoreAppCurrent)-windows;$(NetCoreAppCurrent)-Unix;$(NetCoreAppCurrent) ++ $(NetCoreAppCurrent)-Unix;$(NetCoreAppCurrent) + true + true + +diff --git a/src/runtime/src/libraries/System.IO.Ports/src/System.IO.Ports.csproj b/src/runtime/src/libraries/System.IO.Ports/src/System.IO.Ports.csproj +index c341d6c3ba6..3173e525799 100644 +--- a/src/runtime/src/libraries/System.IO.Ports/src/System.IO.Ports.csproj ++++ b/src/runtime/src/libraries/System.IO.Ports/src/System.IO.Ports.csproj +@@ -1,6 +1,6 @@ + + +- $(NetCoreAppCurrent)-windows;$(NetCoreAppCurrent)-Unix;$(NetCoreAppCurrent);$(NetCoreAppMinimum)-windows;$(NetCoreAppMinimum)-Unix;$(NetCoreAppMinimum);netstandard2.0;$(NetFrameworkMinimum) ++ $(NetCoreAppCurrent)-Unix;$(NetCoreAppCurrent);$(NetCoreAppMinimum)-Unix;$(NetCoreAppMinimum);netstandard2.0;$(NetFrameworkMinimum) + true + $(DefineConstants);SERIAL_PORTS + true +diff --git a/src/runtime/src/libraries/System.IO.Ports/tests/System.IO.Ports.Tests.csproj b/src/runtime/src/libraries/System.IO.Ports/tests/System.IO.Ports.Tests.csproj +index 9a1592778a7..b71f36bc2f1 100644 +--- a/src/runtime/src/libraries/System.IO.Ports/tests/System.IO.Ports.Tests.csproj ++++ b/src/runtime/src/libraries/System.IO.Ports/tests/System.IO.Ports.Tests.csproj +@@ -1,6 +1,6 @@ + + +- $(NetCoreAppCurrent)-windows;$(NetCoreAppCurrent)-Linux;$(NetCoreAppCurrent)-OSX;$(NetCoreAppCurrent)-FreeBSD;$(NetFrameworkMinimum) ++ $(NetCoreAppCurrent)-Linux;$(NetCoreAppCurrent)-OSX;$(NetCoreAppCurrent)-FreeBSD;$(NetFrameworkMinimum) + + + +diff --git a/src/runtime/src/libraries/System.Management/src/System.Management.csproj b/src/runtime/src/libraries/System.Management/src/System.Management.csproj +index 5b66be0b573..1352df29995 100644 +--- a/src/runtime/src/libraries/System.Management/src/System.Management.csproj ++++ b/src/runtime/src/libraries/System.Management/src/System.Management.csproj +@@ -1,6 +1,6 @@ +  + +- $(NetCoreAppCurrent)-windows;$(NetCoreAppCurrent);$(NetCoreAppMinimum)-windows;$(NetCoreAppMinimum);netstandard2.0 ++ $(NetCoreAppCurrent);$(NetCoreAppMinimum);netstandard2.0 + true + $(NoWarn);0618 + +diff --git a/src/runtime/src/libraries/System.Net.Http/tests/FunctionalTests/System.Net.Http.Functional.Tests.csproj b/src/runtime/src/libraries/System.Net.Http/tests/FunctionalTests/System.Net.Http.Functional.Tests.csproj +index b5a0ebaa389..45c62a15a8b 100644 +--- a/src/runtime/src/libraries/System.Net.Http/tests/FunctionalTests/System.Net.Http.Functional.Tests.csproj ++++ b/src/runtime/src/libraries/System.Net.Http/tests/FunctionalTests/System.Net.Http.Functional.Tests.csproj +@@ -4,7 +4,7 @@ + $(DefineConstants);SYSNETHTTP_NO_OPENSSL;HTTP3 + true + true +- $(NetCoreAppCurrent)-windows;$(NetCoreAppCurrent)-Linux;$(NetCoreAppCurrent)-Browser;$(NetCoreAppCurrent)-OSX ++ $(NetCoreAppCurrent)-Linux;$(NetCoreAppCurrent)-Browser;$(NetCoreAppCurrent)-OSX + true + true + +diff --git a/src/runtime/src/libraries/System.Net.Http/tests/UnitTests/System.Net.Http.Unit.Tests.csproj b/src/runtime/src/libraries/System.Net.Http/tests/UnitTests/System.Net.Http.Unit.Tests.csproj +index 85139c5391f..f2f2c2e5696 100644 +--- a/src/runtime/src/libraries/System.Net.Http/tests/UnitTests/System.Net.Http.Unit.Tests.csproj ++++ b/src/runtime/src/libraries/System.Net.Http/tests/UnitTests/System.Net.Http.Unit.Tests.csproj +@@ -3,7 +3,7 @@ + ../../src/Resources/Strings.resx + true + true +- $(NetCoreAppCurrent)-windows;$(NetCoreAppCurrent)-Unix;$(NetCoreAppCurrent)-Browser;$(NetCoreAppCurrent)-OSX;$(NetCoreAppCurrent)-MacCatalyst;$(NetCoreAppCurrent)-iOS;$(NetCoreAppCurrent)-tvOS;$(NetCoreAppCurrent)-Android ++ $(NetCoreAppCurrent)-Unix;$(NetCoreAppCurrent)-Browser;$(NetCoreAppCurrent)-OSX;$(NetCoreAppCurrent)-MacCatalyst;$(NetCoreAppCurrent)-iOS;$(NetCoreAppCurrent)-tvOS;$(NetCoreAppCurrent)-Android + true + + +diff --git a/src/runtime/src/libraries/System.Net.HttpListener/src/System.Net.HttpListener.csproj b/src/runtime/src/libraries/System.Net.HttpListener/src/System.Net.HttpListener.csproj +index b0e790da1d6..46e75182fae 100644 +--- a/src/runtime/src/libraries/System.Net.HttpListener/src/System.Net.HttpListener.csproj ++++ b/src/runtime/src/libraries/System.Net.HttpListener/src/System.Net.HttpListener.csproj +@@ -2,7 +2,7 @@ + + true + false +- $(NetCoreAppCurrent)-windows;$(NetCoreAppCurrent)-Unix;$(NetCoreAppCurrent) ++ $(NetCoreAppCurrent)-Unix;$(NetCoreAppCurrent) + true + + +diff --git a/src/runtime/src/libraries/System.Net.HttpListener/tests/System.Net.HttpListener.Tests.csproj b/src/runtime/src/libraries/System.Net.HttpListener/tests/System.Net.HttpListener.Tests.csproj +index ff51965c789..d5f4d3637ca 100644 +--- a/src/runtime/src/libraries/System.Net.HttpListener/tests/System.Net.HttpListener.Tests.csproj ++++ b/src/runtime/src/libraries/System.Net.HttpListener/tests/System.Net.HttpListener.Tests.csproj +@@ -2,7 +2,7 @@ + + true + ../src/Resources/Strings.resx +- $(NetCoreAppCurrent)-windows;$(NetCoreAppCurrent)-Unix;$(NetCoreAppCurrent)-Browser;$(NetCoreAppCurrent)-OSX ++ $(NetCoreAppCurrent)-Unix;$(NetCoreAppCurrent)-Browser;$(NetCoreAppCurrent)-OSX + true + + +diff --git a/src/runtime/src/libraries/System.Net.Mail/src/System.Net.Mail.csproj b/src/runtime/src/libraries/System.Net.Mail/src/System.Net.Mail.csproj +index 5d2ce4cc280..323c647d2d6 100644 +--- a/src/runtime/src/libraries/System.Net.Mail/src/System.Net.Mail.csproj ++++ b/src/runtime/src/libraries/System.Net.Mail/src/System.Net.Mail.csproj +@@ -1,7 +1,7 @@ +  + + true +- $(NetCoreAppCurrent)-windows;$(NetCoreAppCurrent)-Unix;$(NetCoreAppCurrent)-Browser;$(NetCoreAppCurrent) ++ $(NetCoreAppCurrent)-Unix;$(NetCoreAppCurrent)-Browser;$(NetCoreAppCurrent) + + + +diff --git a/src/runtime/src/libraries/System.Net.Mail/tests/Functional/System.Net.Mail.Functional.Tests.csproj b/src/runtime/src/libraries/System.Net.Mail/tests/Functional/System.Net.Mail.Functional.Tests.csproj +index 4a7b913a457..f81cc0576f9 100644 +--- a/src/runtime/src/libraries/System.Net.Mail/tests/Functional/System.Net.Mail.Functional.Tests.csproj ++++ b/src/runtime/src/libraries/System.Net.Mail/tests/Functional/System.Net.Mail.Functional.Tests.csproj +@@ -1,7 +1,7 @@ + + + true +- $(NetCoreAppCurrent)-windows;$(NetCoreAppCurrent)-Unix;$(NetCoreAppCurrent)-Browser;$(NetCoreAppCurrent)-OSX;$(NetCoreAppCurrent)-iOS;$(NetCoreAppCurrent)-Android ++ $(NetCoreAppCurrent)-Unix;$(NetCoreAppCurrent)-Browser;$(NetCoreAppCurrent)-OSX;$(NetCoreAppCurrent)-iOS;$(NetCoreAppCurrent)-Android + true + true + true +diff --git a/src/runtime/src/libraries/System.Net.Mail/tests/Unit/System.Net.Mail.Unit.Tests.csproj b/src/runtime/src/libraries/System.Net.Mail/tests/Unit/System.Net.Mail.Unit.Tests.csproj +index 0fbb5d7c497..b466e0b9d96 100644 +--- a/src/runtime/src/libraries/System.Net.Mail/tests/Unit/System.Net.Mail.Unit.Tests.csproj ++++ b/src/runtime/src/libraries/System.Net.Mail/tests/Unit/System.Net.Mail.Unit.Tests.csproj +@@ -2,7 +2,7 @@ + + true + ../../src/Resources/Strings.resx +- $(NetCoreAppCurrent)-windows;$(NetCoreAppCurrent)-Unix;$(NetCoreAppCurrent)-Browser ++ $(NetCoreAppCurrent)-Unix;$(NetCoreAppCurrent)-Browser + true + + +diff --git a/src/runtime/src/libraries/System.Net.NameResolution/src/System.Net.NameResolution.csproj b/src/runtime/src/libraries/System.Net.NameResolution/src/System.Net.NameResolution.csproj +index 6d7ee08de0b..76e1a178242 100644 +--- a/src/runtime/src/libraries/System.Net.NameResolution/src/System.Net.NameResolution.csproj ++++ b/src/runtime/src/libraries/System.Net.NameResolution/src/System.Net.NameResolution.csproj +@@ -1,7 +1,7 @@ + + + true +- $(NetCoreAppCurrent)-windows;$(NetCoreAppCurrent)-Unix;$(NetCoreAppCurrent)-Browser;$(NetCoreAppCurrent) ++ $(NetCoreAppCurrent)-Unix;$(NetCoreAppCurrent)-Browser;$(NetCoreAppCurrent) + + + +diff --git a/src/runtime/src/libraries/System.Net.NameResolution/tests/FunctionalTests/System.Net.NameResolution.Functional.Tests.csproj b/src/runtime/src/libraries/System.Net.NameResolution/tests/FunctionalTests/System.Net.NameResolution.Functional.Tests.csproj +index f4588a2b4a1..a21ef6a5d18 100644 +--- a/src/runtime/src/libraries/System.Net.NameResolution/tests/FunctionalTests/System.Net.NameResolution.Functional.Tests.csproj ++++ b/src/runtime/src/libraries/System.Net.NameResolution/tests/FunctionalTests/System.Net.NameResolution.Functional.Tests.csproj +@@ -1,6 +1,6 @@ + + +- $(NetCoreAppCurrent)-windows;$(NetCoreAppCurrent)-Unix;$(NetCoreAppCurrent)-Browser ++ $(NetCoreAppCurrent)-Unix;$(NetCoreAppCurrent)-Browser + true + true + true +diff --git a/src/runtime/src/libraries/System.Net.NameResolution/tests/PalTests/System.Net.NameResolution.Pal.Tests.csproj b/src/runtime/src/libraries/System.Net.NameResolution/tests/PalTests/System.Net.NameResolution.Pal.Tests.csproj +index 2edc2e3601c..75c119af62a 100644 +--- a/src/runtime/src/libraries/System.Net.NameResolution/tests/PalTests/System.Net.NameResolution.Pal.Tests.csproj ++++ b/src/runtime/src/libraries/System.Net.NameResolution/tests/PalTests/System.Net.NameResolution.Pal.Tests.csproj +@@ -2,7 +2,7 @@ + + true + ../../src/Resources/Strings.resx +- $(NetCoreAppCurrent)-windows;$(NetCoreAppCurrent)-Unix;$(NetCoreAppCurrent)-Browser ++ $(NetCoreAppCurrent)-Unix;$(NetCoreAppCurrent)-Browser + true + true + +diff --git a/src/runtime/src/libraries/System.Net.NetworkInformation/src/System.Net.NetworkInformation.csproj b/src/runtime/src/libraries/System.Net.NetworkInformation/src/System.Net.NetworkInformation.csproj +index d36ad67504e..8b240730a52 100644 +--- a/src/runtime/src/libraries/System.Net.NetworkInformation/src/System.Net.NetworkInformation.csproj ++++ b/src/runtime/src/libraries/System.Net.NetworkInformation/src/System.Net.NetworkInformation.csproj +@@ -1,7 +1,7 @@ +  + + true +- $(NetCoreAppCurrent)-windows;$(NetCoreAppCurrent)-Linux;$(NetCoreAppCurrent)-Android;$(NetCoreAppCurrent)-OSX;$(NetCoreAppCurrent)-iOS;$(NetCoreAppCurrent)-tvOS;$(NetCoreAppCurrent)-FreeBSD;$(NetCoreAppCurrent)-illumos;$(NetCoreAppCurrent)-Solaris;$(NetCoreAppCurrent) ++ $(NetCoreAppCurrent)-Linux;$(NetCoreAppCurrent)-Android;$(NetCoreAppCurrent)-OSX;$(NetCoreAppCurrent)-iOS;$(NetCoreAppCurrent)-tvOS;$(NetCoreAppCurrent)-FreeBSD;$(NetCoreAppCurrent)-illumos;$(NetCoreAppCurrent)-Solaris;$(NetCoreAppCurrent) + + + +diff --git a/src/runtime/src/libraries/System.Net.Ping/src/System.Net.Ping.csproj b/src/runtime/src/libraries/System.Net.Ping/src/System.Net.Ping.csproj +index 71b5d783c45..167b0a2c5f5 100644 +--- a/src/runtime/src/libraries/System.Net.Ping/src/System.Net.Ping.csproj ++++ b/src/runtime/src/libraries/System.Net.Ping/src/System.Net.Ping.csproj +@@ -1,7 +1,7 @@ +  + + true +- $(NetCoreAppCurrent)-windows;$(NetCoreAppCurrent)-Unix;$(NetCoreAppCurrent)-OSX;$(NetCoreAppCurrent)-iOS;$(NetCoreAppCurrent)-tvOS;$(NetCoreAppCurrent) ++ $(NetCoreAppCurrent)-Unix;$(NetCoreAppCurrent)-OSX;$(NetCoreAppCurrent)-iOS;$(NetCoreAppCurrent)-tvOS;$(NetCoreAppCurrent) + + + +diff --git a/src/runtime/src/libraries/System.Net.Ping/tests/FunctionalTests/System.Net.Ping.Functional.Tests.csproj b/src/runtime/src/libraries/System.Net.Ping/tests/FunctionalTests/System.Net.Ping.Functional.Tests.csproj +index 0a068b65b72..5ccac35d05f 100644 +--- a/src/runtime/src/libraries/System.Net.Ping/tests/FunctionalTests/System.Net.Ping.Functional.Tests.csproj ++++ b/src/runtime/src/libraries/System.Net.Ping/tests/FunctionalTests/System.Net.Ping.Functional.Tests.csproj +@@ -1,6 +1,6 @@ + + +- $(NetCoreAppCurrent)-windows;$(NetCoreAppCurrent)-Unix;$(NetCoreAppCurrent)-Browser ++ $(NetCoreAppCurrent)-Unix;$(NetCoreAppCurrent)-Browser + true + true + true +diff --git a/src/runtime/src/libraries/System.Net.Primitives/src/System.Net.Primitives.csproj b/src/runtime/src/libraries/System.Net.Primitives/src/System.Net.Primitives.csproj +index 84a5864cac9..3567f4a6ea7 100644 +--- a/src/runtime/src/libraries/System.Net.Primitives/src/System.Net.Primitives.csproj ++++ b/src/runtime/src/libraries/System.Net.Primitives/src/System.Net.Primitives.csproj +@@ -2,7 +2,7 @@ + + true + false +- $(NetCoreAppCurrent)-windows;$(NetCoreAppCurrent)-Unix;$(NetCoreAppCurrent)-Browser;$(NetCoreAppCurrent) ++ $(NetCoreAppCurrent)-Unix;$(NetCoreAppCurrent)-Browser;$(NetCoreAppCurrent) + + $(DefineConstants);SYSTEM_NET_PRIMITIVES_DLL +diff --git a/src/runtime/src/libraries/System.Net.Primitives/tests/FunctionalTests/System.Net.Primitives.Functional.Tests.csproj b/src/runtime/src/libraries/System.Net.Primitives/tests/FunctionalTests/System.Net.Primitives.Functional.Tests.csproj +index 4e2e897b0a6..7a48043aad5 100644 +--- a/src/runtime/src/libraries/System.Net.Primitives/tests/FunctionalTests/System.Net.Primitives.Functional.Tests.csproj ++++ b/src/runtime/src/libraries/System.Net.Primitives/tests/FunctionalTests/System.Net.Primitives.Functional.Tests.csproj +@@ -1,7 +1,7 @@ + + + true +- $(NetCoreAppCurrent)-windows;$(NetCoreAppCurrent)-Unix;$(NetCoreAppCurrent)-Browser ++ $(NetCoreAppCurrent)-Unix;$(NetCoreAppCurrent)-Browser + true + + +diff --git a/src/runtime/src/libraries/System.Net.Primitives/tests/PalTests/System.Net.Primitives.Pal.Tests.csproj b/src/runtime/src/libraries/System.Net.Primitives/tests/PalTests/System.Net.Primitives.Pal.Tests.csproj +index 2fb034467dc..633181e4b58 100644 +--- a/src/runtime/src/libraries/System.Net.Primitives/tests/PalTests/System.Net.Primitives.Pal.Tests.csproj ++++ b/src/runtime/src/libraries/System.Net.Primitives/tests/PalTests/System.Net.Primitives.Pal.Tests.csproj +@@ -2,7 +2,7 @@ + + true + ../../src/Resources/Strings.resx +- $(NetCoreAppCurrent)-windows;$(NetCoreAppCurrent)-Unix;$(NetCoreAppCurrent)-Browser ++ $(NetCoreAppCurrent)-Unix;$(NetCoreAppCurrent)-Browser + true + + +diff --git a/src/runtime/src/libraries/System.Net.Primitives/tests/UnitTests/System.Net.Primitives.UnitTests.Tests.csproj b/src/runtime/src/libraries/System.Net.Primitives/tests/UnitTests/System.Net.Primitives.UnitTests.Tests.csproj +index 8cc3d0ff90f..098b0d7460a 100644 +--- a/src/runtime/src/libraries/System.Net.Primitives/tests/UnitTests/System.Net.Primitives.UnitTests.Tests.csproj ++++ b/src/runtime/src/libraries/System.Net.Primitives/tests/UnitTests/System.Net.Primitives.UnitTests.Tests.csproj +@@ -3,7 +3,7 @@ + true + 169,649 + ../../src/Resources/Strings.resx +- $(NetCoreAppCurrent)-windows;$(NetCoreAppCurrent)-Unix;$(NetCoreAppCurrent)-Browser ++ $(NetCoreAppCurrent)-Unix;$(NetCoreAppCurrent)-Browser + true + + +diff --git a/src/runtime/src/libraries/System.Net.Quic/src/System.Net.Quic.csproj b/src/runtime/src/libraries/System.Net.Quic/src/System.Net.Quic.csproj +index 257af8dbb88..6f118e0bf88 100644 +--- a/src/runtime/src/libraries/System.Net.Quic/src/System.Net.Quic.csproj ++++ b/src/runtime/src/libraries/System.Net.Quic/src/System.Net.Quic.csproj +@@ -1,7 +1,7 @@ +  + + true +- $(NetCoreAppCurrent)-windows;$(NetCoreAppCurrent)-Linux;$(NetCoreAppCurrent)-OSX;$(NetCoreAppCurrent)-FreeBSD;$(NetCoreAppCurrent) ++ $(NetCoreAppCurrent)-Linux;$(NetCoreAppCurrent)-OSX;$(NetCoreAppCurrent)-FreeBSD;$(NetCoreAppCurrent) + true + + +diff --git a/src/runtime/src/libraries/System.Net.Quic/tests/FunctionalTests/System.Net.Quic.Functional.Tests.csproj b/src/runtime/src/libraries/System.Net.Quic/tests/FunctionalTests/System.Net.Quic.Functional.Tests.csproj +index 62b1be2da62..45b87e1dddb 100644 +--- a/src/runtime/src/libraries/System.Net.Quic/tests/FunctionalTests/System.Net.Quic.Functional.Tests.csproj ++++ b/src/runtime/src/libraries/System.Net.Quic/tests/FunctionalTests/System.Net.Quic.Functional.Tests.csproj +@@ -2,7 +2,7 @@ + + true + true +- $(NetCoreAppCurrent)-windows;$(NetCoreAppCurrent)-Unix ++ $(NetCoreAppCurrent)-Unix + true + + +diff --git a/src/runtime/src/libraries/System.Net.Requests/src/System.Net.Requests.csproj b/src/runtime/src/libraries/System.Net.Requests/src/System.Net.Requests.csproj +index d16970c9a19..6a5034037a3 100644 +--- a/src/runtime/src/libraries/System.Net.Requests/src/System.Net.Requests.csproj ++++ b/src/runtime/src/libraries/System.Net.Requests/src/System.Net.Requests.csproj +@@ -1,7 +1,7 @@ + + + true +- $(NetCoreAppCurrent)-windows;$(NetCoreAppCurrent)-Unix;$(NetCoreAppCurrent) ++ $(NetCoreAppCurrent)-Unix;$(NetCoreAppCurrent) + + $(NoWarn);SYSLIB0014 + +diff --git a/src/runtime/src/libraries/System.Net.Security/src/System.Net.Security.csproj b/src/runtime/src/libraries/System.Net.Security/src/System.Net.Security.csproj +index e030690763e..ad96b0fb669 100644 +--- a/src/runtime/src/libraries/System.Net.Security/src/System.Net.Security.csproj ++++ b/src/runtime/src/libraries/System.Net.Security/src/System.Net.Security.csproj +@@ -1,7 +1,7 @@ + + + true +- $(NetCoreAppCurrent)-windows;$(NetCoreAppCurrent)-Linux;$(NetCoreAppCurrent)-FreeBSD;$(NetCoreAppCurrent)-Android;$(NetCoreAppCurrent)-OSX;$(NetCoreAppCurrent)-iOS;$(NetCoreAppCurrent)-tvOS;$(NetCoreAppCurrent) ++ $(NetCoreAppCurrent)-Linux;$(NetCoreAppCurrent)-FreeBSD;$(NetCoreAppCurrent)-Android;$(NetCoreAppCurrent)-OSX;$(NetCoreAppCurrent)-iOS;$(NetCoreAppCurrent)-tvOS;$(NetCoreAppCurrent) + + $(DefineConstants);PRODUCT + true +diff --git a/src/runtime/src/libraries/System.Net.Security/tests/FunctionalTests/System.Net.Security.Tests.csproj b/src/runtime/src/libraries/System.Net.Security/tests/FunctionalTests/System.Net.Security.Tests.csproj +index 7c3d432f34c..7fd430a9220 100644 +--- a/src/runtime/src/libraries/System.Net.Security/tests/FunctionalTests/System.Net.Security.Tests.csproj ++++ b/src/runtime/src/libraries/System.Net.Security/tests/FunctionalTests/System.Net.Security.Tests.csproj +@@ -2,7 +2,7 @@ + + true + true +- $(NetCoreAppCurrent)-windows;$(NetCoreAppCurrent)-Unix;$(NetCoreAppCurrent)-Browser;$(NetCoreAppCurrent)-OSX;$(NetCoreAppCurrent)-iOS ++ $(NetCoreAppCurrent)-Unix;$(NetCoreAppCurrent)-Browser;$(NetCoreAppCurrent)-OSX;$(NetCoreAppCurrent)-iOS + true + true + +diff --git a/src/runtime/src/libraries/System.Net.Security/tests/UnitTests/System.Net.Security.Unit.Tests.csproj b/src/runtime/src/libraries/System.Net.Security/tests/UnitTests/System.Net.Security.Unit.Tests.csproj +index 1dd366e72a0..6a184f9d405 100644 +--- a/src/runtime/src/libraries/System.Net.Security/tests/UnitTests/System.Net.Security.Unit.Tests.csproj ++++ b/src/runtime/src/libraries/System.Net.Security/tests/UnitTests/System.Net.Security.Unit.Tests.csproj +@@ -10,7 +10,7 @@ + 436 + + $(NoWarn);3021 +- $(NetCoreAppCurrent)-windows;$(NetCoreAppCurrent)-Unix;$(NetCoreAppCurrent)-Browser;$(NetCoreAppCurrent)-OSX;$(NetCoreAppCurrent)-iOS;$(NetCoreAppCurrent)-Android ++ $(NetCoreAppCurrent)-Unix;$(NetCoreAppCurrent)-Browser;$(NetCoreAppCurrent)-OSX;$(NetCoreAppCurrent)-iOS;$(NetCoreAppCurrent)-Android + true + true + +diff --git a/src/runtime/src/libraries/System.Net.Sockets/src/System.Net.Sockets.csproj b/src/runtime/src/libraries/System.Net.Sockets/src/System.Net.Sockets.csproj +index 61f9c6fa2d4..2674e098d82 100644 +--- a/src/runtime/src/libraries/System.Net.Sockets/src/System.Net.Sockets.csproj ++++ b/src/runtime/src/libraries/System.Net.Sockets/src/System.Net.Sockets.csproj +@@ -1,7 +1,7 @@ + + + true +- $(NetCoreAppCurrent)-windows;$(NetCoreAppCurrent)-Unix;$(NetCoreAppCurrent) ++ $(NetCoreAppCurrent)-Unix;$(NetCoreAppCurrent) + + + +diff --git a/src/runtime/src/libraries/System.Net.Sockets/tests/FunctionalTests/System.Net.Sockets.Tests.csproj b/src/runtime/src/libraries/System.Net.Sockets/tests/FunctionalTests/System.Net.Sockets.Tests.csproj +index 884db1eea54..86517b47af6 100644 +--- a/src/runtime/src/libraries/System.Net.Sockets/tests/FunctionalTests/System.Net.Sockets.Tests.csproj ++++ b/src/runtime/src/libraries/System.Net.Sockets/tests/FunctionalTests/System.Net.Sockets.Tests.csproj +@@ -2,7 +2,7 @@ + + true + true +- $(NetCoreAppCurrent)-windows;$(NetCoreAppCurrent)-Unix;$(NetCoreAppCurrent)-Browser ++ $(NetCoreAppCurrent)-Unix;$(NetCoreAppCurrent)-Browser + true + true + +diff --git a/src/runtime/src/libraries/System.Net.WebSockets/src/System.Net.WebSockets.csproj b/src/runtime/src/libraries/System.Net.WebSockets/src/System.Net.WebSockets.csproj +index c0c4ded0d33..b361cc90d32 100644 +--- a/src/runtime/src/libraries/System.Net.WebSockets/src/System.Net.WebSockets.csproj ++++ b/src/runtime/src/libraries/System.Net.WebSockets/src/System.Net.WebSockets.csproj +@@ -1,7 +1,7 @@ + + + True +- $(NetCoreAppCurrent)-windows;$(NetCoreAppCurrent)-Unix;$(NetCoreAppCurrent)-Browser;$(NetCoreAppCurrent) ++ $(NetCoreAppCurrent)-Unix;$(NetCoreAppCurrent)-Browser;$(NetCoreAppCurrent) + + + +diff --git a/src/runtime/src/libraries/System.Private.Xml/src/System.Private.Xml.csproj b/src/runtime/src/libraries/System.Private.Xml/src/System.Private.Xml.csproj +index 405e6375a9f..2a5bd1faacb 100644 +--- a/src/runtime/src/libraries/System.Private.Xml/src/System.Private.Xml.csproj ++++ b/src/runtime/src/libraries/System.Private.Xml/src/System.Private.Xml.csproj +@@ -1,6 +1,6 @@ + + +- $(NetCoreAppCurrent)-windows;$(NetCoreAppCurrent) ++ $(NetCoreAppCurrent) + System.Xml + true + +diff --git a/src/runtime/src/libraries/System.Resources.Extensions/tests/System.Resources.Extensions.Tests.csproj b/src/runtime/src/libraries/System.Resources.Extensions/tests/System.Resources.Extensions.Tests.csproj +index ad289dc6319..2485635439b 100644 +--- a/src/runtime/src/libraries/System.Resources.Extensions/tests/System.Resources.Extensions.Tests.csproj ++++ b/src/runtime/src/libraries/System.Resources.Extensions/tests/System.Resources.Extensions.Tests.csproj +@@ -1,6 +1,6 @@ + + +- $(NetCoreAppCurrent)-windows;$(NetCoreAppCurrent)-Unix;$(NetFrameworkMinimum) ++ $(NetCoreAppCurrent)-Unix;$(NetFrameworkMinimum) + true + + +diff --git a/src/runtime/src/libraries/System.Resources.ResourceManager/tests/System.Resources.ResourceManager.Tests.csproj b/src/runtime/src/libraries/System.Resources.ResourceManager/tests/System.Resources.ResourceManager.Tests.csproj +index 66cb937a3d1..12e027437bd 100644 +--- a/src/runtime/src/libraries/System.Resources.ResourceManager/tests/System.Resources.ResourceManager.Tests.csproj ++++ b/src/runtime/src/libraries/System.Resources.ResourceManager/tests/System.Resources.ResourceManager.Tests.csproj +@@ -4,7 +4,7 @@ + true + true + true +- $(NetCoreAppCurrent)-windows;$(NetCoreAppCurrent)-Unix ++ $(NetCoreAppCurrent)-Unix + + + +diff --git a/src/runtime/src/libraries/System.Runtime.Caching/src/System.Runtime.Caching.csproj b/src/runtime/src/libraries/System.Runtime.Caching/src/System.Runtime.Caching.csproj +index 869129ba71f..41a41f7bebb 100644 +--- a/src/runtime/src/libraries/System.Runtime.Caching/src/System.Runtime.Caching.csproj ++++ b/src/runtime/src/libraries/System.Runtime.Caching/src/System.Runtime.Caching.csproj +@@ -1,6 +1,6 @@ + + +- $(NetCoreAppCurrent)-windows;$(NetCoreAppCurrent);$(NetCoreAppMinimum)-windows;$(NetCoreAppMinimum);netstandard2.0 ++ $(NetCoreAppCurrent);$(NetCoreAppMinimum);netstandard2.0 + true + Annotations + true +diff --git a/src/runtime/src/libraries/System.Runtime.Caching/tests/System.Runtime.Caching.Tests.csproj b/src/runtime/src/libraries/System.Runtime.Caching/tests/System.Runtime.Caching.Tests.csproj +index 8f08caf9b46..ee8e300954a 100644 +--- a/src/runtime/src/libraries/System.Runtime.Caching/tests/System.Runtime.Caching.Tests.csproj ++++ b/src/runtime/src/libraries/System.Runtime.Caching/tests/System.Runtime.Caching.Tests.csproj +@@ -1,6 +1,6 @@ + + +- $(NetCoreAppCurrent);$(NetCoreAppCurrent)-windows;net48 ++ $(NetCoreAppCurrent);net48 + true + + +diff --git a/src/runtime/src/libraries/System.Runtime.Extensions/tests/System.Runtime.Extensions.Tests.csproj b/src/runtime/src/libraries/System.Runtime.Extensions/tests/System.Runtime.Extensions.Tests.csproj +index 3e3e2937781..85074f9fba2 100644 +--- a/src/runtime/src/libraries/System.Runtime.Extensions/tests/System.Runtime.Extensions.Tests.csproj ++++ b/src/runtime/src/libraries/System.Runtime.Extensions/tests/System.Runtime.Extensions.Tests.csproj +@@ -4,7 +4,7 @@ + true + true + true +- $(NetCoreAppCurrent)-windows;$(NetCoreAppCurrent)-Unix;$(NetCoreAppCurrent)-Browser ++ $(NetCoreAppCurrent)-Unix;$(NetCoreAppCurrent)-Browser + + + +diff --git a/src/runtime/src/libraries/System.Runtime.InteropServices.RuntimeInformation/tests/System.Runtime.InteropServices.RuntimeInformation.Tests.csproj b/src/runtime/src/libraries/System.Runtime.InteropServices.RuntimeInformation/tests/System.Runtime.InteropServices.RuntimeInformation.Tests.csproj +index 3edd7d47f72..db7a23c27c5 100644 +--- a/src/runtime/src/libraries/System.Runtime.InteropServices.RuntimeInformation/tests/System.Runtime.InteropServices.RuntimeInformation.Tests.csproj ++++ b/src/runtime/src/libraries/System.Runtime.InteropServices.RuntimeInformation/tests/System.Runtime.InteropServices.RuntimeInformation.Tests.csproj +@@ -1,7 +1,7 @@ +  + + true +- $(NetCoreAppCurrent)-windows;$(NetCoreAppCurrent)-Unix;$(NetCoreAppCurrent)-Browser ++ $(NetCoreAppCurrent)-Unix;$(NetCoreAppCurrent)-Browser + + + +diff --git a/src/runtime/src/libraries/System.Runtime.InteropServices/tests/System.Runtime.InteropServices.UnitTests/System.Runtime.InteropServices.Tests.csproj b/src/runtime/src/libraries/System.Runtime.InteropServices/tests/System.Runtime.InteropServices.UnitTests/System.Runtime.InteropServices.Tests.csproj +index 34964fb33f2..1a78852a17b 100644 +--- a/src/runtime/src/libraries/System.Runtime.InteropServices/tests/System.Runtime.InteropServices.UnitTests/System.Runtime.InteropServices.Tests.csproj ++++ b/src/runtime/src/libraries/System.Runtime.InteropServices/tests/System.Runtime.InteropServices.UnitTests/System.Runtime.InteropServices.Tests.csproj +@@ -1,7 +1,7 @@ + + + true +- $(NetCoreAppCurrent)-windows;$(NetCoreAppCurrent)-Unix;$(NetCoreAppCurrent)-Browser ++ $(NetCoreAppCurrent)-Unix;$(NetCoreAppCurrent)-Browser + true + true + +diff --git a/src/runtime/src/libraries/System.Runtime.Intrinsics/tests/System.Runtime.Intrinsics.Tests.csproj b/src/runtime/src/libraries/System.Runtime.Intrinsics/tests/System.Runtime.Intrinsics.Tests.csproj +index 6c0187cf21f..fef12aa096c 100644 +--- a/src/runtime/src/libraries/System.Runtime.Intrinsics/tests/System.Runtime.Intrinsics.Tests.csproj ++++ b/src/runtime/src/libraries/System.Runtime.Intrinsics/tests/System.Runtime.Intrinsics.Tests.csproj +@@ -4,7 +4,7 @@ + $(NoWarn),1718,SYSLIB0013 + true + true +- $(NetCoreAppCurrent)-windows;$(NetCoreAppCurrent)-Unix;$(NetCoreAppCurrent)-Browser ++ $(NetCoreAppCurrent)-Unix;$(NetCoreAppCurrent)-Browser + + $(Features.Replace('nullablePublicOnly', '') + +diff --git a/src/runtime/src/libraries/System.Runtime.Serialization.Formatters/tests/System.Runtime.Serialization.Formatters.Tests.csproj b/src/runtime/src/libraries/System.Runtime.Serialization.Formatters/tests/System.Runtime.Serialization.Formatters.Tests.csproj +index 378b38abb93..971c431ca2e 100644 +--- a/src/runtime/src/libraries/System.Runtime.Serialization.Formatters/tests/System.Runtime.Serialization.Formatters.Tests.csproj ++++ b/src/runtime/src/libraries/System.Runtime.Serialization.Formatters/tests/System.Runtime.Serialization.Formatters.Tests.csproj +@@ -2,7 +2,7 @@ + + true + true +- $(NetCoreAppCurrent)-windows;$(NetCoreAppCurrent)-FreeBSD;$(NetCoreAppCurrent)-illumos;$(NetCoreAppCurrent)-Solaris;$(NetCoreAppCurrent)-Linux;$(NetCoreAppCurrent)-OSX;$(NetCoreAppCurrent)-iOS;$(NetCoreAppCurrent)-tvOS;net48 ++ $(NetCoreAppCurrent)-FreeBSD;$(NetCoreAppCurrent)-illumos;$(NetCoreAppCurrent)-Solaris;$(NetCoreAppCurrent)-Linux;$(NetCoreAppCurrent)-OSX;$(NetCoreAppCurrent)-iOS;$(NetCoreAppCurrent)-tvOS;net48 + + + +diff --git a/src/runtime/src/libraries/System.Runtime/tests/NlsTests/System.Runtime.Nls.Tests.csproj b/src/runtime/src/libraries/System.Runtime/tests/NlsTests/System.Runtime.Nls.Tests.csproj +index 849edc8cd5c..2deaa7914ef 100644 +--- a/src/runtime/src/libraries/System.Runtime/tests/NlsTests/System.Runtime.Nls.Tests.csproj ++++ b/src/runtime/src/libraries/System.Runtime/tests/NlsTests/System.Runtime.Nls.Tests.csproj +@@ -3,7 +3,7 @@ + true + true + true +- $(NetCoreAppCurrent)-windows ++ + $(NoWarn),SYSLIB0013 + + +diff --git a/src/runtime/src/libraries/System.Runtime/tests/System.Runtime.Tests.csproj b/src/runtime/src/libraries/System.Runtime/tests/System.Runtime.Tests.csproj +index fc6859854dc..260dafbd372 100644 +--- a/src/runtime/src/libraries/System.Runtime/tests/System.Runtime.Tests.csproj ++++ b/src/runtime/src/libraries/System.Runtime/tests/System.Runtime.Tests.csproj +@@ -1,6 +1,6 @@ + + +- $(NetCoreAppCurrent)-windows;$(NetCoreAppCurrent)-Unix;$(NetCoreAppCurrent)-Browser ++ $(NetCoreAppCurrent)-Unix;$(NetCoreAppCurrent)-Browser + true + $(NoWarn),1718,SYSLIB0013 + true +diff --git a/src/runtime/src/libraries/System.Security.AccessControl/src/System.Security.AccessControl.csproj b/src/runtime/src/libraries/System.Security.AccessControl/src/System.Security.AccessControl.csproj +index 35fabc2416c..a461103be90 100644 +--- a/src/runtime/src/libraries/System.Security.AccessControl/src/System.Security.AccessControl.csproj ++++ b/src/runtime/src/libraries/System.Security.AccessControl/src/System.Security.AccessControl.csproj +@@ -1,7 +1,7 @@ +  + + true +- $(NetCoreAppCurrent)-windows;$(NetCoreAppCurrent) ++ $(NetCoreAppCurrent) + + + +diff --git a/src/runtime/src/libraries/System.Security.AccessControl/tests/System.Security.AccessControl.Tests.csproj b/src/runtime/src/libraries/System.Security.AccessControl/tests/System.Security.AccessControl.Tests.csproj +index 05fd95a165f..f0c167ed082 100644 +--- a/src/runtime/src/libraries/System.Security.AccessControl/tests/System.Security.AccessControl.Tests.csproj ++++ b/src/runtime/src/libraries/System.Security.AccessControl/tests/System.Security.AccessControl.Tests.csproj +@@ -1,6 +1,6 @@ + + +- $(NetCoreAppCurrent)-windows ++ + + + +diff --git a/src/runtime/src/libraries/System.Security.Cryptography.Cng/tests/System.Security.Cryptography.Cng.Tests.csproj b/src/runtime/src/libraries/System.Security.Cryptography.Cng/tests/System.Security.Cryptography.Cng.Tests.csproj +index 4bfc1719abf..cc312cffe4e 100644 +--- a/src/runtime/src/libraries/System.Security.Cryptography.Cng/tests/System.Security.Cryptography.Cng.Tests.csproj ++++ b/src/runtime/src/libraries/System.Security.Cryptography.Cng/tests/System.Security.Cryptography.Cng.Tests.csproj +@@ -1,7 +1,7 @@ + + + $(DefineConstants);TESTING_CNG_IMPLEMENTATION +- $(NetCoreAppCurrent)-windows ++ + + + +diff --git a/src/runtime/src/libraries/System.Security.Cryptography.Csp/tests/System.Security.Cryptography.Csp.Tests.csproj b/src/runtime/src/libraries/System.Security.Cryptography.Csp/tests/System.Security.Cryptography.Csp.Tests.csproj +index 59d139c7749..a8e94e72847 100644 +--- a/src/runtime/src/libraries/System.Security.Cryptography.Csp/tests/System.Security.Cryptography.Csp.Tests.csproj ++++ b/src/runtime/src/libraries/System.Security.Cryptography.Csp/tests/System.Security.Cryptography.Csp.Tests.csproj +@@ -1,6 +1,6 @@ + + +- $(NetCoreAppCurrent)-windows;$(NetCoreAppCurrent)-Unix;$(NetCoreAppCurrent)-Browser ++ $(NetCoreAppCurrent)-Unix;$(NetCoreAppCurrent)-Browser + + $(NoWarn);SYSLIB0021 + +diff --git a/src/runtime/src/libraries/System.Security.Cryptography.Pkcs/src/System.Security.Cryptography.Pkcs.csproj b/src/runtime/src/libraries/System.Security.Cryptography.Pkcs/src/System.Security.Cryptography.Pkcs.csproj +index be33237e616..426ddb38e27 100644 +--- a/src/runtime/src/libraries/System.Security.Cryptography.Pkcs/src/System.Security.Cryptography.Pkcs.csproj ++++ b/src/runtime/src/libraries/System.Security.Cryptography.Pkcs/src/System.Security.Cryptography.Pkcs.csproj +@@ -1,6 +1,6 @@ + + +- $(NetCoreAppCurrent)-windows;$(NetCoreAppCurrent);$(NetCoreAppMinimum)-windows;$(NetCoreAppMinimum);netstandard2.1;netstandard2.0;$(NetFrameworkMinimum) ++ $(NetCoreAppCurrent);$(NetCoreAppMinimum);netstandard2.1;netstandard2.0;$(NetFrameworkMinimum) + true + true + $(NoWarn);CA5384 +diff --git a/src/runtime/src/libraries/System.Security.Cryptography.Pkcs/tests/System.Security.Cryptography.Pkcs.Tests.csproj b/src/runtime/src/libraries/System.Security.Cryptography.Pkcs/tests/System.Security.Cryptography.Pkcs.Tests.csproj +index 8523c0d8296..2045f05a28e 100644 +--- a/src/runtime/src/libraries/System.Security.Cryptography.Pkcs/tests/System.Security.Cryptography.Pkcs.Tests.csproj ++++ b/src/runtime/src/libraries/System.Security.Cryptography.Pkcs/tests/System.Security.Cryptography.Pkcs.Tests.csproj +@@ -1,7 +1,7 @@ + + + true +- $(NetCoreAppCurrent)-windows;$(NetCoreAppCurrent);net48 ++ $(NetCoreAppCurrent);net48 + + + $(DefineConstants);HAVE_THUMBPRINT_OVERLOADS + true + $(NoWarn);SYSLIB0026;SYSLIB0027;SYSLIB0028 +- $(NetCoreAppCurrent)-windows;$(NetCoreAppCurrent)-Unix;$(NetCoreAppCurrent)-Android;$(NetCoreAppCurrent)-Browser;$(NetCoreAppCurrent)-OSX;$(NetCoreAppCurrent)-iOS;$(NetCoreAppCurrent)-tvOS ++ $(NetCoreAppCurrent)-Unix;$(NetCoreAppCurrent)-Android;$(NetCoreAppCurrent)-Browser;$(NetCoreAppCurrent)-OSX;$(NetCoreAppCurrent)-iOS;$(NetCoreAppCurrent)-tvOS + true + + +diff --git a/src/runtime/src/libraries/System.Security.Cryptography/src/System.Security.Cryptography.csproj b/src/runtime/src/libraries/System.Security.Cryptography/src/System.Security.Cryptography.csproj +index cf25738f6e7..29d0f0734cb 100644 +--- a/src/runtime/src/libraries/System.Security.Cryptography/src/System.Security.Cryptography.csproj ++++ b/src/runtime/src/libraries/System.Security.Cryptography/src/System.Security.Cryptography.csproj +@@ -2,7 +2,7 @@ + + true + $(DefineConstants);INTERNAL_ASYMMETRIC_IMPLEMENTATIONS +- $(NetCoreAppCurrent)-windows;$(NetCoreAppCurrent)-Unix;$(NetCoreAppCurrent)-Android;$(NetCoreAppCurrent)-OSX;$(NetCoreAppCurrent)-iOS;$(NetCoreAppCurrent)-tvOS;$(NetCoreAppCurrent)-Browser;$(NetCoreAppCurrent) ++ $(NetCoreAppCurrent)-Unix;$(NetCoreAppCurrent)-Android;$(NetCoreAppCurrent)-OSX;$(NetCoreAppCurrent)-iOS;$(NetCoreAppCurrent)-tvOS;$(NetCoreAppCurrent)-Browser;$(NetCoreAppCurrent) + $(NoWarn);CA5350;CA5351;CA5379;CA5384;SYSLIB0026 + + $(NoWarn);CS0809 +diff --git a/src/runtime/src/libraries/System.Security.Cryptography/tests/System.Security.Cryptography.Tests.csproj b/src/runtime/src/libraries/System.Security.Cryptography/tests/System.Security.Cryptography.Tests.csproj +index 50e110c0445..b32809447d3 100644 +--- a/src/runtime/src/libraries/System.Security.Cryptography/tests/System.Security.Cryptography.Tests.csproj ++++ b/src/runtime/src/libraries/System.Security.Cryptography/tests/System.Security.Cryptography.Tests.csproj +@@ -1,6 +1,6 @@ + + +- $(NetCoreAppCurrent)-windows;$(NetCoreAppCurrent)-Unix;$(NetCoreAppCurrent)-Android;$(NetCoreAppCurrent)-Browser ++ $(NetCoreAppCurrent)-Unix;$(NetCoreAppCurrent)-Android;$(NetCoreAppCurrent)-Browser + true + $(NoWarn);SYSLIB0021 + true +diff --git a/src/runtime/src/libraries/System.Security.Permissions/tests/System.Security.Permissions.Tests.csproj b/src/runtime/src/libraries/System.Security.Permissions/tests/System.Security.Permissions.Tests.csproj +index 73f50b209fb..7205c2e239a 100644 +--- a/src/runtime/src/libraries/System.Security.Permissions/tests/System.Security.Permissions.Tests.csproj ++++ b/src/runtime/src/libraries/System.Security.Permissions/tests/System.Security.Permissions.Tests.csproj +@@ -1,6 +1,6 @@ + + +- $(NetCoreAppCurrent)-windows ++ + + $(NoWarn);SYSLIB0003 + +diff --git a/src/runtime/src/libraries/System.Security.Principal.Windows/src/System.Security.Principal.Windows.csproj b/src/runtime/src/libraries/System.Security.Principal.Windows/src/System.Security.Principal.Windows.csproj +index a67d4af63eb..9fef2993b07 100644 +--- a/src/runtime/src/libraries/System.Security.Principal.Windows/src/System.Security.Principal.Windows.csproj ++++ b/src/runtime/src/libraries/System.Security.Principal.Windows/src/System.Security.Principal.Windows.csproj +@@ -1,7 +1,7 @@ + + + true +- $(NetCoreAppCurrent)-windows;$(NetCoreAppCurrent) ++ $(NetCoreAppCurrent) + + + +diff --git a/src/runtime/src/libraries/System.Security.Principal.Windows/tests/System.Security.Principal.Windows.Tests.csproj b/src/runtime/src/libraries/System.Security.Principal.Windows/tests/System.Security.Principal.Windows.Tests.csproj +index e9caf5fa463..43e03119cb3 100644 +--- a/src/runtime/src/libraries/System.Security.Principal.Windows/tests/System.Security.Principal.Windows.Tests.csproj ++++ b/src/runtime/src/libraries/System.Security.Principal.Windows/tests/System.Security.Principal.Windows.Tests.csproj +@@ -1,7 +1,7 @@ + + + true +- $(NetCoreAppCurrent)-windows ++ + + + +diff --git a/src/runtime/src/libraries/System.ServiceProcess.ServiceController/src/System.ServiceProcess.ServiceController.csproj b/src/runtime/src/libraries/System.ServiceProcess.ServiceController/src/System.ServiceProcess.ServiceController.csproj +index 518c800ae01..2b465d475b0 100644 +--- a/src/runtime/src/libraries/System.ServiceProcess.ServiceController/src/System.ServiceProcess.ServiceController.csproj ++++ b/src/runtime/src/libraries/System.ServiceProcess.ServiceController/src/System.ServiceProcess.ServiceController.csproj +@@ -1,6 +1,6 @@ + + +- $(NetCoreAppCurrent)-windows;$(NetCoreAppCurrent);$(NetCoreAppMinimum)-windows;$(NetCoreAppMinimum);netstandard2.0;$(NetFrameworkMinimum) ++ $(NetCoreAppCurrent);$(NetCoreAppMinimum);netstandard2.0;$(NetFrameworkMinimum) + true + $(NoWarn);CA2249 + true +diff --git a/src/runtime/src/libraries/System.ServiceProcess.ServiceController/tests/System.ServiceProcess.ServiceController.Tests.csproj b/src/runtime/src/libraries/System.ServiceProcess.ServiceController/tests/System.ServiceProcess.ServiceController.Tests.csproj +index 1039fad47f4..99412bc09b8 100644 +--- a/src/runtime/src/libraries/System.ServiceProcess.ServiceController/tests/System.ServiceProcess.ServiceController.Tests.csproj ++++ b/src/runtime/src/libraries/System.ServiceProcess.ServiceController/tests/System.ServiceProcess.ServiceController.Tests.csproj +@@ -1,6 +1,6 @@ + + +- $(NetCoreAppCurrent)-windows;$(NetFrameworkMinimum) ++ $(NetFrameworkMinimum) + + + +diff --git a/src/runtime/src/libraries/System.Speech/src/System.Speech.csproj b/src/runtime/src/libraries/System.Speech/src/System.Speech.csproj +index 22506f7bf96..9c53e796bd8 100644 +--- a/src/runtime/src/libraries/System.Speech/src/System.Speech.csproj ++++ b/src/runtime/src/libraries/System.Speech/src/System.Speech.csproj +@@ -1,6 +1,6 @@ + + +- $(NetCoreAppCurrent)-windows;$(NetCoreAppCurrent);$(NetCoreAppMinimum)-windows;$(NetCoreAppMinimum);netstandard2.0 ++ $(NetCoreAppCurrent);$(NetCoreAppMinimum);netstandard2.0 + true + + +diff --git a/src/runtime/src/libraries/System.Speech/tests/System.Speech.Tests.csproj b/src/runtime/src/libraries/System.Speech/tests/System.Speech.Tests.csproj +index 9139d0d2392..d81ff8a7ca1 100644 +--- a/src/runtime/src/libraries/System.Speech/tests/System.Speech.Tests.csproj ++++ b/src/runtime/src/libraries/System.Speech/tests/System.Speech.Tests.csproj +@@ -1,6 +1,6 @@ + + +- $(NetCoreAppCurrent)-windows ++ + + + +diff --git a/src/runtime/src/libraries/System.Text.Encoding.CodePages/src/System.Text.Encoding.CodePages.csproj b/src/runtime/src/libraries/System.Text.Encoding.CodePages/src/System.Text.Encoding.CodePages.csproj +index 8883abba36b..c7ff6be8fec 100644 +--- a/src/runtime/src/libraries/System.Text.Encoding.CodePages/src/System.Text.Encoding.CodePages.csproj ++++ b/src/runtime/src/libraries/System.Text.Encoding.CodePages/src/System.Text.Encoding.CodePages.csproj +@@ -1,6 +1,6 @@ + + +- $(NetCoreAppCurrent)-windows;$(NetCoreAppCurrent);$(NetCoreAppMinimum)-windows;$(NetCoreAppMinimum);netstandard2.0;$(NetFrameworkMinimum) ++ $(NetCoreAppCurrent);$(NetCoreAppMinimum);netstandard2.0;$(NetFrameworkMinimum) + true + true + true +diff --git a/src/runtime/src/libraries/System.Threading.AccessControl/src/System.Threading.AccessControl.csproj b/src/runtime/src/libraries/System.Threading.AccessControl/src/System.Threading.AccessControl.csproj +index 54c8e0bad5f..c9c91e64692 100644 +--- a/src/runtime/src/libraries/System.Threading.AccessControl/src/System.Threading.AccessControl.csproj ++++ b/src/runtime/src/libraries/System.Threading.AccessControl/src/System.Threading.AccessControl.csproj +@@ -1,6 +1,6 @@ + + +- $(NetCoreAppCurrent)-windows;$(NetCoreAppCurrent);$(NetCoreAppMinimum)-windows;$(NetCoreAppMinimum);netstandard2.0;$(NetFrameworkMinimum) ++ $(NetCoreAppCurrent);$(NetCoreAppMinimum);netstandard2.0;$(NetFrameworkMinimum) + true + true + Provides support for managing access and audit control lists for synchronization primitives. +diff --git a/src/runtime/src/libraries/System.Threading.AccessControl/tests/System.Threading.AccessControl.Tests.csproj b/src/runtime/src/libraries/System.Threading.AccessControl/tests/System.Threading.AccessControl.Tests.csproj +index 3b9e105954d..14949ff735b 100644 +--- a/src/runtime/src/libraries/System.Threading.AccessControl/tests/System.Threading.AccessControl.Tests.csproj ++++ b/src/runtime/src/libraries/System.Threading.AccessControl/tests/System.Threading.AccessControl.Tests.csproj +@@ -1,6 +1,6 @@ + + +- $(NetCoreAppCurrent)-windows;$(NetFrameworkMinimum) ++ $(NetFrameworkMinimum) + + + + true + true +- $(NetCoreAppCurrent)-windows;$(NetCoreAppCurrent) ++ $(NetCoreAppCurrent) + CA1805;IDE0059;CS1591 + $([MSBuild]::GetTargetPlatformIdentifier('$(TargetFramework)')) + +diff --git a/src/runtime/src/libraries/System.Windows.Extensions/src/System.Windows.Extensions.csproj b/src/runtime/src/libraries/System.Windows.Extensions/src/System.Windows.Extensions.csproj +index ee9cb23d69e..741c633215b 100644 +--- a/src/runtime/src/libraries/System.Windows.Extensions/src/System.Windows.Extensions.csproj ++++ b/src/runtime/src/libraries/System.Windows.Extensions/src/System.Windows.Extensions.csproj +@@ -1,6 +1,6 @@ + + +- $(NetCoreAppCurrent)-windows;$(NetCoreAppCurrent);$(NetCoreAppMinimum)-windows;$(NetCoreAppMinimum) ++ $(NetCoreAppCurrent);$(NetCoreAppMinimum) + true + true + Provides miscellaneous Windows-specific types +diff --git a/src/runtime/src/libraries/System.Windows.Extensions/tests/System.Windows.Extensions.Tests.csproj b/src/runtime/src/libraries/System.Windows.Extensions/tests/System.Windows.Extensions.Tests.csproj +index e7b45293318..089fe0ef33f 100644 +--- a/src/runtime/src/libraries/System.Windows.Extensions/tests/System.Windows.Extensions.Tests.csproj ++++ b/src/runtime/src/libraries/System.Windows.Extensions/tests/System.Windows.Extensions.Tests.csproj +@@ -1,6 +1,6 @@ + + +- $(NetCoreAppCurrent)-windows ++ + + + +-- +2.36.3 + diff --git a/user/dotnet7-build/runtime_enable-system-libunwind.diff b/user/dotnet7-build/runtime_enable-system-libunwind.diff new file mode 100644 index 0000000..69045ad --- /dev/null +++ b/user/dotnet7-build/runtime_enable-system-libunwind.diff @@ -0,0 +1,12 @@ +diff --git a/src/runtime/eng/SourceBuild.props b/src/runtime/eng/SourceBuild.props +index 32e6d9c0ba..8e2a7f9931 100644 +--- a/src/runtime/eng/SourceBuild.props ++++ b/src/runtime/eng/SourceBuild.props +@@ -51,6 +51,7 @@ + $(InnerBuildArgs) /p:DisableSourceLink=false + $(InnerBuildArgs) /p:AdditionalRuntimeIdentifierParent=$(BaseOS) + $(InnerBuildArgs) /p:PrimaryRuntimeFlavor=Mono /p:RuntimeFlavor=Mono ++ $(InnerBuildArgs) --cmakeargs -DCLR_CMAKE_USE_SYSTEM_LIBUNWIND=TRUE + + + diff --git a/user/dotnet7-build/runtime_mono-thread-coop-undefine-fortify-source.patch b/user/dotnet7-build/runtime_mono-thread-coop-undefine-fortify-source.patch new file mode 100644 index 0000000..d4cbe4d --- /dev/null +++ b/user/dotnet7-build/runtime_mono-thread-coop-undefine-fortify-source.patch @@ -0,0 +1,25 @@ +From 98054ea87ce70247bb09ceafd2ad1a0b36d2fef4 Mon Sep 17 00:00:00 2001 +Patch-Source: https://github.com/dotnet/runtime/issues/82269 +From: Antoine Martin +Date: Sat, 1 Oct 2022 09:21:58 -0400 +Subject: [PATCH] Undefine fortify-source on mono-thread-coop + +When _FORTIFY_SOURCE=2, there is a bug relating to memcpy that expresses itself. +See: https://gitlab.alpinelinux.org/alpine/aports/-/issues/14105. Alpine Linux +now sets this by default since https://gitlab.alpinelinux.org/alpine/aports/-/merge_requests/43463, +which makes mono-flavored runtime dump its core. This patch offers a workaround +by undefining _FORTIFY_SOURCE in the problematic file. + +--- +diff --git a/src/runtime/src/mono/mono/utils/mono-threads-coop.c b/src/runtime/src/mono/mono/utils/mono-threads-coop.c +index 4ed659d6605..34bb5785fba 100644 +--- a/src/runtime/src/mono/mono/utils/mono-threads-coop.c ++++ b/src/runtime/src/mono/mono/utils/mono-threads-coop.c +@@ -15,6 +15,7 @@ + #ifdef TARGET_MACH + #define _DARWIN_C_SOURCE + #endif ++#undef _FORTIFY_SOURCE + + #include + #include diff --git a/user/dotnet7-build/sdk_14239-add-zsh-compdef-completion-script.patch b/user/dotnet7-build/sdk_14239-add-zsh-compdef-completion-script.patch new file mode 100644 index 0000000..bdb120b --- /dev/null +++ b/user/dotnet7-build/sdk_14239-add-zsh-compdef-completion-script.patch @@ -0,0 +1,35 @@ +From 4c74721e1f5da9642adab03075dda2f55719ac7b Mon Sep 17 00:00:00 2001 +Patch-Source: https://github.com/dotnet/sdk/pull/14239 +From: Esgariot +Date: Mon, 19 Oct 2020 23:42:37 +0200 +Subject: [PATCH 1/1] Add zsh compdef completion script. + +Continuing off of PR 13384 in upstream. +This commit is ready to be rebased to include appropriate co-authors +before merging PR. + +--- + scripts/register-completions.zsh | 13 +++---------- + 1 file changed, 3 insertions(+), 10 deletions(-) + +diff --git a/src/sdk/scripts/register-completions.zsh b/src/sdk/scripts/register-completions.zsh +index 8eebe9a867..faa32fef71 100644 +--- a/src/sdk/scripts/register-completions.zsh ++++ b/src/sdk/scripts/register-completions.zsh +@@ -1,10 +1,3 @@ +-# zsh parameter completion for the dotnet CLI +- +-_dotnet_zsh_complete() +-{ +- local completions=("$(dotnet complete "$words")") +- +- reply=( "${(ps:\n:)completions}" ) +-} +- +-compctl -K _dotnet_zsh_complete dotnet ++#compdef dotnet ++local completions=("$(dotnet complete "$words")") ++[[ -n "$completions" ]] && compadd -- "${(ps:\n:)completions}" +-- +2.34.1 + diff --git a/user/dotnet7-runtime/APKBUILD b/user/dotnet7-runtime/APKBUILD new file mode 100644 index 0000000..58b44d1 --- /dev/null +++ b/user/dotnet7-runtime/APKBUILD @@ -0,0 +1,128 @@ +# Maintainer: Antoine Martin (ayakael) +# Contributor: Antoine Martin (ayakael) + +# secfixes: +# 7.0.3-r0: +# - CVE-2023-21808 + +pkgname=dotnet7-runtime +pkgver=7.0.3 +_bldver=7.0.103-r0 +pkgrel=0 + +# Following for dotnet build version 6.0 and up +_pkgver_macro=${pkgver%.*} +_pkgver_name=${_pkgver_macro//[.0]} +_bldver_ver=${_bldver%%-*} +pkgdesc="The .NET $_pkgver_macro Core runtime" +# x86: blocked by https://github.com/dotnet/runtime/issues/77667 +# armhf: blocked by https://github.com/dotnet/runtime/issues/77663 +# riscv64: port WIP https://github.com/dotnet/runtime/issues/36748 +arch="all !x86 !armhf !riscv64" +url=https://dotnet.microsoft.com +license="MIT" +depends=" + dotnet$_pkgver_name-hostfxr + icu-data-full + icu-libs + " +makedepends="dotnet$_pkgver_name-build=$_bldver" +subpackages=" + aspnetcore$_pkgver_name-runtime:aspnetcore_runtime:noarch + aspnetcore$_pkgver_name-targeting-pack:aspnetcore_targeting_pack:noarch + dotnet$_pkgver_name-apphost-pack:apphost_pack + dotnet$_pkgver_name-hostfxr + dotnet$_pkgver_name-targeting-pack:targeting_pack:noarch + dotnet-host:host + " +provides="dotnet$_pkgver_name=$pkgver-r$pkgrel" +options="!check" # No test suite +source="dotnet.sh.in" +builddir="$srcdir" +_libdir="/usr/lib" + +case $CARCH in + x86_64) _dotnet_arch="x64";; + aarch64) _dotnet_arch="arm64";; + armv7) _dotnet_arch="arm";; + armhf) _dotnet_arch="armv6";; + *) _dotnet_arch="$CARCH";; +esac + +build() { + sed "s|%LIBDIR%|$_libdir/dotnet|" "$srcdir"/dotnet.sh.in > "$srcdir"/dotnet.sh +} + +package() { + install -dm 755 "$pkgdir"/$_libdir/dotnet/shared + + cp -r $_libdir/dotnet/bootstrap/$_bldver_ver/shared/Microsoft.NETCore.App "$pkgdir"/$_libdir/dotnet/shared/. +} + +host() { + pkgdesc="A generic driver for the .NET Core Command Line Interface" + depends="" + + install -dm 755 \ + "$subpkgdir"/etc/profile.d \ + "$subpkgdir"/etc/dotnet \ + "$subpkgdir"/usr/bin \ + "$subpkgdir"/$_libdir/dotnet + + cp -r $_libdir/dotnet/bootstrap/$_bldver_ver/dotnet "$subpkgdir"/$_libdir/dotnet/. + ln -s $_libdir/dotnet/dotnet "$subpkgdir"/usr/bin/dotnet + echo "$_libdir/dotnet" > "$subpkgdir"/etc/dotnet/install_location + echo "$_libdir/dotnet" > "$subpkgdir"/etc/dotnet/install_location_$_dotnet_arch + install -Dm 644 "$srcdir"/dotnet.sh -t "$subpkgdir"/etc/profile.d/ +} + +hostfxr() { + pkgdesc="The .NET host resolver contains the logic to resolve and select the right version of the .NET SDK or runtime to use." + depends="dotnet-host" + provides="dotnet-hostfxr-$_pkgver_macro=$pkgver-r$pkgrel" + + install -dm 755 "$subpkgdir"/$_libdir/dotnet + + cp -r $_libdir/dotnet/bootstrap/$_bldver_ver/host "$subpkgdir"/$_libdir/dotnet/. +} + +aspnetcore_runtime() { + pkgdesc="The ASP.NET $_pkgver_macro Core runtime" + depends="dotnet$_pkgver_name-runtime" + provides="aspnetcore-runtime-$_pkgver_macro=$pkgver-r$pkgrel" + + install -dm 755 "$subpkgdir"/$_libdir/dotnet/shared + + cp -r $_libdir/dotnet/bootstrap/$_bldver_ver/shared/Microsoft.AspNetCore.App "$subpkgdir"/$_libdir/dotnet/shared/. +} + +apphost_pack() { + pkgdesc="The .NET $_pkgver_macro Core apphost pack" + provides="dotnet-apphost-pack-$_pkgver_macro=$pkgver-r$pkgrel" + + install -dm 755 "$subpkgdir"/$_libdir/dotnet/packs + + cp -r $_libdir/dotnet/bootstrap/$_bldver_ver/packs/Microsoft.NETCore.App.Host.* "$subpkgdir"/$_libdir/dotnet/packs/. +} + +targeting_pack() { + pkgdesc="The .NET $_pkgver_macro Core targeting pack" + provides="dotnet-targeting-pack-$_pkgver_macro=$pkgver-r$pkgrel" + + install -dm 755 "$subpkgdir"/$_libdir/dotnet/packs + + cp -r $_libdir/dotnet/bootstrap/$_bldver_ver/packs/Microsoft.NETCore.App.Ref "$subpkgdir"/$_libdir/dotnet/packs/. +} + +aspnetcore_targeting_pack() { + pkgdesc="The ASP.NET $_pkgver_macro Core targeting pack" + provides="aspnetcore-targeting-pack-$_pkgver_macro=$pkgver-r$pkgrel" + + install -dm 755 "$subpkgdir"/$_libdir/dotnet/packs + + cp -r $_libdir/dotnet/bootstrap/$_bldver_ver/packs/Microsoft.AspNetCore.App.Ref "$subpkgdir"/$_libdir/dotnet/packs/. +} + +sha512sums=" +c3f31956976b77198e72a3fef3427338b6b2961f8c121416040c1105de0ce8073e46f4c2e9ef22a001aee69cbe39621c2ddac988522693110071dfae42f2e2b7 dotnet.sh.in +" diff --git a/user/dotnet7-runtime/README.md b/user/dotnet7-runtime/README.md new file mode 100644 index 0000000..3ad31c7 --- /dev/null +++ b/user/dotnet7-runtime/README.md @@ -0,0 +1,144 @@ +# dotnet7-runtime + +This is the .NET 7.0 package for Alpine Linux. + +Please report any issues [using Gitlab](https://gitlab.alpinelinux.org/alpine/aports/-/issues/new) and tag @ayakael + +# Building info + +## Generated packages +* `aspnetcore7-runtime` +* `aspnetcore7-targeting-pack` +* `dotnet7-apphost-pack` (used by dotnet7-runtime) +* `dotnet7-hostfxr` (used by dotnet-host) +* `dotnet7-runtime` +* `dotnet7-targeting-pack` +* `dotnet-host` + +## How to build dotnet7 on Alpine +As dotnet is a self-hosting compiler (thus it compiles using itself), it +requires a bootstrap for the initial build. To solve this problem, this package +follows the `stage0` proposal outlined [here](https://lists.alpinelinux.org/~alpine/devel/%3C33KG0XO61I4IL.2Z7RTAZ5J3SY6%408pit.net%3E) + +The goal of `stage0` is to bootstrap dotnet with as little intervention as +possible, thus allowing seamless Alpine upgrades. Unfortunately, upstream only +builds bootstraps for Alpine on `x86_64`, `aarch64`, and `armv7`. Thus, `stage0` +has also been designed to be crossbuild aware, allowing bootstrapping to other +platforms. + +In summary, dotnet7 is built using three different aports. + +* `community/dotnet7-stage0` +Builds minimum components for full build of dotnet7, and packages these in an initial +`dotnet7-stage0-bootstrap` package that `dotnet7-build` pulls. +* `community/dotnet7-build` +Builds full and packages dotnet7 fully using either stage0 or previoulsy built +dotnet7 build. +* `community/dotnet7-runtime` +As abuild does not allow different versions for subpackages, a different aport +is required to package runtime bits from dotnet7-build. + +## Crossbuilding with `stage0` +Crossbuilding `stage0` is a three step process: +1. Build sysroot for target platform by using `scripts/bootstrap.sh` in aports repo: +``` +./bootstrap.sh $CTARGET_ARCH +``` +2. Although not necessary, it is recommended to add Alpine repositories to + `$HOME/sysroot-$CTARGET_ARCH/etc/apk/repositories`, making sure to add required + keys. This makes it so that whatever package is not built in step 1 will + be pulled from package repos +3. Crossbuild `dotnet7-stage0` via: +``` +CHOST=$CTARGET_ARCH abuild -r +``` + +# Specification + +This package follows [package naming and contents suggested by upstream](https://docs.microsoft.com/en-us/dotnet/core/build/distribution-packaging), +with two exceptions. It installs dotnet to `/usr/lib/dotnet` (aka `$_libdir`). +In addition, the package is named `dotnet7` as opposed to `dotnet-7.0` +to match Alpine Linux naming conventions for packages with many installable versions + +# Contributing + +The steps below are for the final package. Please only contribute to a +pre-release version if you know what you are doing. Original instructions +follow. + +## General Changes + +1. Fork the main aports repo. + +2. Checkout the forked repository. + + - `git clone ssh://git@gitlab.alpinelinux.org/$USER/aports` + - `cd community/dotnet7-build` + +3. Make your changes. Don't forget to add a changelog. + +4. Do local builds. + + - `abuild -r` + +5. Fix any errors that come up and rebuild until it works locally. + +6. Commit the changes to the git repo in a git branch + + - `git checkout -b dotnet7/` + - `git add` any new patches + - `git remove` any now-unnecessary patches + - `git commit -m 'community/dotnet7-build: descriptive description'` + - `git push` + +7. Create a merge request with your changes, tagging @ayakael for review. + +8. Once the tests in the pull-request pass, and reviewers are happy, your changes + will be merged. + +## Updating to an new upstream release + +1. Fork the main aports repo. + +2. Checkout the forked repository. + + - `git clone ssh://git@gitlab.alpinelinux.org/$USER/aports` + - `cd community/dotnet7-build` + + +3. Build the new upstream source tarball. Update the versions in the + APKBUILD file, and then create a snapshot. After build, update checksum. + + - `abuild snapshot` + - `abuild checksum` + +4. Do local builds. + + - `abuild -r` + +5. Fix any errors that come up and rebuild until it works locally. Any + patches that are needed at this point should be added to the APKBUILD file + in `_patches` variable. + +6. Upload the source archive to a remote location, and update `source` variable. + +7. Commit the changes to the git repo in a git branch. + + - `git checkout -b dotnet7/` + - `git add` any new patches + - `git remove` any now-unnecessary patches + - `git commit -m 'community/dotnet7-build: upgrade to ` + - `git push` + +8. Create a merge request with your changes, tagging @ayakael for review. + +9. Once the tests in the pull-request pass, and reviewers are happy, your changes + will be merged. + +# Testing + +This package uses CI tests as defined in `check()` function. Creating a +merge-request or running a build will fire off tests and flag any issues. + +The tests themselves are contained in this external repository: +https://github.com/redhat-developer/dotnet-regular-tests/ diff --git a/user/dotnet7-runtime/dotnet.sh.in b/user/dotnet7-runtime/dotnet.sh.in new file mode 100644 index 0000000..f85eb29 --- /dev/null +++ b/user/dotnet7-runtime/dotnet.sh.in @@ -0,0 +1,12 @@ +# Set location for AppHost lookup +[ -z "$DOTNET_ROOT" ] && export DOTNET_ROOT=%LIBDIR% + +# Add dotnet tools directory to PATH +DOTNET_TOOLS_PATH="$HOME/.dotnet/tools" +case "$PATH" in + *"$DOTNET_TOOLS_PATH"* ) true ;; + * ) PATH="$PATH:$DOTNET_TOOLS_PATH" ;; +esac + +# Extract self-contained executables under HOME to avoid multi-user issues from using the default '/var/tmp' +[ -z "$DOTNET_BUNDLE_EXTRACT_BASE_DIR" ] && export DOTNET_BUNDLE_EXTRACT_BASE_DIR="${XDG_CACHE_HOME:-"$HOME"/.cache}/dotnet_bundle_extract" diff --git a/user/dotnet7-stage0/APKBUILD b/user/dotnet7-stage0/APKBUILD new file mode 100644 index 0000000..7ceaf6f --- /dev/null +++ b/user/dotnet7-stage0/APKBUILD @@ -0,0 +1,519 @@ +# Maintainer: Antoine Martin (ayakael) +# Contributor: Antoine Martin (ayakael) + +pkgname=dotnet7-stage0 +pkgver=7.0.101 +pkgrel=0 + +[ "$CBUILD" != "$CHOST" ] && _cross="-$CARCH" || _cross="" + +# Tag of tarball generator. +_gittag=v7.0.101-source-build + +# Versions of prebuilt artifacts and bootstrap tar +_artifactsver=7.0.101 +_bootstrapver="7.0.101" +_installerver=$_bootstrapver + +# Version of packages that aren't defined in git-info or badly defined +_iltoolsver=7.0.1-servicing.22579.1 +_aspnetver=7.0.1 + +# Patches to be used. String before '_' refers to repo to patch +# Look for patch notes within each patch for what they fix / where they come from +# build_* patches applies directly to $builddir +_patches=" + aspnetcore_use-linux-musl-crossgen-on-non-x64.patch + build_set-local-repo.patch + installer_2780-reprodicible-tarball.patch + installer_runtimepacks.patch + roslyn_allow-extra-params.patch + runtime_76500-mono-musl-support.patch + runtime_76500-properly-set-toolchain-for-alpine.patch + runtime_enable-runtime-marshalling.diff + runtime_make-lld-use-depend-on-existing-on-target.patch + runtime_no-additional-runtime-id.patch + sdk_dummyshim-fix.patch + sdk_fix-sdk-download.patch + " +_extra_nupkgs="https://globalcdn.nuget.org/packages/stylecop.analyzers.1.2.0-beta.435.nupkg" + +_pkgver_macro=${pkgver%.*} +_pkgver_prior=1 +_pkgver_name="${_pkgver_macro//[.0]}" +pkgdesc="The .NET Core stage0 bits for dotnet build" +# x86: blocked by https://github.com/dotnet/runtime/issues/77667 +# armhf: blocked by https://github.com/dotnet/runtime/issues/77663 +# riscv64: port WIP https://github.com/dotnet/runtime/issues/36748 +#arch="all !x86 !armhf !riscv64" +url=https://dotnet.microsoft.com +license="MIT" +options="!check" # Testsuite in main -build aport +subpackages=" + dotnet$_pkgver_name-stage0-artifacts:artifacts:noarch + dotnet$_pkgver_name-stage0-bootstrap + " +source=" + https://repo.gpg.nz/apk/archives/dotnet-${_gittag/release\/}.tar.xz + dotnet-sdk-$_bootstrapver-linux-musl-x64.noextract::https://dotnetcli.azureedge.net/dotnet/Sdk/$_bootstrapver/dotnet-sdk-$_bootstrapver-linux-musl-x64.tar.gz + dotnet-sdk-$_bootstrapver-linux-musl-arm64.noextract::https://dotnetcli.azureedge.net/dotnet/Sdk/$_bootstrapver/dotnet-sdk-$_bootstrapver-linux-musl-arm64.tar.gz + dotnet-sdk-$_bootstrapver-linux-musl-arm.noextract::https://dotnetcli.azureedge.net/dotnet/Sdk/$_bootstrapver/dotnet-sdk-$_bootstrapver-linux-musl-arm.tar.gz + dotnet-sdk-$_bootstrapver-linux-musl-s390x.noextract::https://repo.gpg.nz/apk/archives/dotnet-sdk-$_bootstrapver-linux-musl-s390x.tar.gz + dotnet-sdk-$_bootstrapver-linux-musl-ppc64le.noextract::https://repo.gpg.nz/apk/archives/dotnet-sdk-$_bootstrapver-linux-musl-ppc64le.tar.gz + Private.SourceBuilt.Artifacts.$_artifactsver.noextract::https://dotnetcli.azureedge.net/source-built-artifacts/assets/Private.SourceBuilt.Artifacts.$_artifactsver.tar.gz + $_extra_nupkgs + $_patches + " + +makedepends_host=" + alpine-release + autoconf + automake + bash + binutils + clang + cmake + findutils + g++ + gcc + grep + icu-dev + krb5-dev + libintl + libstdc++ + libucontext-dev + libunwind-dev + libxml2-dev + libxml2-utils + linux-headers + lttng-ust-dev + musl-dev + musl-utils + openssl-dev + pigz + unzip + zip + zlib-dev + " +case $CARCH in + s390x|x86) ;; + *) makedepends_host="$makedepends_host lld-dev";; +esac +makedepends_build=" + $makedepends_host + binutils$_cross + git + gcc$_cross + llvm + llvm-dev + python3 + xz + " +case $CBUILD_ARCH in + x86_64) _dotnet_arch="x64";; + aarch64) _dotnet_arch="arm64";; + armv7|armhf) _dotnet_arch="arm";; + i586) _dotnet_arch="x86";; + *) _dotnet_arch=$CBUILD_ARCH;; +esac +case $CTARGET_ARCH in + x86_64) _dotnet_target="x64";; + aarch64) _dotnet_target="arm64";; + armv7|armhf) _dotnet_target="arm";; + i586) _dotnet_target="x86";; + *) _dotnet_target=$CTARGET_ARCH;; +esac + +builddir="$srcdir"/dotnet-${_gittag/release\/} +_packagesdir="$srcdir"/local-packages +_libdir="/usr/lib" +_nugetdir="$srcdir"/nuget +_downloaddir="$srcdir"/local-downloads +_cli_root="$srcdir"/bootstrap +_nuget="$_cli_root/dotnet nuget" +_outputdir="$srcdir"/artifacts +# if true, then within pipeline environment, in which case send logs there +# to be scooped +if [ -d "$APORTSDIR/logs" ]; then + _logdir="$APORTSDIR"/logs/$pkgname +else + _logdir="$srcdir"/logs +fi + +# generates tarball containing all components built by dotnet +snapshot() { + local _pkg="$srcdir"/${builddir##*/}.tar + ulimit -n 4096 + if [ -d "$srcdir" ]; then + cd "$srcdir" + else + mkdir -p "$srcdir" && cd "$srcdir" + fi + if [ -d "installer" ]; then + cd "$srcdir"/installer + else + git clone https://github.com/dotnet/installer && cd "$srcdir"/installer + fi + git checkout $_gittag + + sed 's|/src/installer||' "$startdir"/installer_2780-reprodicible-tarball.patch | patch -Np1 || true + sed 's|/src/installer||' "$startdir"/installer_fix-version.patch | patch -Np1 || true + if [ ! -d "$_cli_root" ]; then + local _cli_root= + fi + + _InitializeDotNetCli="$_cli_root" DOTNET_INSTALL_DIR="$_cli_root" DotNetBuildFromSource=true ./build.sh \ + /p:ArcadeBuildTarball=true \ + /p:TarballDir=$builddir \ + /p:TarballFilePath=$_pkg + + msg "Compressing ${builddir##*/}.tar to $SRCDEST" + xz -T0 -9 -vv -e -c > "$SRCDEST"/${builddir##*/}.tar.xz < "$_pkg" + + cd "$startdir" + abuild checksum +} + +prepare() { + default_prepare + + # Parallel restore is broken on mono-based builds since dotnet7 + # see https://github.com/dotnet/runtime/issues/77364 + # A workaround via runtime_enable-runtime-marshalling.diff + case $CARCH in + s390x|ppc64le) + msg "runtime_enable-runtime-marshalling.diff" + patch -p1 -i "$srcdir"/runtime_enable-runtime-marshalling.diff + ;; + esac + + # adjusts sdk version to expected + sed "s|7.0.100|$_bootstrapver|" -i "$builddir"/src/sdk/global.json + sed "s|7.0.100|$_bootstrapver|" -i "$builddir"/src/aspnetcore/global.json + + for i in runtime sdk installer aspnetcore roslyn; do + sed "s|@@PACKAGESDIR@@|$_packagesdir|" -i "$builddir"/src/$i/NuGet.config + done + + mkdir -p "$_cli_root" + mkdir -p $_packagesdir $_downloaddir $_outputdir $_nugetdir $_logdir + + # links logfiles to pipeline logs for easy pickup in pipelines + mkdir -p "$_logdir" "$builddir"/artifacts + ln -s "$_logdir" "$builddir"/artifacts/logs + ln -s "$_logdir" "$builddir"/artifacts/log + for i in "$builddir"/src/*; do + if [ -f "$i" ]; then + continue + fi + mkdir -p "$_logdir"/${i##*\/} "$builddir"/src/${i##*\/}/artifacts + ln -s "$_logdir"/${i##*\/} "$builddir"/src/${i##*\/}/artifacts/log + done + + tar --use-compress-program="pigz" -xf "$srcdir"/dotnet-sdk-$_pkgver_macro*$_dotnet_arch.noextract -C "$_cli_root" --no-same-owner + + for i in $_extra_nupkgs; do + $_nuget push "$srcdir"/${i##*/} --source="$_packagesdir" + done +} + +_runtime() { + "$_cli_root"/dotnet build-server shutdown + if [ -z "${_runtimever+x}" ]; then + local _runtimever=$(grep OutputPackageVersion "$builddir"/git-info/runtime.props | sed -E 's|||g' | tr -d ' ') + fi + local _runtimever_ns=$(awk '{if($2 ~ "Name=\"VS.Redist.Common.NetCore.SharedFramework.x64.*\""){print $3}}' "$builddir"/src/installer/eng/Version.Details.xml | awk -F '"' '{print $2}') + + msg "[$(date)] Building runtime version $_runtimever" + cd "$builddir"/src/runtime + + local args=" + -c Release + -bl + -clang + -arch $_dotnet_target + /consoleLoggerParameters:ShowTimestamp + /p:NoPgoOptimize=true + /p:EnableNgenOptimization=false + /p:GitCommitHash=$(cat ./.git/HEAD) + " + if [ "$CBUILD" != "$CHOST" ]; then + local args="$args -cross" + fi + if [ "$_runtimever" != "${_runtimever##*-}" ]; then + local args="$args /p:VersionSuffix=${_runtimever##*-}" + fi + ROOTFS_DIR="$CBUILDROOT" ./build.sh $args + + for i in artifacts/packages/*/*/*.nupkg; do + $_nuget push $i --source="$_packagesdir" + done + mkdir -p "$_downloaddir"/Runtime/$_runtimever_ns + cp artifacts/packages/*/*/dotnet-runtime-*-*.tar.gz $_downloaddir/Runtime/$_runtimever_ns +} + +_roslyn() { + "$_cli_root"/dotnet build-server shutdown + if [ -z "${_roslynver+x}" ]; then + local _roslynver=$(grep OutputPackageVersion "$builddir"/git-info/roslyn.props | sed -E 's|||g' | tr -d ' ') + fi + local _roslynver_ns=$(awk '{if($2 == "Name=\"Microsoft.Net.Compilers.Toolset\""){print $3}}' "$builddir"/src/installer/eng/Version.Details.xml | awk -F '"' '{print $2}') + + msg "[$(date)] Building roslyn version $_roslynver" + cd "$builddir"/src/roslyn + + local args=" + -c Release + -bl + /consoleLoggerParameters:ShowTimestamp + /p:GitCommitHash=$(cat ./.git/HEAD) + " + if [ "$_roslynver" != "${_roslynver##*-}" ]; then + local args="$args /p:VersionSuffix=${_roslynver##*-}" + fi + DotNetBuildFromSource=false ./eng/build.sh --restore $args /p:UseAppHost=false + ./eng/build.sh --restore --build --pack $args + for i in artifacts/packages/*/*/*.nupkg; do + $_nuget push $i --source="$_packagesdir" + done +} + +_sdk() { + "$_cli_root"/dotnet build-server shutdown + if [ -z "${_sdkver+x}" ]; then + local _sdkver=$(grep OutputPackageVersion "$builddir"/git-info/sdk.props | sed -E 's|||g' | tr -d ' ') + fi + local _sdkver_ns=$(awk '{if($2 == "Name=\"Microsoft.NET.Sdk\""){print $3}}' "$builddir"/src/installer/eng/Version.Details.xml | awk -F '"' '{print $2}') + + msg "[$(date)] Building sdk version $_sdkver" + cd "$builddir"/src/sdk + + local args=" + -c Release + -bl + /consoleLoggerParameters:ShowTimestamp + /p:GitCommitHash=$(cat ./.git/HEAD) + /p:Architecture=$_dotnet_target + " + if [ "$_sdkver" != "${_sdkver##*-}" ]; then + local args="$args /p:VersionSuffix=${_sdkver##*-}" + fi + + # ArgumentsReflector doesn't build correctly when built from source + DotNetBuildFromSource=false dotnet build src/Tests/ArgumentsReflector/ArgumentsReflector.csproj $args + ./build.sh --pack $args + + for i in artifacts/packages/*/*/*.nupkg; do + $_nuget push $i --source="$_packagesdir" + done + mkdir -p "$_downloaddir"/Sdk/$_sdkver_ns + cp artifacts/packages/*/*/dotnet-toolset-internal-*.zip "$_downloaddir"/Sdk/$_sdkver_ns +} + +_aspnetcore() { + "$_cli_root"/dotnet build-server shutdown + if [ -z "${_aspnetver+x}" ]; then + local _aspnetver=$(grep OutputPackageVersion "$builddir"/git-info/aspnetcore.props | sed -E 's|||g' | tr -d ' ') + fi + local _aspnetver_ns=$(awk '{if($2 == "Name=\"Microsoft.AspNetCore.App.Ref.Internal\""){print $3}}' "$builddir"/src/installer/eng/Version.Details.xml | awk -F '"' '{print $2}') + + msg "[$(date)] Build aspnetcore version $_aspnetver" + cd "$builddir"/src/aspnetcore + local args=" + -c Release + -bl + --os-name linux-musl + -arch $_dotnet_target + -no-build-nodejs + /consoleLoggerParameters:ShowTimestamp + /p:BuildNodeJs=false + /p:GitCommitHash=$(cat ./.git/HEAD) + /p:DotNetAssetRootUrl=file://$_downloaddir/ + /p:EnablePackageValidation=false + " + if [ "$_dotnet_target" = "x86" ] || [ "$_dotnet_target" = "ppc64le" ]; then + local args="$args /p:CrossgenOutput=false" + fi + if [ "$_aspnetver" != "${_aspnetver##*-}" ]; then + local args="$args /p:VersionSuffix=${_aspnetver##*-}" + fi + ./eng/build.sh --pack $args + + for i in artifacts/packages/*/*/*.nupkg; do + $_nuget push $i --source="$_packagesdir" + done + mkdir -p "$_downloaddir"/aspnetcore/Runtime/$_aspnetver_ns + cp artifacts/installers/*/aspnetcore-runtime-internal-*-linux-musl-$_dotnet_target.tar.gz "$_downloaddir"/aspnetcore/Runtime/$_aspnetver_ns + cp artifacts/installers/*/aspnetcore_base_runtime.version "$_downloaddir"/aspnetcore/Runtime/$_aspnetver_ns +} + +_installer() { + "$_cli_root"/dotnet build-server shutdown + msg "[$(date)] Building installer version $_installerver" + cd "$builddir"/src/installer + + local args=" + -c Release + -bl + /consoleLoggerParameters:ShowTimestamp + /p:OSName=linux-musl + /p:HostOSName=linux-musl + /p:Architecture=$_dotnet_target + /p:CoreSetupBlobRootUrl=file://$_downloaddir/ + /p:DotnetToolsetBlobRootUrl=file://$_downloaddir/ + /p:GitCommitHash=$(cat ./.git/HEAD) + /p:GitCommitCount=$(grep GitCommitCount "$builddir"/git-info/installer.props | sed -E 's|||g' | tr -d ' ') + /p:PublicBaseURL=file://$_downloaddir/ + " + if [ "$_installerver" != "${_installerver##*-}" ]; then + local args="$args /p:VersionSuffix=${_installerver##*-}" + fi + if [ "$_dotnet_target" = "x86" ]; then + local args="$args /p:DISABLE_CROSSGEN=True" + fi + ./build.sh $args + + mkdir -p "$_downloaddir"/installer/$_installerver + cp artifacts/packages/*/*/dotnet-sdk-$_pkgver_macro*.tar.gz "$_downloaddir"/installer/$_installerver +} + +build() { + export _InitializeDotNetCli=$_cli_root + export DOTNET_INSTALL_DIR=$_cli_root + export PATH="$_cli_root:$PATH" + export NUGET_PACKAGES=$_nugetdir + export DotNetBuildFromSource=true + export DOTNET_CLI_TELEMETRY_OPTOUT=true + export DOTNET_SKIP_FIRST_TIME_EXPERIENCE=true + export SHELL=/bin/bash + export EXTRA_CPPFLAGS="${CPPFLAGS/--sysroot=$CBUILDROOT}" + export EXTRA_CXXFLAGS="${CXXFLAGS/--sysroot=$CBUILDROOT}" + export EXTRA_CFLAGS="${CFLAGS/--sysroot=$CBUILDROOT}" + export EXTRA_LDFLAGS="$LDFLAGS" + unset CXXFLAGS CFLAGS LDFLAGS CPPFLAGS + + ulimit -n 4096 + + _runtime + _roslyn + _sdk + _aspnetcore + _installer +} + +package() { + # lua-aports / buildrepo doesn't know to always build stage0 first when dealing + # with virtual packages. Thus, we need to depend on an empty stage0 pkg that + # dotnetx-build will pull, thus forcing build of stage0 first + mkdir -p "$pkgdir" +} + +bootstrap() { + # allows stage0 to be pulled by dotnetx-build if first build of dotnetx + provides="dotnet$_pkgver_name-bootstrap" + provider_priority=$_pkgver_prior + + install -dm 755 \ + "$subpkgdir"/$_libdir/dotnet/bootstrap/$pkgver/docs \ + "$subpkgdir"/$_libdir/dotnet/bootstrap/$pkgver/comp \ + "$subpkgdir"/$_libdir/dotnet/artifacts/$pkgver + + # unpack build artifacts to bootstrap subdir for use by future builds + tar --use-compress-program="pigz" \ + -xf "$_downloaddir"/installer/$_installerver/dotnet-sdk-$_pkgver_macro*.tar.gz \ + -C "$subpkgdir"/$_libdir/dotnet/bootstrap/$pkgver/ \ + --no-same-owner + + local _iltoolsArray=" + runtime.*.Microsoft.NETCore.TestHost.*.nupkg + runtime.*.Microsoft.NETCore.ILAsm.*.nupkg + runtime.*.Microsoft.NETCore.ILDAsm.*.nupkg + " + + local _nupkgsArray=" + $_iltoolsArray + Microsoft.NETCore.App.Host.*.*.nupkg + Microsoft.NETCore.App.Runtime.*.*.nupkg + Microsoft.NETCore.App.Crossgen2.*.*.nupkg + runtime.*.Microsoft.NETCore.DotNetHost.*.nupkg + runtime.*.Microsoft.NETCore.DotNetHostPolicy.*.nupkg + runtime.*.Microsoft.NETCore.DotNetHostResolver.*.nupkg + runtime.*.Microsoft.NETCore.DotNetAppHost.*.nupkg + Microsoft.AspNetCore.App.Runtime.linux-musl-*.*.nupkg + " + + # copies artifacts to artifacts dir for use by future dotnet builds + for i in $_nupkgsArray; do install -Dm644 "$_packagesdir"/$i "$subpkgdir"/$_libdir/dotnet/artifacts/$pkgver/ || true; done + for i in $_extra_nupkgs; do install -Dm644 "$srcdir"/${i##*/} "$subpkgdir"/$_libdir/dotnet/artifacts/$pkgver/; done + + msg "Changing iltools version to $_iltoolsver" + # source-build expects a certain version of ilasm, ildasm and testhost + # following adjusts version + for i in $_iltoolsArray; do + local nupath="$subpkgdir"$_libdir/dotnet/artifacts/$pkgver/$i + local nupath=$(find $nupath || true) + local nupkg="${nupath##*/}" + local nuname="${nupkg/.nupkg}" + if [ -z "${nuname/*rtm*}" ] || [ -z "${nuname/*servicing*}" ]; then + nuname=${nuname%-*} + fi + local nuname="${nuname%.*.*.*}" + local nuver="${nupkg/$nuname.}" + local nuver="${nuver/.nupkg}" + local nuspec="$nuname.nuspec" + if [ ! "$nupath" ] || [ "$nupath" = "${nupath/$nuver/$_iltoolsver}" ]; then + continue + fi + # shellcheck disable=SC2094 + unzip -p "$nupath" $nuspec | sed "s|$nuver|$_iltoolsver|" > "$srcdir"/$nuspec + cd "$srcdir" + zip -u "$nupath" $nuspec + mv "$nupath" "${nupath/$nuver/$_iltoolsver}" + done +} + +# build relies on a plethora of nupkgs which are provided by this Artifacts file. +# stage0 sources these from Microsoft, which then allows bootstrap to build +# locally hosted versions. The following unpacks built tarball into directory +# for use by future builds. +artifacts() { + pkgdesc="Internal package for building .NET $_pkgver_macro Software Development Kit" + # hack to allow artifacts to pull itself + provides="dotnet$_pkgver_name-bootstrap-artifacts" + provider_priority=$_pkgver_prior + + # directory creation + install -dm 755 \ + "$subpkgdir"/$_libdir/dotnet/artifacts/$pkgver \ + "$subpkgdir"/usr/share/licenses + + # extract artifacts to artifacts dir for use by future dotnet builds + tar --use-compress-program="pigz" \ + -xf "$srcdir"/Private.SourceBuilt.Artifacts.*.noextract \ + -C "$subpkgdir"/$_libdir/dotnet/artifacts/$pkgver/ \ + --no-same-owner \ + --exclude '*x64*' +} + +sha512sums=" +5256c5467de0d92e1c78e80a3c571ba842bff3ab487e88061dfebfde1b8052c37263369e379dfd762194409d2bd31692bdfe6fc2ba2622530c5c6695aff1fbb1 dotnet-v7.0.101-source-build.tar.xz +e487532682df94378387acf07a11583a982418a46ccd07a20258ae8850fd549153d468771d9e44171790322f5fb3571be0ea242863853c5f95ca6697463f7262 dotnet-sdk-7.0.101-linux-musl-x64.noextract +341819fe59a7eb2199bafd4e01bd329f522d20e9f8f796676dfd7cdbfe59e1344eeeca6aadbce70fab44d655036ab86bd2b34135c732ebec068009b63f8f510f dotnet-sdk-7.0.101-linux-musl-arm64.noextract +a454cbffb42b218d3d2d37fdb68f2a15fc32319472abc61d018701b7845d9828c65bb1157eab0789c7073a411fd4744e969bec912e0a4b737c31714acd80006f dotnet-sdk-7.0.101-linux-musl-arm.noextract +bfbc6d9417347c90d2de334d07b67a650c4f8dee13725cd47eb0e8268ed6f405ecc84b4720a9b78047a987f6ba907a8af8b9c1c6639385e54c5171442f3b3466 dotnet-sdk-7.0.101-linux-musl-s390x.noextract +17b5f8856024baf6e5b61e095e1da8fb32b1b45b925885408efc97ebd06ac79b4dcf7dc661ef60910136f340bbc35c0ccddbe007f5e4ee0abaa438d27caf7bf3 dotnet-sdk-7.0.101-linux-musl-ppc64le.noextract +898df8010f0486b2b0afad8f9d7b830d60db42336cc1fdcc603bc8e43e46b8d071757370a2279030231b0843ffd31949c1f6b4452e726123088852913466acca Private.SourceBuilt.Artifacts.7.0.101.noextract +2ede8d9352a51861a5b2550010ff55da8241381a6fa6cc49e025f1c289b230b8c0177e93850de4ea8b6f702c1f2d50d81a9f4d890ca9441c257b614f2a5e05dd stylecop.analyzers.1.2.0-beta.435.nupkg +ae8588bf0ee3c60d2d511241a9acdef209218390e9609cbd920c9d88b9180519f5dfba430534d1f97a7efbf891c57265403e13db2d23730c0a4d6a75a9c5602d aspnetcore_use-linux-musl-crossgen-on-non-x64.patch +97d3194f8ad96521002e3693261451154d6ba567ea807e9daa4d55e1cda0693791fab4443e3d0d0fa8bc51ba53dd9b4077c723fa8f1f34cdd1661df828ce4227 build_set-local-repo.patch +0215d0fdbb4f46ab1cab547076cff39ccbe3e6ef0fdd26a60a562c60e1c022ee14286692a3880d75c665410a3db137f817e04c8c311a3960f8dede0036488741 installer_2780-reprodicible-tarball.patch +1fe84c55f63c3b32fe7c58aa23ba25e2e9ddeee21acd664947206b8a9678bf38e2c1a95252243d7981dd9423bda49f40dd463fa6e619fe7f329a31794829ee88 installer_runtimepacks.patch +ead82bb2276acc273d661e42597c76661984143bb7736cd6a64241f51b2da3b9b8625b6232e24c7f9a6965436f65a5b7bf1ba7669a01e6b9774ebd3a62f7ebe0 roslyn_allow-extra-params.patch +43355fdb9531a08a9a141b016c049cc61d779e797f182456f56e5dc3af76fd31643d84d7ad7982080921681d2bbfc7bbaaa64f50c3899b023222eb0d841fbb2a runtime_76500-mono-musl-support.patch +24f3fed752922d2ca3c151f21fedf6a257c7c74a155105a1aa09cdc847ba24e496212cb2d8548b134a8901c7da8d78c27fa93579211f7bdeadc598f808fed4a8 runtime_76500-properly-set-toolchain-for-alpine.patch +218e26f752de0e1dbb7a62b142a894cfda9a8a59d09c60525039dd7d99847dd17f181ef8ff2b6ad9ce74001ad771c78093c61c8882de58f16070d74be36b2765 runtime_enable-runtime-marshalling.diff +2ff8b42bce25b8389177bb6389bfdc796c104c5d992e72a6e7c8af0cda8f70f26f480071db380df78db745eee72e4343220f79ec6b22aa880fa2531eda8c8593 runtime_make-lld-use-depend-on-existing-on-target.patch +96e77705c3c88058f5e246822cee76c14c18d7ef2deb47b042e289dfe1e695bdcfa650d50b099f58f65966c8a3a6c818fc72e0893ba31acc85a78cb3cbd05c54 runtime_no-additional-runtime-id.patch +b5f28aa8bdbd24c589276a60893859965eb78b0abfbdac7a6e86715ac87e3bbd8bc271852ff62a41ea83b53af02e1c1814abcccc8862c07b3ac74633d1be0a32 sdk_dummyshim-fix.patch +5fe72c206564ad6a3d96e7a32cf76509819cdbe2620f67266e100e7426c04a3e861985ffd0999afc6baf28a04606e1124482b8a0f46dae3095da59bd57e31697 sdk_fix-sdk-download.patch +" diff --git a/user/dotnet7-stage0/README.md b/user/dotnet7-stage0/README.md new file mode 100644 index 0000000..9bce6c4 --- /dev/null +++ b/user/dotnet7-stage0/README.md @@ -0,0 +1,140 @@ +# dotnet7-stage0 + +This is the .NET 7.0 package for Alpine Linux. + +Please report any issues [using Gitlab](https://gitlab.alpinelinux.org/alpine/aports/-/issues/new) and tag @ayakael + +# Building info + +## Generated packages +* `dotnet7` (empty package to go around `buildrepo` build ordering bug) +* `dotnet7-stage0-bootstrap` (packages binary bootstrap artifacts) +* `dotnet7-stage0-artifacts` (packages non-binary bootstrap artifacts) + +## How to build dotnet7 on Alpine +As dotnet is a self-hosting compiler (thus it compiles using itself), it +requires a bootstrap for the initial build. To solve this problem, this package +follows the `stage0` proposal outlined [here](https://lists.alpinelinux.org/~alpine/devel/%3C33KG0XO61I4IL.2Z7RTAZ5J3SY6%408pit.net%3E) + +The goal of `stage0` is to bootstrap dotnet with as little intervention as +possible, thus allowing seamless Alpine upgrades. Unfortunately, upstream only +builds bootstraps for Alpine on `x86_64`, `aarch64`, and `armv7`. Thus, `stage0` +has also been designed to be crossbuild aware, allowing bootstrapping to other +platforms. + +In summary, dotnet7 is built using three different aports. + +* `community/dotnet7-stage0` +Builds minimum components for full build of dotnet7, and packages these in an initial +`dotnet7-stage0-bootstrap` package that `dotnet7-build` pulls. +* `community/dotnet7-build` +Builds full and packages dotnet7 fully using either stage0 or previoulsy built +dotnet7 build. +* `community/dotnet7-runtime` +As abuild does not allow different versions for subpackages, a different aport +is required to package runtime bits from dotnet7-build. + +## Crossbuilding with `stage0` +Crossbuilding `stage0` is a three step process: +1. Build sysroot for target platform by using `scripts/bootstrap.sh` in aports repo: +``` +./bootstrap.sh $CTARGET_ARCH +``` +2. Although not necessary, it is recommended to add Alpine repositories to + `$HOME/sysroot-$CTARGET_ARCH/etc/apk/repositories`, making sure to add required + keys. This makes it so that whatever package is not built in step 1 will + be pulled from package repos +3. Crossbuild `dotnet7-stage0` via: +``` +CHOST=$CTARGET_ARCH abuild -r +``` + +# Specification + +This package follows [package naming and contents suggested by upstream](https://docs.microsoft.com/en-us/dotnet/core/build/distribution-packaging), +with two exceptions. It installs dotnet to `/usr/lib/dotnet` (aka `$_libdir`). +In addition, the package is named `dotnet7` as opposed to `dotnet-7.0` +to match Alpine Linux naming conventions for packages with many installable versions + +# Contributing + +The steps below are for the final package. Please only contribute to a +pre-release version if you know what you are doing. Original instructions +follow. + +## General Changes + +1. Fork the main aports repo. + +2. Checkout the forked repository. + + - `git clone ssh://git@gitlab.alpinelinux.org/$USER/aports` + - `cd community/dotnet7-build` + +3. Make your changes. Don't forget to add a changelog. + +4. Do local builds. + + - `abuild -r` + +5. Fix any errors that come up and rebuild until it works locally. + +6. Commit the changes to the git repo in a git branch + + - `git checkout -b dotnet7/` + - `git add` any new patches + - `git remove` any now-unnecessary patches + - `git commit -m 'community/dotnet7-build: descriptive description'` + - `git push` + +7. Create a merge request with your changes, tagging @ayakael for review. + +8. Once the tests in the pull-request pass, and reviewers are happy, your changes + will be merged. + +## Updating to an new upstream release + +1. Fork the main aports repo. + +2. Checkout the forked repository. + + - `git clone ssh://git@gitlab.alpinelinux.org/$USER/aports` + - `cd community/dotnet7-build` + + +3. Build the new upstream source tarball. Update the versions in the + APKBUILD file, and then create a snapshot. After build, update checksum. + + - `abuild snapshot` + - `abuild checksum` + +4. Do local builds. + + - `abuild -r` + +5. Fix any errors that come up and rebuild until it works locally. Any + patches that are needed at this point should be added to the APKBUILD file + in `_patches` variable. + +6. Upload the source archive to a remote location, and update `source` variable. + +7. Commit the changes to the git repo in a git branch. + + - `git checkout -b dotnet7/` + - `git add` any new patches + - `git remove` any now-unnecessary patches + - `git commit -m 'community/dotnet7-build: upgrade to ` + - `git push` + +8. Create a merge request with your changes, tagging @ayakael for review. + +9. Once the tests in the pull-request pass, and reviewers are happy, your changes + will be merged. + +# Testing + +This package uses CI tests as defined in `check()` function. Creating a +merge-request or running a build will fire off tests and flag any issues. + +The tests themselves are contained in this external repository: +https://github.com/redhat-developer/dotnet-regular-tests/ diff --git a/user/dotnet7-stage0/aspnetcore_use-linux-musl-crossgen-on-non-x64.patch b/user/dotnet7-stage0/aspnetcore_use-linux-musl-crossgen-on-non-x64.patch new file mode 100644 index 0000000..5177515 --- /dev/null +++ b/user/dotnet7-stage0/aspnetcore_use-linux-musl-crossgen-on-non-x64.patch @@ -0,0 +1,29 @@ +From 451aa3e9544b0214d0e8e844c27af3847f5bf391 Mon Sep 17 00:00:00 2001 +From: Antoine Martin +Date: Fri, 18 Feb 2022 05:14:39 +0000 +Subject: [PATCH 1/1] musl build fix + +Line causes build of aspnetcore on arm to look for linux version of +CrossGen2 rather than linux-musl. This removes the line so that +BuildOsName is pulled from TargetOsName as expected + +--- + .../App.Runtime/src/Microsoft.AspNetCore.App.Runtime.csproj | 1 - + 1 file changed, 1 deletion(-) + +diff --git a/src/aspnetcore/src/Framework/App.Runtime/src/Microsoft.AspNetCore.App.Runtime.csproj b/src/aspnetcore/src/Framework/App.Runtime/src/Microsoft.AspNetCore.App.Runtime.csproj +index aeb3c08f13..380fc5fbac 100644 +--- a/src/aspnetcore/src/Framework/App.Runtime/src/Microsoft.AspNetCore.App.Runtime.csproj ++++ b/src/aspnetcore/src/Framework/App.Runtime/src/Microsoft.AspNetCore.App.Runtime.csproj +@@ -103,7 +103,6 @@ This package is an internal implementation of the .NET Core SDK and is not meant + Special case the crossgen2 package reference on Windows to avoid the x86 package when building in Visual Studio. + --> + $(TargetOsName) +- linux + $(TargetRuntimeIdentifier.Substring(0,$(TargetRuntimeIdentifier.IndexOf('-')))) + x64 + $(BuildArchitecture) +-- +2.34.1 + + diff --git a/user/dotnet7-stage0/build_set-local-repo.patch b/user/dotnet7-stage0/build_set-local-repo.patch new file mode 100644 index 0000000..f3b1c9a --- /dev/null +++ b/user/dotnet7-stage0/build_set-local-repo.patch @@ -0,0 +1,76 @@ +From 46382e01243e30156660f6efe84a9afee0c5c1aa Mon Sep 17 00:00:00 2001 +From: Antoine Martin +Date: Sun, 28 Aug 2022 05:19:20 +0000 +Subject: [PATCH 2/2] aspnetcore_set-local-repo + +Patch necessary for stage0, as each component requires the artifacts +from previously built component. This patch (along with a prepare step +in aport) adds a "local" nupkg repository that artifacts are pushed to +at end of component build + +--- + src/aspnetcore/NuGet.config | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/src/runtime/NuGet.config b/src/runtime/NuGet.config +index 71e79dd377..c14909e175 100644 +--- a/src/runtime/NuGet.config ++++ b/src/runtime/NuGet.config +@@ -7,6 +7,7 @@ + + + ++ + + + +diff --git a/src/aspnetcore/NuGet.config b/src/aspnetcore/NuGet.config +index a26b4ca86..1f40b8f06 100644 +--- a/src/aspnetcore/NuGet.config ++++ b/src/aspnetcore/NuGet.config +@@ -2,6 +2,7 @@ + + + ++ + + + +diff --git a/src/installer/NuGet.config b/src/installer/NuGet.config +index 8cac51c22..c07e44968 100644 +--- a/src/installer/NuGet.config ++++ b/src/installer/NuGet.config +@@ -5,6 +5,7 @@ + + + ++ + + + +diff --git a/src/roslyn/NuGet.config b/src/roslyn/NuGet.config +index a26b4ca86..1f40b8f06 100644 +--- a/src/roslyn/NuGet.config ++++ b/src/roslyn/NuGet.config +@@ -3,6 +3,7 @@ + + + ++ + + + +diff --git a/src/sdk/NuGet.config b/src/sdk/NuGet.config +index 2773a4d0b..9aab732f7 100644 +--- a/src/sdk/NuGet.config ++++ b/src/sdk/NuGet.config +@@ -2,6 +2,7 @@ + + + ++ + + + +-- +2.37.1 diff --git a/user/dotnet7-stage0/installer_2780-reprodicible-tarball.patch b/user/dotnet7-stage0/installer_2780-reprodicible-tarball.patch new file mode 100644 index 0000000..2c8d8ec --- /dev/null +++ b/user/dotnet7-stage0/installer_2780-reprodicible-tarball.patch @@ -0,0 +1,122 @@ +From 3669424e83ce393e2e0ee3f23b5a255c3a11a192 Mon Sep 17 00:00:00 2001 +Patch-Source: https://github.com/dotnet/source-build/issues/2780 +From: Antoine Martin +Date: Wed, 16 Feb 2022 15:59:42 +0000 +Subject: [PATCH 1/1] reproducible tarball + +By default, tarball is not reprodicible due to a select few of volatile +files. This volatility is associated with .git directories and +OfficialBuildId of a few packages that source it from tarball build +date. This patch allows stripping of git directories to bare minimum and +sources OfficialBuildId with generic date to be modified later for +build. + +--- + .../src/Tarball_WriteSourceRepoProperties.cs | 6 +-- + .../tools/SourceBuildArcadeTarball.targets | 9 +++-- + .../SourceBuildArcadeTarball_strip-git.sh | 38 +++++++++++++++++++ + 3 files changed, 46 insertions(+), 7 deletions(-) + create mode 100755 src/SourceBuild/Arcade/tools/SourceBuildArcadeTarball_strip-git.sh + +diff --git a/src/installer/src/SourceBuild/Arcade/src/Tarball_WriteSourceRepoProperties.cs b/src/installer/src/SourceBuild/Arcade/src/Tarball_WriteSourceRepoProperties.cs +index b6b2793f3..55d680971 100644 +--- a/src/installer/src/SourceBuild/Arcade/src/Tarball_WriteSourceRepoProperties.cs ++++ b/src/installer/src/SourceBuild/Arcade/src/Tarball_WriteSourceRepoProperties.cs +@@ -106,7 +106,7 @@ private static DerivedVersion GetVersionInfo(string repoName, string version, st + if (repoName.Contains("nuget")) + { + // NuGet does this - arbitrary build IDs +- return new DerivedVersion { OfficialBuildId = DateTime.Now.ToString("yyyyMMdd.1"), PreReleaseVersionLabel = releaseParts[0] }; ++ return new DerivedVersion { OfficialBuildId = DateTime.Now.ToString("19900101.1"), PreReleaseVersionLabel = releaseParts[0] }; + } + else if (releaseParts.Length == 3) + { +@@ -140,7 +140,7 @@ private static DerivedVersion GetVersionInfo(string repoName, string version, st + { + // finalized version number (x.y.z) - probably not our code + // Application Insights, Newtonsoft.Json do this +- return new DerivedVersion { OfficialBuildId = DateTime.Now.ToString("yyyyMMdd.1"), PreReleaseVersionLabel = string.Empty }; ++ return new DerivedVersion { OfficialBuildId = DateTime.Now.ToString("19900101.1"), PreReleaseVersionLabel = string.Empty }; + } + + throw new FormatException($"Can't derive a build ID from version {version} (commit count {commitCount}, release {string.Join(";", nugetVersion.Release.Split('-', '.'))})"); +diff --git a/src/installer/src/SourceBuild/Arcade/tools/SourceBuildArcadeTarball.targets b/src/installer/src/SourceBuild/Arcade/tools/SourceBuildArcadeTarball.targets +index a516a86cf..eb5858ba3 100644 +--- a/src/installer/src/SourceBuild/Arcade/tools/SourceBuildArcadeTarball.targets ++++ b/src/installer/src/SourceBuild/Arcade/tools/SourceBuildArcadeTarball.targets +@@ -15,6 +15,7 @@ + + $(RepoRoot)artifacts/ + $(ArtifactsDir)tarball/ ++ $([MSBuild]::MakeRelative($([System.IO.Path]::GetDirectoryName($(TarballDir))), $(TarballDir))) + $([MSBuild]::EnsureTrailingSlash('$(TarballDir)')) + $(TarballRootDir)src/ + $(TarballRootDir)git-info/ +@@ -42,7 +43,7 @@ + + + +- ++ + + + +@@ -189,10 +190,10 @@ + Command="git config --file $(TarballRepoSourceDir)/.git/config --add remote.origin.url $(OriginalRepoUri)" + WorkingDirectory="$(RepoRoot)"/> + +- ++ + + + +diff --git a/src/installer/src/SourceBuild/Arcade/tools/SourceBuildArcadeTarball_strip-git.sh b/src/installer/src/SourceBuild/Arcade/tools/SourceBuildArcadeTarball_strip-git.sh +new file mode 100755 +index 000000000..63858732f +--- /dev/null ++++ b/src/installer/src/SourceBuild/Arcade/tools/SourceBuildArcadeTarball_strip-git.sh +@@ -0,0 +1,38 @@ ++#!/bin/bash ++repodir="$1" ++ ++gitdir="$repodir"/.git ++stripdir="$repodir"/.strip ++mkdir "$stripdir" ++ ++commit=$(git -C "$repodir" rev-parse HEAD) ++url="$(grep -m 1 url "$gitdir"/config)" ++url=${url#*= } ++ ++echo $commit > "$stripdir"/HEAD ++{ ++echo "[remote \"origin\"]" ++echo " url = \"$url\"" ++} > "$stripdir"/config ++ ++if [ -f "$repodir"/.gitmodules ]; then ++ cat "$repodir"/.gitmodules >> "$stripdir"/config ++ ++ for subdir in $(find "$gitdir"/modules -type f -name 'config'); do ++ subdir=${subdir/\/config} ++ substripdir="${subdir/.git/.strip}" ++ commit=$(git -C "$subdir" rev-parse HEAD) ++ url="$(grep -m 1 url "$subdir"/config)" ++ url=${url#*= } ++ ++ mkdir -p "$substripdir" ++ echo $commit > "$substripdir"/HEAD ++ { ++ echo "[remote \"origin\"]" ++ echo " url = \"$url\"" ++ } > "$substripdir"/config ++ done ++fi ++ ++rm -fR "$gitdir" ++mv "$stripdir" "$gitdir" + diff --git a/user/dotnet7-stage0/installer_runtimepacks.patch b/user/dotnet7-stage0/installer_runtimepacks.patch new file mode 100644 index 0000000..bb8ff03 --- /dev/null +++ b/user/dotnet7-stage0/installer_runtimepacks.patch @@ -0,0 +1,45 @@ +From fb558e038ac3cf78b2c26ed24b99586fc97d82f1 Mon Sep 17 00:00:00 2001 +From: Antoine Martin +Date: Fri, 21 Oct 2022 13:44:04 -0400 +Subject: [PATCH 1/1] runtimepacks + +Necessary for stage0, as installer doesn't pull runtime packs. + +--- + src/redist/targets/GenerateLayout.targets | 14 ++++++++++++++ + 1 file changed, 14 insertions(+) + +diff --git a/src/installer/src/redist/targets/GenerateLayout.targets b/src/installer/src/redist/targets/GenerateLayout.targets +index 88a053b61..47aa38571 100644 +--- a/src/installer/src/redist/targets/GenerateLayout.targets ++++ b/src/installer/src/redist/targets/GenerateLayout.targets +@@ -134,6 +134,13 @@ + packs/%(PackageName)/%(PackageVersion) + + ++ ++ Microsoft.NETCore.App.Runtime.$(SharedFrameworkRid) ++ $(MicrosoftNETCoreAppRefPackageVersion) ++ $(TargetFramework) ++ packs/%(PackageName)/%(PackageVersion) ++ ++ + + NETStandard.Library.Ref + $(NETStandardLibraryRefPackageVersion) +@@ -146,6 +153,13 @@ + $(MicrosoftAspNetCoreAppRefPackageVersion) + $(TargetFramework) + packs/%(PackageName)/%(PackageVersion) ++ ++ ++ ++ Microsoft.AspNetCore.App.Runtime.$(SharedFrameworkRid) ++ $(MicrosoftAspNetCoreAppRefPackageVersion) ++ $(TargetFramework) ++ packs/%(PackageName)/%(PackageVersion) + + + +-- +2.36.3 diff --git a/user/dotnet7-stage0/roslyn_allow-extra-params.patch b/user/dotnet7-stage0/roslyn_allow-extra-params.patch new file mode 100644 index 0000000..f7284a5 --- /dev/null +++ b/user/dotnet7-stage0/roslyn_allow-extra-params.patch @@ -0,0 +1,13 @@ +diff --git a/src/roslyn/eng/build.sh b/src/roslyn/eng/build.sh +index a08cbea099d..d3ec235732f 100755 +--- a/src/roslyn/eng/build.sh ++++ b/src/roslyn/eng/build.sh +@@ -167,7 +167,7 @@ while [[ $# > 0 ]]; do + args="$args $1" + shift + ;; +- /p:*) ++ /*) + properties="$properties $1" + ;; + *) diff --git a/user/dotnet7-stage0/runtime_76500-mono-musl-support.patch b/user/dotnet7-stage0/runtime_76500-mono-musl-support.patch new file mode 100644 index 0000000..6685988 --- /dev/null +++ b/user/dotnet7-stage0/runtime_76500-mono-musl-support.patch @@ -0,0 +1,325 @@ +From 98054ea87ce70247bb09ceafd2ad1a0b36d2fef4 Mon Sep 17 00:00:00 2001 +Patch-Source: https://github.com/dotnet/runtime/pull/76500 +From: Antoine Martin +Date: Sat, 1 Oct 2022 09:21:58 -0400 +Subject: [PATCH] Mono musl support + +--- + Directory.Build.props | 1 + + eng/common/cross/toolchain.cmake | 38 +++++++++++++++++++----- + eng/native/configurecompiler.cmake | 7 +++++ + eng/native/tryrun.cmake | 6 +++- + src/coreclr/pal/src/CMakeLists.txt | 5 ++++ + src/coreclr/pal/src/misc/perfjitdump.cpp | 2 +- + src/coreclr/vm/i386/cgenx86.cpp | 4 +++ + src/mono/CMakeLists.txt | 33 ++++++++++++++++++++ + src/mono/mono.proj | 32 +++++++++++++------- + src/mono/mono/mini/mini-runtime.c | 29 ++++++++++++++++++ + src/mono/mono/utils/mono-context.h | 8 +++++ + 11 files changed, 146 insertions(+), 19 deletions(-) + +diff --git a/src/runtime/Directory.Build.props b/src/runtime/Directory.Build.props +index 6f9b97c0a9c..4298a6df1d3 100644 +--- a/src/runtime/Directory.Build.props ++++ b/src/runtime/Directory.Build.props +@@ -22,7 +22,6 @@ + $(_hostOS) + true + true +- true + + + +@@ -154,7 +154,7 @@ + <_runtimeOS Condition="'$(TargetsMobile)' == 'true'">$(TargetOS.ToLowerInvariant()) + + <_portableOS>linux +- <_portableOS Condition="'$(_runtimeOS)' == 'linux-musl'">linux-musl ++ <_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 +@@ -200,6 +199,9 @@ + + $(PackageRID) + $(_portableOS)-$(TargetArchitecture) ++ ++ true ++ true + + + +diff --git a/src/runtime/eng/native/tryrun.cmake b/src/runtime/eng/native/tryrun.cmake +index 6355b0988f7..056c6606b17 100644 +--- a/src/runtime/eng/native/tryrun.cmake ++++ b/src/runtime/eng/native/tryrun.cmake +@@ -8,7 +8,11 @@ endmacro() + + if(EXISTS ${CROSS_ROOTFS}/usr/lib/gcc/armv7-alpine-linux-musleabihf OR + EXISTS ${CROSS_ROOTFS}/usr/lib/gcc/armv6-alpine-linux-musleabihf OR +- EXISTS ${CROSS_ROOTFS}/usr/lib/gcc/aarch64-alpine-linux-musl) ++ EXISTS ${CROSS_ROOTFS}/usr/lib/gcc/aarch64-alpine-linux-musl OR ++ EXISTS ${CROSS_ROOTFS}/usr/lib/gcc/s390x-alpine-linux-musl OR ++ EXISTS ${CROSS_ROOTFS}/usr/lib/gcc/ppc64le-alpine-linux-musl OR ++ EXISTS ${CROSS_ROOTFS}/usr/lib/gcc/i586-alpine-linux-musl OR ++ EXISTS ${CROSS_ROOTFS}/usr/lib/gcc/riscv64-alpine-linux-musl) + + set(ALPINE_LINUX 1) + elseif(EXISTS ${CROSS_ROOTFS}/bin/freebsd-version) +diff --git a/src/runtime/src/coreclr/pal/src/CMakeLists.txt b/src/runtime/src/coreclr/pal/src/CMakeLists.txt +index d9726460ccf..c28563f8619 100644 +--- a/src/runtime/src/coreclr/pal/src/CMakeLists.txt ++++ b/src/runtime/src/coreclr/pal/src/CMakeLists.txt +@@ -315,6 +315,11 @@ if(CLR_CMAKE_TARGET_LINUX) + target_link_libraries(coreclrpal ${UNWIND_LIBS}) + endif(CLR_CMAKE_USE_SYSTEM_LIBUNWIND) + ++ # bundled libunwind requires using libucontext on alpine and x86 and ppc64le ++ if(CLR_CMAKE_TARGET_ALPINE_LINUX AND (CLR_CMAKE_TARGET_ARCH_I386 OR CLR_CMAKE_TARGET_ARCH_POWERPC64)) ++ target_link_libraries(coreclrpal ucontext) ++ endif(CLR_CMAKE_TARGET_ALPINE_LINUX AND (CLR_CMAKE_TARGET_ARCH_I386 OR CLR_CMAKE_TARGET_ARCH_POWERPC64)) ++ + endif(CLR_CMAKE_TARGET_LINUX) + + if(CLR_CMAKE_TARGET_NETBSD) +diff --git a/src/runtime/src/coreclr/pal/src/misc/perfjitdump.cpp b/src/runtime/src/coreclr/pal/src/misc/perfjitdump.cpp +index 8d7f79ed3f0..043939ad2da 100644 +--- a/src/runtime/src/coreclr/pal/src/misc/perfjitdump.cpp ++++ b/src/runtime/src/coreclr/pal/src/misc/perfjitdump.cpp +@@ -25,7 +25,7 @@ + #include + #include + #include +-#include ++#include + + #include "../inc/llvm/ELF.h" + +diff --git a/src/runtime/src/coreclr/vm/i386/cgenx86.cpp b/src/runtime/src/coreclr/vm/i386/cgenx86.cpp +index 811c84a140d..4e958a44b30 100644 +--- a/src/runtime/src/coreclr/vm/i386/cgenx86.cpp ++++ b/src/runtime/src/coreclr/vm/i386/cgenx86.cpp +@@ -1133,6 +1133,7 @@ extern "C" DWORD __stdcall avx512StateSupport() + + #else // !TARGET_UNIX + ++#if !__has_builtin(__cpuid) + void __cpuid(int cpuInfo[4], int function_id) + { + // Based on the Clang implementation provided in cpuid.h: +@@ -1143,7 +1144,9 @@ void __cpuid(int cpuInfo[4], int function_id) + : "0"(function_id) + ); + } ++#endif + ++#if !__has_builtin(__cpuidex) + void __cpuidex(int cpuInfo[4], int function_id, int subFunction_id) + { + // Based on the Clang implementation provided in cpuid.h: +@@ -1154,6 +1157,7 @@ void __cpuidex(int cpuInfo[4], int function_id, int subFunction_id) + : "0"(function_id), "2"(subFunction_id) + ); + } ++#endif + + extern "C" DWORD __stdcall xmmYmmStateSupport() + { +diff --git a/src/runtime/src/mono/CMakeLists.txt b/src/runtime/src/mono/CMakeLists.txt +index cdff32677c0..08a82cd7e83 100644 +--- a/src/runtime/src/mono/CMakeLists.txt ++++ b/src/runtime/src/mono/CMakeLists.txt +@@ -216,6 +216,35 @@ elseif(CMAKE_SYSTEM_NAME STREQUAL "Linux") + # Enable the "full RELRO" options (RELRO & BIND_NOW) at link time + add_link_options(-Wl,-z,relro) + add_link_options(-Wl,-z,now) ++ # Detect Linux ID ++ # TODO: Eventually merge with eng/native/configureplatform.cmake ++ set(LINUX_ID_FILE "/etc/os-release") ++ if(CMAKE_CROSSCOMPILING) ++ set(LINUX_ID_FILE "${CMAKE_SYSROOT}${LINUX_ID_FILE}") ++ endif() ++ ++ if(EXISTS ${LINUX_ID_FILE}) ++ execute_process( ++ COMMAND bash -c "source ${LINUX_ID_FILE} && echo \$ID" ++ OUTPUT_VARIABLE CLR_CMAKE_LINUX_ID ++ OUTPUT_STRIP_TRAILING_WHITESPACE) ++ ++ execute_process( ++ COMMAND bash -c "if strings \"${CMAKE_SYSROOT}/usr/bin/ldd\" 2>&1 | grep -q musl; then echo musl; fi" ++ OUTPUT_VARIABLE CLR_CMAKE_LINUX_MUSL ++ OUTPUT_STRIP_TRAILING_WHITESPACE) ++ endif() ++ ++ if(DEFINED CLR_CMAKE_LINUX_ID) ++ if(CLR_CMAKE_LINUX_ID STREQUAL alpine) ++ set(CLR_CMAKE_HOST_ALPINE_LINUX 1) ++ set(CLR_CMAKE_HOST_OS ${CLR_CMAKE_LINUX_ID}) ++ endif() ++ ++ if(CLR_CMAKE_LINUX_MUSL STREQUAL musl) ++ set(CLR_CMAKE_HOST_LINUX_MUSL 1) ++ endif() ++ endif(DEFINED CLR_CMAKE_LINUX_ID) + elseif(CMAKE_SYSTEM_NAME STREQUAL "Android") + set(HOST_LINUX 1) + add_definitions(-D_GNU_SOURCE -D_REENTRANT) +@@ -893,6 +922,12 @@ if(HOST_IOS OR HOST_ANDROID OR HOST_MACCAT) + else() + set(DISABLE_DLLMAP 1) + endif() ++ ++if(CLR_CMAKE_HOST_ALPINE_LINUX) ++ # On Alpine Linux, we need to ensure that the reported stack range for the primary thread is ++ # larger than the initial committed stack size. ++ add_definitions(-DENSURE_PRIMARY_STACK_SIZE) ++endif() + ### End of OS specific checks + + include_directories("${CLR_SRC_NATIVE_DIR}") +diff --git a/src/runtime/src/mono/mono.proj b/src/runtime/src/mono/mono.proj +index 59fea4a2f72..5bac7fdf1c6 100644 +--- a/src/runtime/src/mono/mono.proj ++++ b/src/runtime/src/mono/mono.proj +@@ -554,19 +560,21 @@ + darwin-x86_64 + windows-x86_64 + <_MonoRuntimeFilePath>$(MonoObjDir)out\lib\$(MonoFileName) +- <_LinuxAbi Condition="'$(TargetsAndroid)' != 'true' and '$(TargetsLinuxBionic)' != 'true'">gnu +- <_LinuxAbi Condition="'$(TargetsAndroid)' == 'true' or '$(TargetsLinuxBionic)' == 'true'">android ++ <_LinuxAbi Condition="'$(TargetsAndroid)' != 'true' and '$(TargetsLinuxBionic)' != 'true' and '$(TargetsLinuxMusl)' != 'true'">linux-gnu ++ <_LinuxAbi Condition="'$(TargetsAndroid)' != 'true' and '$(TargetsLinuxBionic)' != 'true' and '$(TargetsLinuxMusl)' == 'true'">alpine-linux-musl ++ <_LinuxAbi Condition="'$(TargetsAndroid)' == 'true' or '$(TargetsLinuxBionic)' == 'true'">linux-android + <_LinuxFloatAbi Condition="'$(TargetsAndroid)' != 'true' and '$(TargetsLinuxBionic)' != 'true'">hf + <_Objcopy>objcopy +- <_Objcopy Condition="'$(Platform)' == 'arm'">arm-linux-$(_LinuxAbi)eabi$(_LinuxFloatAbi)-$(_Objcopy) +- <_Objcopy Condition="'$(Platform)' == 'armv6'">arm-linux-$(_LinuxAbi)eabi$(_LinuxFloatAbi)-$(_Objcopy) +- <_Objcopy Condition="'$(Platform)' == 'arm64'">aarch64-linux-$(_LinuxAbi)-$(_Objcopy) +- <_Objcopy Condition="'$(Platform)' == 'riscv64'">riscv64-linux-$(_LinuxAbi)-$(_Objcopy) +- <_Objcopy Condition="'$(Platform)' == 's390x'">s390x-linux-$(_LinuxAbi)-$(_Objcopy) +- <_Objcopy Condition="'$(Platform)' == 'ppc64le'">powerpc64le-linux-$(_LinuxAbi)-$(_Objcopy) +- <_Objcopy Condition="'$(Platform)' == 'x64'">x86_64-linux-$(_LinuxAbi)-$(_Objcopy) +- <_Objcopy Condition="'$(Platform)' == 'x86'">i686-linux-$(_LinuxAbi)-$(_Objcopy) ++ <_Objcopy Condition="'$(Platform)' == 'arm'">arm-$(_LinuxAbi)eabi$(_LinuxFloatAbi)-$(_Objcopy) ++ <_Objcopy Condition="'$(Platform)' == 'armv6'">arm-$(_LinuxAbi)eabi$(_LinuxFloatAbi)-$(_Objcopy) ++ <_Objcopy Condition="'$(Platform)' == 'arm64'">aarch64-$(_LinuxAbi)-$(_Objcopy) ++ <_Objcopy Condition="'$(Platform)' == 'riscv64'">riscv64-$(_LinuxAbi)-$(_Objcopy) ++ <_Objcopy Condition="'$(Platform)' == 's390x'">s390x-$(_LinuxAbi)-$(_Objcopy) ++ <_Objcopy Condition="'$(Platform)' == 'ppc64le'">powerpc64le-$(_LinuxAbi)-$(_Objcopy) ++ <_Objcopy Condition="'$(Platform)' == 'x64'">x86_64-$(_LinuxAbi)-$(_Objcopy) ++ <_Objcopy Condition="'$(Platform)' == 'x86'">i686-$(_LinuxAbi)-$(_Objcopy) + <_Objcopy Condition="'$(TargetsAndroid)' == 'true' or '$(TargetsLinuxBionic)' == 'true'">$(ANDROID_NDK_ROOT)/toolchains/llvm/prebuilt/$(MonoToolchainPrebuiltOS)/bin/llvm-objcopy ++ <_Objcopy Condition="'$(TargetsLinuxMusl)' == 'true' and '$(CrossBuild)' != 'true'">objcopy + + <_ObjcopyPrefix Condition="'$(MonoCrossDir)' != '' and '$(Platform)' == 'riscv64'">llvm-objcopy- + +diff --git a/src/runtime/src/mono/mono/mini/CMakeLists.txt b/src/runtime/src/mono/mono/mini/CMakeLists.txt +index 30df4bac1f7..8698fd81206 100644 +--- a/src/runtime/src/mono/mono/mini/CMakeLists.txt ++++ b/src/runtime/src/mono/mono/mini/CMakeLists.txt +@@ -368,6 +368,11 @@ if(NOT DISABLE_SHARED_LIBS) + target_sources(monosgen-shared PRIVATE $) + set_target_properties(monosgen-shared PROPERTIES OUTPUT_NAME ${MONO_SHARED_LIB_NAME}) + target_link_libraries (monosgen-shared PRIVATE monoapi) ++ # Alpine Linux implements ucontext in a different library ++ if(CLR_CMAKE_HOST_ALPINE_LINUX AND TARGET_S390X) ++ target_link_libraries(monosgen-shared PRIVATE ucontext) ++ endif(CLR_CMAKE_HOST_ALPINE_LINUX AND TARGET_S390X) ++ + target_include_directories (monosgen-shared PRIVATE monoapi) + if(TARGET_WIN32) + # on Windows the import library for the shared mono library will have the same name as the static library, +@@ -527,6 +532,10 @@ if(NOT DISABLE_EXECUTABLES) + set_target_properties(mono-sgen PROPERTIES OUTPUT_NAME mono-aot-cross) + endif() + target_link_libraries(mono-sgen PRIVATE monoapi monosgen-static ${OS_LIBS} ${LLVM_LIBS} ${ICU_LIBS} ${Z_LIBS}) ++ # Alpine Linux implements ucontext in a different library ++ if(CLR_CMAKE_HOST_ALPINE_LINUX AND TARGET_S390X) ++ target_link_libraries(mono-sgen PRIVATE ucontext) ++ endif(CLR_CMAKE_HOST_ALPINE_LINUX AND TARGET_S390X) + if(NOT DISABLE_COMPONENTS AND STATIC_COMPONENTS AND NOT DISABLE_LINK_STATIC_COMPONENTS) + # if components are built statically, link them into runtime. + target_sources(mono-sgen PRIVATE "${mono-components-objects}") +diff --git a/src/runtime/src/mono/mono/mini/mini-runtime.c b/src/runtime/src/mono/mono/mini/mini-runtime.c +index c481f69adc8..4db6c9a0ae7 100644 +--- a/src/runtime/src/mono/mono/mini/mini-runtime.c ++++ b/src/runtime/src/mono/mono/mini/mini-runtime.c +@@ -4383,6 +4383,30 @@ mini_llvm_init (void) + #endif + } + ++#ifdef ENSURE_PRIMARY_STACK_SIZE ++/*++ ++ Function: ++ EnsureStackSize ++ ++ Abstract: ++ This fixes a problem on MUSL where the initial stack size reported by the ++ pthread_attr_getstack is about 128kB, but this limit is not fixed and ++ the stack can grow dynamically. The problem is that it makes the ++ functions ReflectionInvocation::[Try]EnsureSufficientExecutionStack ++ to fail for real life scenarios like e.g. compilation of corefx. ++ Since there is no real fixed limit for the stack, the code below ++ ensures moving the stack limit to a value that makes reasonable ++ real life scenarios work. ++ ++ --*/ ++static MONO_NO_OPTIMIZATION MONO_NEVER_INLINE void ++ensure_stack_size (size_t size) ++{ ++ volatile uint8_t *s = (uint8_t *)g_alloca(size); ++ *s = 0; ++} ++#endif // ENSURE_PRIMARY_STACK_SIZE ++ + void + mini_add_profiler_argument (const char *desc) + { +@@ -4544,6 +4568,11 @@ mini_init (const char *filename) + mono_w32handle_init (); + #endif + ++#ifdef ENSURE_PRIMARY_STACK_SIZE ++ // TODO: https://github.com/dotnet/runtime/issues/72920 ++ ensure_stack_size (5 * 1024 * 1024); ++#endif // ENSURE_PRIMARY_STACK_SIZE ++ + mono_thread_info_runtime_init (&ticallbacks); + + if (g_hasenv ("MONO_DEBUG")) { +diff --git a/src/runtime/src/mono/mono/utils/mono-context.h b/src/runtime/src/mono/mono/utils/mono-context.h +index a1f0fe6f68e..a9db2d336ca 100644 +--- a/src/runtime/src/mono/mono/utils/mono-context.h ++++ b/src/runtime/src/mono/mono/utils/mono-context.h +@@ -11,6 +11,14 @@ + #ifndef __MONO_MONO_CONTEXT_H__ + #define __MONO_MONO_CONTEXT_H__ + ++/* ++ * Handle non-gnu libc versions with nothing in features.h ++ * We have no idea what they're compatible with, so always fail. ++ */ ++#ifndef __GLIBC_PREREQ ++# define __GLIBC_PREREQ(x,y) 0 ++#endif ++ + #include "mono-compiler.h" + #include "mono-sigcontext.h" + #include "mono-machine.h" +diff --git a/src/runtime/src/native/libs/System.Native/pal_io.c b/src/runtime/src/native/libs/System.Native/pal_io.c +index 0929a0b49ec..86311e19507 100644 +--- a/src/runtime/src/native/libs/System.Native/pal_io.c ++++ b/src/runtime/src/native/libs/System.Native/pal_io.c +@@ -1267,7 +1267,7 @@ int32_t SystemNative_CopyFile(intptr_t sourceFd, intptr_t destinationFd, int64_t + // Try copying data using a copy-on-write clone. This shares storage between the files. + if (sourceLength != 0) + { +- while ((ret = ioctl(outFd, FICLONE, inFd)) < 0 && errno == EINTR); ++ while ((ret = ioctl(outFd, (int)FICLONE, inFd)) < 0 && errno == EINTR); + copied = ret == 0; + } + #endif +-- +2.36.3 + diff --git a/user/dotnet7-stage0/runtime_76500-properly-set-toolchain-for-alpine.patch b/user/dotnet7-stage0/runtime_76500-properly-set-toolchain-for-alpine.patch new file mode 100644 index 0000000..8069db8 --- /dev/null +++ b/user/dotnet7-stage0/runtime_76500-properly-set-toolchain-for-alpine.patch @@ -0,0 +1,97 @@ +From 98054ea87ce70247bb09ceafd2ad1a0b36d2fef4 Mon Sep 17 00:00:00 2001 +Patch-Source: https://github.com/dotnet/arcade/pull/11608 +From: Antoine Martin +Date: Sat, 1 Oct 2022 09:21:58 -0400 +Subject: [PATCH] Mono musl support + +--- + Directory.Build.props | 1 + + eng/common/cross/toolchain.cmake | 38 +++++++++++++++++++----- + eng/native/configurecompiler.cmake | 7 +++++ + eng/native/tryrun.cmake | 6 +++- + src/coreclr/pal/src/CMakeLists.txt | 5 ++++ + src/coreclr/pal/src/misc/perfjitdump.cpp | 2 +- + src/coreclr/vm/i386/cgenx86.cpp | 4 +++ + src/mono/CMakeLists.txt | 33 ++++++++++++++++++++ + src/mono/mono.proj | 32 +++++++++++++------- + src/mono/mono/mini/mini-runtime.c | 29 ++++++++++++++++++ + src/mono/mono/utils/mono-context.h | 8 +++++ + 11 files changed, 146 insertions(+), 19 deletions(-) + +diff --git a/src/runtime/eng/common/cross/toolchain.cmake b/src/runtime/eng/common/cross/toolchain.cmake +index 561576be97c..a9db659f869 100644 +--- a/src/runtime/eng/common/cross/toolchain.cmake ++++ b/src/runtime/eng/common/cross/toolchain.cmake +@@ -60,13 +60,25 @@ elseif(TARGET_ARCH_NAME STREQUAL "armv6") + endif() + elseif(TARGET_ARCH_NAME STREQUAL "ppc64le") + set(CMAKE_SYSTEM_PROCESSOR ppc64le) +- set(TOOLCHAIN "powerpc64le-linux-gnu") ++ if(EXISTS ${CROSS_ROOTFS}/usr/lib/gcc/powerpc64le-alpine-linux-musl) ++ set(TOOLCHAIN "powerpc64le-alpine-linux-musl") ++ else() ++ set(TOOLCHAIN "powerpc64le-linux-gnu") ++ endif() + elseif(TARGET_ARCH_NAME STREQUAL "riscv64") + set(CMAKE_SYSTEM_PROCESSOR riscv64) +- set(TOOLCHAIN "riscv64-linux-gnu") ++ if(EXISTS ${CROSS_ROOTFS}/usr/lib/gcc/riscv64-alpine-linux-musl) ++ set(TOOLCHAIN "riscv64-alpine-linux-musl") ++ else() ++ set(TOOLCHAIN "riscv64-linux-gnu") ++ endif() + elseif(TARGET_ARCH_NAME STREQUAL "s390x") + set(CMAKE_SYSTEM_PROCESSOR s390x) +- set(TOOLCHAIN "s390x-linux-gnu") ++ if(EXISTS ${CROSS_ROOTFS}/usr/lib/gcc/s390x-alpine-linux-musl) ++ set(TOOLCHAIN "s390x-alpine-linux-musl") ++ else() ++ set(TOOLCHAIN "s390x-linux-gnu") ++ endif() + elseif(TARGET_ARCH_NAME STREQUAL "x64") + set(CMAKE_SYSTEM_PROCESSOR x86_64) + if(LINUX) +@@ -83,7 +95,11 @@ elseif(TARGET_ARCH_NAME STREQUAL "x64") + endif() + elseif(TARGET_ARCH_NAME STREQUAL "x86") + set(CMAKE_SYSTEM_PROCESSOR i686) +- set(TOOLCHAIN "i686-linux-gnu") ++ if(EXISTS ${CROSS_ROOTFS}/usr/lib/gcc/i586-alpine-linux-musl) ++ set(TOOLCHAIN "i586-alpine-linux-musl") ++ else() ++ set(TOOLCHAIN "i686-linux-gnu") ++ endif() + if(TIZEN) + set(TIZEN_TOOLCHAIN "i586-tizen-linux-gnu/9.2.0") + endif() +@@ -253,8 +269,12 @@ elseif(TARGET_ARCH_NAME STREQUAL "arm64") + add_toolchain_linker_flag("-Wl,--rpath-link=${CROSS_ROOTFS}/usr/lib64/gcc/${TIZEN_TOOLCHAIN}") + endif() + elseif(TARGET_ARCH_NAME STREQUAL "x86") +- add_toolchain_linker_flag(-m32) +- ++ if(EXISTS ${CROSS_ROOTFS}/usr/lib/gcc/i586-alpine-linux-musl) ++ add_toolchain_linker_flag("--target=${TOOLCHAIN}") ++ add_toolchain_linker_flag("-Wl,--rpath-link=${CROSS_ROOTFS}/usr/lib/gcc/${TOOLCHAIN}") ++ else() ++ add_toolchain_linker_flag(-m32) ++ endif() + if(TIZEN) + add_toolchain_linker_flag("-B${CROSS_ROOTFS}/usr/lib/gcc/${TIZEN_TOOLCHAIN}") + add_toolchain_linker_flag("-L${CROSS_ROOTFS}/lib") +@@ -291,7 +311,11 @@ if(TARGET_ARCH_NAME MATCHES "^(arm|armel)$") + add_compile_options(-mfloat-abi=softfp) + endif() + elseif(TARGET_ARCH_NAME STREQUAL "x86") +- add_compile_options(-m32) ++ if(EXISTS ${CROSS_ROOTFS}/usr/lib/gcc/i586-alpine-linux-musl) ++ add_compile_options(--target=${TOOLCHAIN}) ++ else() ++ add_compile_options(-m32) ++ endif() + add_compile_options(-Wno-error=unused-command-line-argument) + endif() + +-- +2.36.3 + diff --git a/user/dotnet7-stage0/runtime_enable-runtime-marshalling.diff b/user/dotnet7-stage0/runtime_enable-runtime-marshalling.diff new file mode 100644 index 0000000..54aec95 --- /dev/null +++ b/user/dotnet7-stage0/runtime_enable-runtime-marshalling.diff @@ -0,0 +1,1832 @@ +From 98054ea87ce70247bb09ceafd2ad1a0b36d2fef4 Mon Sep 17 00:00:00 2001 +Patch-Source: https://github.com/dotnet/runtime/issues/77364 +From: Antoine Martin +Date: Sat, 1 Oct 2022 09:21:58 -0400 +Subject: [PATCH] Enable runtime marshalling + +Dotnet7 introduced a bug where MkDir would sometimes have a snuffed errno. +This is a temporary workaround till upstream finds why the errno is being +turned into EAGAIN. + +--- + src/libraries/Common/src/DisableRuntimeMarshalling.cs | 2 +- + .../Common/src/Interop/Unix/System.Native/Interop.MkDir.cs | 4 ++-- + src/libraries/Common/tests/Common.Tests.csproj | 2 +- + src/libraries/Microsoft.CSharp/src/Microsoft.CSharp.csproj | 2 +- + .../Microsoft.Extensions.Hosting.WindowsServices.Tests.csproj | 4 ++-- + .../UnitTests/Microsoft.Extensions.Hosting.Unit.Tests.csproj | 2 +- + .../tests/Common/Microsoft.Extensions.Logging.Tests.csproj | 2 +- + .../tests/Microsoft.Win32.Primitives.Tests.csproj | 2 +- + .../src/Microsoft.Win32.Registry.AccessControl.csproj | 2 +- + .../tests/Microsoft.Win32.Registry.AccessControl.Tests.csproj | 2 +- + .../src/Microsoft.Win32.Registry.csproj | 2 +- + .../tests/Microsoft.Win32.Registry.Tests.csproj | 2 +- + .../src/Microsoft.Win32.SystemEvents.csproj | 2 +- + .../tests/Microsoft.Win32.SystemEvents.Tests.csproj | 2 +- + src/libraries/System.Console/src/System.Console.csproj | 2 +- + .../System.Console/tests/System.Console.Tests.csproj | 2 +- + src/libraries/System.Data.Odbc/src/System.Data.Odbc.csproj | 2 +- + .../System.Data.Odbc/tests/System.Data.Odbc.Tests.csproj | 2 +- + src/libraries/System.Data.OleDb/src/System.Data.OleDb.csproj | 2 +- + .../System.Data.OleDb/tests/System.Data.OleDb.Tests.csproj | 2 +- + .../tests/System.Diagnostics.Debug.Tests.csproj | 2 +- + .../src/System.Diagnostics.EventLog.csproj | 2 +- + .../tests/System.Diagnostics.EventLog.Tests.csproj | 2 +- + .../src/System.Diagnostics.FileVersionInfo.csproj | 2 +- + .../System.Diagnostics.FileVersionInfo.Tests.csproj | 2 +- + .../src/System.Diagnostics.PerformanceCounter.csproj | 2 +- + .../tests/System.Diagnostics.PerformanceCounter.Tests.csproj | 2 +- + .../src/System.Diagnostics.Process.csproj | 2 +- + .../tests/System.Diagnostics.Process.Tests.csproj | 2 +- + .../tests/System.Diagnostics.Tracing.Tests.csproj | 2 +- + .../src/System.DirectoryServices.AccountManagement.csproj | 2 +- + .../System.DirectoryServices.AccountManagement.Tests.csproj | 2 +- + .../src/System.DirectoryServices.Protocols.csproj | 2 +- + .../tests/System.DirectoryServices.Protocols.Tests.csproj | 2 +- + .../src/System.DirectoryServices.csproj | 2 +- + .../tests/System.DirectoryServices.Tests.csproj | 2 +- + .../System.Drawing.Common/src/System.Drawing.Common.csproj | 2 +- + .../tests/System.Drawing.Common.Tests.csproj | 2 +- + .../src/System.Drawing.Primitives.csproj | 2 +- + .../System.Formats.Tar/src/System.Formats.Tar.csproj | 2 +- + .../System.Formats.Tar/tests/System.Formats.Tar.Tests.csproj | 2 +- + .../NlsTests/System.Globalization.Extensions.Nls.Tests.csproj | 2 +- + .../tests/NlsTests/System.Globalization.Nls.Tests.csproj | 2 +- + .../src/System.IO.Compression.Brotli.csproj | 2 +- + .../tests/System.IO.Compression.Brotli.Tests.csproj | 2 +- + .../src/System.IO.Compression.ZipFile.csproj | 2 +- + .../tests/System.IO.Compression.ZipFile.Tests.csproj | 2 +- + .../System.IO.Compression/src/System.IO.Compression.csproj | 2 +- + .../tests/System.IO.Compression.Tests.csproj | 2 +- + .../src/System.IO.FileSystem.AccessControl.csproj | 2 +- + .../tests/System.IO.FileSystem.AccessControl.Tests.csproj | 2 +- + .../src/System.IO.FileSystem.DriveInfo.csproj | 2 +- + .../tests/System.IO.FileSystem.DriveInfo.Tests.csproj | 2 +- + .../src/System.IO.FileSystem.Watcher.csproj | 2 +- + .../tests/System.IO.FileSystem.Watcher.Tests.csproj | 2 +- + .../tests/System.IO.FileSystem.Tests.csproj | 2 +- + .../src/System.IO.IsolatedStorage.csproj | 2 +- + .../tests/System.IO.IsolatedStorage.Tests.csproj | 2 +- + .../src/System.IO.MemoryMappedFiles.csproj | 2 +- + .../tests/System.IO.MemoryMappedFiles.Tests.csproj | 2 +- + .../src/System.IO.Pipes.AccessControl.csproj | 2 +- + .../tests/System.IO.Pipes.AccessControl.Tests.csproj | 2 +- + src/libraries/System.IO.Pipes/src/System.IO.Pipes.csproj | 2 +- + .../System.IO.Pipes/tests/System.IO.Pipes.Tests.csproj | 2 +- + src/libraries/System.IO.Ports/src/System.IO.Ports.csproj | 2 +- + .../System.IO.Ports/tests/System.IO.Ports.Tests.csproj | 2 +- + src/libraries/System.Management/src/System.Management.csproj | 2 +- + .../System.Management/tests/System.Management.Tests.csproj | 2 +- + .../src/System.Net.Http.WinHttpHandler.csproj | 2 +- + .../System.Net.Http.WinHttpHandler.Functional.Tests.csproj | 2 +- + .../System.Net.Http.WinHttpHandler.Unit.Tests.csproj | 2 +- + src/libraries/System.Net.Http/src/System.Net.Http.csproj | 2 +- + .../FunctionalTests/System.Net.Http.Functional.Tests.csproj | 2 +- + .../tests/UnitTests/System.Net.Http.Unit.Tests.csproj | 2 +- + .../src/System.Net.HttpListener.csproj | 2 +- + .../tests/System.Net.HttpListener.Tests.csproj | 2 +- + src/libraries/System.Net.Mail/src/System.Net.Mail.csproj | 2 +- + .../tests/Functional/System.Net.Mail.Functional.Tests.csproj | 2 +- + .../tests/Unit/System.Net.Mail.Unit.Tests.csproj | 2 +- + .../src/System.Net.NameResolution.csproj | 2 +- + .../System.Net.NameResolution.Functional.Tests.csproj | 2 +- + .../tests/PalTests/System.Net.NameResolution.Pal.Tests.csproj | 2 +- + .../src/System.Net.NetworkInformation.csproj | 2 +- + src/libraries/System.Net.Ping/src/System.Net.Ping.csproj | 2 +- + .../FunctionalTests/System.Net.Ping.Functional.Tests.csproj | 2 +- + .../System.Net.Primitives/src/System.Net.Primitives.csproj | 2 +- + .../System.Net.Primitives.Functional.Tests.csproj | 2 +- + .../tests/PalTests/System.Net.Primitives.Pal.Tests.csproj | 2 +- + .../UnitTests/System.Net.Primitives.UnitTests.Tests.csproj | 2 +- + src/libraries/System.Net.Quic/src/System.Net.Quic.csproj | 2 +- + .../FunctionalTests/System.Net.Quic.Functional.Tests.csproj | 2 +- + .../System.Net.Requests/src/System.Net.Requests.csproj | 2 +- + .../System.Net.Security/src/System.Net.Security.csproj | 2 +- + .../tests/FunctionalTests/System.Net.Security.Tests.csproj | 2 +- + .../tests/UnitTests/System.Net.Security.Unit.Tests.csproj | 2 +- + .../System.Net.Sockets/src/System.Net.Sockets.csproj | 2 +- + .../tests/FunctionalTests/System.Net.Sockets.Tests.csproj | 2 +- + .../System.Net.WebSockets/src/System.Net.WebSockets.csproj | 2 +- + .../System.Private.Xml/src/System.Private.Xml.csproj | 2 +- + .../tests/System.Resources.Extensions.Tests.csproj | 2 +- + .../tests/System.Resources.ResourceManager.Tests.csproj | 2 +- + .../System.Runtime.Caching/src/System.Runtime.Caching.csproj | 2 +- + .../tests/System.Runtime.Caching.Tests.csproj | 2 +- + .../tests/System.Runtime.Extensions.Tests.csproj | 2 +- + ...em.Runtime.InteropServices.RuntimeInformation.Tests.csproj | 2 +- + .../System.Runtime.InteropServices.Tests.csproj | 2 +- + .../tests/System.Runtime.Intrinsics.Tests.csproj | 2 +- + .../System.Runtime.Serialization.Formatters.Tests.csproj | 2 +- + .../tests/NlsTests/System.Runtime.Nls.Tests.csproj | 2 +- + .../System.Runtime/tests/System.Runtime.Tests.csproj | 2 +- + .../src/System.Security.AccessControl.csproj | 2 +- + .../tests/System.Security.AccessControl.Tests.csproj | 2 +- + .../tests/System.Security.Cryptography.Cng.Tests.csproj | 2 +- + .../tests/System.Security.Cryptography.Csp.Tests.csproj | 2 +- + .../src/System.Security.Cryptography.Pkcs.csproj | 2 +- + .../tests/System.Security.Cryptography.Pkcs.Tests.csproj | 2 +- + .../src/System.Security.Cryptography.ProtectedData.csproj | 2 +- + .../System.Security.Cryptography.ProtectedData.Tests.csproj | 2 +- + ...System.Security.Cryptography.X509Certificates.Tests.csproj | 2 +- + .../src/System.Security.Cryptography.csproj | 2 +- + .../tests/System.Security.Cryptography.Tests.csproj | 2 +- + .../tests/System.Security.Permissions.Tests.csproj | 2 +- + .../src/System.Security.Principal.Windows.csproj | 2 +- + .../tests/System.Security.Principal.Windows.Tests.csproj | 2 +- + .../src/System.ServiceProcess.ServiceController.csproj | 2 +- + .../System.ServiceProcess.ServiceController.Tests.csproj | 2 +- + src/libraries/System.Speech/src/System.Speech.csproj | 2 +- + src/libraries/System.Speech/tests/System.Speech.Tests.csproj | 2 +- + .../src/System.Text.Encoding.CodePages.csproj | 2 +- + .../src/System.Threading.AccessControl.csproj | 2 +- + .../tests/System.Threading.AccessControl.Tests.csproj | 2 +- + .../src/System.Transactions.Local.csproj | 2 +- + .../src/System.Windows.Extensions.csproj | 2 +- + .../tests/System.Windows.Extensions.Tests.csproj | 2 +- + 134 files changed, 136 insertions(+), 136 deletions(-) + +diff --git a/src/runtime/src/libraries/Common/src/DisableRuntimeMarshalling.cs b/src/runtime/src/libraries/Common/src/DisableRuntimeMarshalling.cs +index 9a6bc544e55..10ec1fce44a 100644 +--- a/src/runtime/src/libraries/Common/src/DisableRuntimeMarshalling.cs ++++ b/src/runtime/src/libraries/Common/src/DisableRuntimeMarshalling.cs +@@ -2,4 +2,4 @@ + // The .NET Foundation licenses this file to you under the MIT license. + + // Used to indicate that runtime marshalling should be disabled. +-[assembly: System.Runtime.CompilerServices.DisableRuntimeMarshalling] ++// [assembly: System.Runtime.CompilerServices.DisableRuntimeMarshalling] +diff --git a/src/runtime/src/libraries/Common/src/Interop/Unix/System.Native/Interop.MkDir.cs b/src/runtime/src/libraries/Common/src/Interop/Unix/System.Native/Interop.MkDir.cs +index a6bb1dc3c0f..751e0ac690b 100644 +--- a/src/runtime/src/libraries/Common/src/Interop/Unix/System.Native/Interop.MkDir.cs ++++ b/src/runtime/src/libraries/Common/src/Interop/Unix/System.Native/Interop.MkDir.cs +@@ -9,8 +9,8 @@ internal static partial class Interop + { + internal static partial class Sys + { +- [LibraryImport(Libraries.SystemNative, EntryPoint = "SystemNative_MkDir", SetLastError = true)] +- private static partial int MkDir(ref byte path, int mode); ++ [DllImport(Libraries.SystemNative, EntryPoint = "SystemNative_MkDir", SetLastError = true)] ++ private static extern int MkDir(ref byte path, int mode); + + internal static int MkDir(ReadOnlySpan path, int mode) + { +diff --git a/src/runtime/src/libraries/Common/tests/Common.Tests.csproj b/src/runtime/src/libraries/Common/tests/Common.Tests.csproj +index 72de3a2ba17..16adf14be81 100644 +--- a/src/runtime/src/libraries/Common/tests/Common.Tests.csproj ++++ b/src/runtime/src/libraries/Common/tests/Common.Tests.csproj +@@ -2,7 +2,7 @@ + + true + true +- $(NetCoreAppCurrent)-windows;$(NetCoreAppCurrent)-Linux;$(NetCoreAppCurrent)-Browser;$(NetCoreAppCurrent)-OSX ++ $(NetCoreAppCurrent)-Linux;$(NetCoreAppCurrent)-Browser;$(NetCoreAppCurrent)-OSX + true + + +diff --git a/src/runtime/src/libraries/Microsoft.CSharp/src/Microsoft.CSharp.csproj b/src/runtime/src/libraries/Microsoft.CSharp/src/Microsoft.CSharp.csproj +index 19ee3bde1b5..d390a06be81 100644 +--- a/src/runtime/src/libraries/Microsoft.CSharp/src/Microsoft.CSharp.csproj ++++ b/src/runtime/src/libraries/Microsoft.CSharp/src/Microsoft.CSharp.csproj +@@ -1,6 +1,6 @@ + + +- $(NetCoreAppCurrent)-windows;$(NetCoreAppCurrent) ++ $(NetCoreAppCurrent) + $(NoWarn);nullable + + +diff --git a/src/runtime/src/libraries/Microsoft.Extensions.Hosting.WindowsServices/tests/Microsoft.Extensions.Hosting.WindowsServices.Tests.csproj b/src/runtime/src/libraries/Microsoft.Extensions.Hosting.WindowsServices/tests/Microsoft.Extensions.Hosting.WindowsServices.Tests.csproj +index 93be9b87c96..10117338458 100644 +--- a/src/runtime/src/libraries/Microsoft.Extensions.Hosting.WindowsServices/tests/Microsoft.Extensions.Hosting.WindowsServices.Tests.csproj ++++ b/src/runtime/src/libraries/Microsoft.Extensions.Hosting.WindowsServices/tests/Microsoft.Extensions.Hosting.WindowsServices.Tests.csproj +@@ -1,8 +1,8 @@ + + + +- +- $(NetCoreAppCurrent)-windows;$(NetFrameworkMinimum) ++ ++ $(NetFrameworkMinimum) + true + + +diff --git a/src/runtime/src/libraries/Microsoft.Extensions.Hosting/tests/UnitTests/Microsoft.Extensions.Hosting.Unit.Tests.csproj b/src/runtime/src/libraries/Microsoft.Extensions.Hosting/tests/UnitTests/Microsoft.Extensions.Hosting.Unit.Tests.csproj +index 0743d679b15..8ec495e8345 100644 +--- a/src/runtime/src/libraries/Microsoft.Extensions.Hosting/tests/UnitTests/Microsoft.Extensions.Hosting.Unit.Tests.csproj ++++ b/src/runtime/src/libraries/Microsoft.Extensions.Hosting/tests/UnitTests/Microsoft.Extensions.Hosting.Unit.Tests.csproj +@@ -1,7 +1,7 @@ +  + + +- $(NetCoreAppCurrent)-windows;$(NetCoreAppCurrent);$(NetFrameworkMinimum) ++ $(NetCoreAppCurrent);$(NetFrameworkMinimum) + true + true + true +diff --git a/src/runtime/src/libraries/Microsoft.Extensions.Logging/tests/Common/Microsoft.Extensions.Logging.Tests.csproj b/src/runtime/src/libraries/Microsoft.Extensions.Logging/tests/Common/Microsoft.Extensions.Logging.Tests.csproj +index 6586026447c..c284ea4f48c 100644 +--- a/src/runtime/src/libraries/Microsoft.Extensions.Logging/tests/Common/Microsoft.Extensions.Logging.Tests.csproj ++++ b/src/runtime/src/libraries/Microsoft.Extensions.Logging/tests/Common/Microsoft.Extensions.Logging.Tests.csproj +@@ -1,7 +1,7 @@ + + + +- $(NetCoreAppCurrent)-windows;$(NetCoreAppCurrent);$(NetFrameworkMinimum) ++ $(NetCoreAppCurrent);$(NetFrameworkMinimum) + true + + +diff --git a/src/runtime/src/libraries/Microsoft.Win32.Primitives/tests/Microsoft.Win32.Primitives.Tests.csproj b/src/runtime/src/libraries/Microsoft.Win32.Primitives/tests/Microsoft.Win32.Primitives.Tests.csproj +index aa61641a9fa..56ed9a2c927 100644 +--- a/src/runtime/src/libraries/Microsoft.Win32.Primitives/tests/Microsoft.Win32.Primitives.Tests.csproj ++++ b/src/runtime/src/libraries/Microsoft.Win32.Primitives/tests/Microsoft.Win32.Primitives.Tests.csproj +@@ -1,6 +1,6 @@ + + +- $(NetCoreAppCurrent)-windows;$(NetCoreAppCurrent)-Unix;$(NetCoreAppCurrent)-Browser ++ $(NetCoreAppCurrent)-Unix;$(NetCoreAppCurrent)-Browser + + + +diff --git a/src/runtime/src/libraries/Microsoft.Win32.Registry.AccessControl/src/Microsoft.Win32.Registry.AccessControl.csproj b/src/runtime/src/libraries/Microsoft.Win32.Registry.AccessControl/src/Microsoft.Win32.Registry.AccessControl.csproj +index 7f6d66bdba8..168a20a1115 100644 +--- a/src/runtime/src/libraries/Microsoft.Win32.Registry.AccessControl/src/Microsoft.Win32.Registry.AccessControl.csproj ++++ b/src/runtime/src/libraries/Microsoft.Win32.Registry.AccessControl/src/Microsoft.Win32.Registry.AccessControl.csproj +@@ -1,6 +1,6 @@ + + +- $(NetCoreAppCurrent)-windows;$(NetCoreAppCurrent);$(NetCoreAppMinimum)-windows;$(NetCoreAppMinimum);netstandard2.0;$(NetFrameworkMinimum) ++ $(NetCoreAppCurrent);$(NetCoreAppMinimum);netstandard2.0;$(NetFrameworkMinimum) + true + true + Provides support for managing access and audit control lists for Microsoft.Win32.RegistryKey. +diff --git a/src/runtime/src/libraries/Microsoft.Win32.Registry.AccessControl/tests/Microsoft.Win32.Registry.AccessControl.Tests.csproj b/src/runtime/src/libraries/Microsoft.Win32.Registry.AccessControl/tests/Microsoft.Win32.Registry.AccessControl.Tests.csproj +index 76442c6fb1f..e92db98f790 100644 +--- a/src/runtime/src/libraries/Microsoft.Win32.Registry.AccessControl/tests/Microsoft.Win32.Registry.AccessControl.Tests.csproj ++++ b/src/runtime/src/libraries/Microsoft.Win32.Registry.AccessControl/tests/Microsoft.Win32.Registry.AccessControl.Tests.csproj +@@ -1,6 +1,6 @@ + + +- $(NetCoreAppCurrent)-windows;$(NetFrameworkMinimum) ++ $(NetFrameworkMinimum) + + + +diff --git a/src/runtime/src/libraries/Microsoft.Win32.Registry/src/Microsoft.Win32.Registry.csproj b/src/runtime/src/libraries/Microsoft.Win32.Registry/src/Microsoft.Win32.Registry.csproj +index 98652656e9c..1972ac8ad18 100644 +--- a/src/runtime/src/libraries/Microsoft.Win32.Registry/src/Microsoft.Win32.Registry.csproj ++++ b/src/runtime/src/libraries/Microsoft.Win32.Registry/src/Microsoft.Win32.Registry.csproj +@@ -2,7 +2,7 @@ + + true + $(DefineConstants);REGISTRY_ASSEMBLY +- $(NetCoreAppCurrent)-windows;$(NetCoreAppCurrent) ++ $(NetCoreAppCurrent) + $(NoWarn);CA2249 + + +diff --git a/src/runtime/src/libraries/Microsoft.Win32.Registry/tests/Microsoft.Win32.Registry.Tests.csproj b/src/runtime/src/libraries/Microsoft.Win32.Registry/tests/Microsoft.Win32.Registry.Tests.csproj +index 1feb97ef841..ae5ad78ce7f 100644 +--- a/src/runtime/src/libraries/Microsoft.Win32.Registry/tests/Microsoft.Win32.Registry.Tests.csproj ++++ b/src/runtime/src/libraries/Microsoft.Win32.Registry/tests/Microsoft.Win32.Registry.Tests.csproj +@@ -1,7 +1,7 @@ + + + $(DefineConstants);REGISTRY_ASSEMBLY +- $(NetCoreAppCurrent)-windows ++ + true + true + +diff --git a/src/runtime/src/libraries/Microsoft.Win32.SystemEvents/src/Microsoft.Win32.SystemEvents.csproj b/src/runtime/src/libraries/Microsoft.Win32.SystemEvents/src/Microsoft.Win32.SystemEvents.csproj +index d7e7dc61211..640179e2960 100644 +--- a/src/runtime/src/libraries/Microsoft.Win32.SystemEvents/src/Microsoft.Win32.SystemEvents.csproj ++++ b/src/runtime/src/libraries/Microsoft.Win32.SystemEvents/src/Microsoft.Win32.SystemEvents.csproj +@@ -1,6 +1,6 @@ + + +- $(NetCoreAppCurrent)-windows;$(NetCoreAppCurrent);$(NetCoreAppMinimum)-windows;$(NetCoreAppMinimum);netstandard2.0;$(NetFrameworkMinimum) ++ $(NetCoreAppCurrent);$(NetCoreAppMinimum);netstandard2.0;$(NetFrameworkMinimum) + true + true + Provides access to Windows system event notifications. +diff --git a/src/runtime/src/libraries/Microsoft.Win32.SystemEvents/tests/Microsoft.Win32.SystemEvents.Tests.csproj b/src/runtime/src/libraries/Microsoft.Win32.SystemEvents/tests/Microsoft.Win32.SystemEvents.Tests.csproj +index 1a8e130bee4..131134daa80 100644 +--- a/src/runtime/src/libraries/Microsoft.Win32.SystemEvents/tests/Microsoft.Win32.SystemEvents.Tests.csproj ++++ b/src/runtime/src/libraries/Microsoft.Win32.SystemEvents/tests/Microsoft.Win32.SystemEvents.Tests.csproj +@@ -1,6 +1,6 @@ + + +- $(NetCoreAppCurrent)-windows;$(NetFrameworkMinimum) ++ $(NetFrameworkMinimum) + true + true + true +diff --git a/src/runtime/src/libraries/System.Console/src/System.Console.csproj b/src/runtime/src/libraries/System.Console/src/System.Console.csproj +index 1c45c5a8f93..880b740def1 100644 +--- a/src/runtime/src/libraries/System.Console/src/System.Console.csproj ++++ b/src/runtime/src/libraries/System.Console/src/System.Console.csproj +@@ -1,7 +1,7 @@ + + + true +- $(NetCoreAppCurrent)-windows;$(NetCoreAppCurrent)-Unix;$(NetCoreAppCurrent)-Android;$(NetCoreAppCurrent)-iOS;$(NetCoreAppCurrent)-tvOS;$(NetCoreAppCurrent)-Browser;$(NetCoreAppCurrent) ++ $(NetCoreAppCurrent)-Unix;$(NetCoreAppCurrent)-Android;$(NetCoreAppCurrent)-iOS;$(NetCoreAppCurrent)-tvOS;$(NetCoreAppCurrent)-Browser;$(NetCoreAppCurrent) + + + +diff --git a/src/runtime/src/libraries/System.Console/tests/System.Console.Tests.csproj b/src/runtime/src/libraries/System.Console/tests/System.Console.Tests.csproj +index f4b451d30e1..418f9b30039 100644 +--- a/src/runtime/src/libraries/System.Console/tests/System.Console.Tests.csproj ++++ b/src/runtime/src/libraries/System.Console/tests/System.Console.Tests.csproj +@@ -2,7 +2,7 @@ + + true + true +- $(NetCoreAppCurrent);$(NetCoreAppCurrent)-windows ++ $(NetCoreAppCurrent); + true + ..\src\Resources\Strings.resx + +diff --git a/src/runtime/src/libraries/System.Data.Odbc/src/System.Data.Odbc.csproj b/src/runtime/src/libraries/System.Data.Odbc/src/System.Data.Odbc.csproj +index 8fad480d961..6efc49b3004 100644 +--- a/src/runtime/src/libraries/System.Data.Odbc/src/System.Data.Odbc.csproj ++++ b/src/runtime/src/libraries/System.Data.Odbc/src/System.Data.Odbc.csproj +@@ -1,6 +1,6 @@ + + +- $(NetCoreAppCurrent)-windows;$(NetCoreAppCurrent)-FreeBSD;$(NetCoreAppCurrent)-illumos;$(NetCoreAppCurrent)-Solaris;$(NetCoreAppCurrent)-Linux;$(NetCoreAppCurrent)-OSX;$(NetCoreAppCurrent)-iOS;$(NetCoreAppCurrent)-tvOS;$(NetCoreAppCurrent);$(NetCoreAppMinimum)-windows;$(NetCoreAppMinimum)-FreeBSD;$(NetCoreAppMinimum)-Linux;$(NetCoreAppMinimum)-OSX;$(NetCoreAppMinimum);netstandard2.0;$(NetFrameworkMinimum) ++ $(NetCoreAppCurrent)-FreeBSD;$(NetCoreAppCurrent)-illumos;$(NetCoreAppCurrent)-Solaris;$(NetCoreAppCurrent)-Linux;$(NetCoreAppCurrent)-OSX;$(NetCoreAppCurrent)-iOS;$(NetCoreAppCurrent)-tvOS;$(NetCoreAppCurrent);$(NetCoreAppMinimum)-FreeBSD;$(NetCoreAppMinimum)-Linux;$(NetCoreAppMinimum)-OSX;$(NetCoreAppMinimum);netstandard2.0;$(NetFrameworkMinimum) + true + $(NoWarn);CA2249;CA1838;CA1846 + +diff --git a/src/runtime/src/libraries/System.Data.Odbc/tests/System.Data.Odbc.Tests.csproj b/src/runtime/src/libraries/System.Data.Odbc/tests/System.Data.Odbc.Tests.csproj +index 85a15ebe3d2..a8183df7eef 100644 +--- a/src/runtime/src/libraries/System.Data.Odbc/tests/System.Data.Odbc.Tests.csproj ++++ b/src/runtime/src/libraries/System.Data.Odbc/tests/System.Data.Odbc.Tests.csproj +@@ -1,6 +1,6 @@ + + +- $(NetCoreAppCurrent)-windows;$(NetCoreAppCurrent)-FreeBSD;$(NetCoreAppCurrent)-Linux;$(NetCoreAppCurrent)-OSX;$(NetCoreAppCurrent)-iOS;$(NetCoreAppCurrent)-tvOS;$(NetFrameworkMinimum) ++ $(NetCoreAppCurrent)-FreeBSD;$(NetCoreAppCurrent)-Linux;$(NetCoreAppCurrent)-OSX;$(NetCoreAppCurrent)-iOS;$(NetCoreAppCurrent)-tvOS;$(NetFrameworkMinimum) + + + +diff --git a/src/runtime/src/libraries/System.Data.OleDb/src/System.Data.OleDb.csproj b/src/runtime/src/libraries/System.Data.OleDb/src/System.Data.OleDb.csproj +index 1a1756a85ad..0fa7a416a0f 100644 +--- a/src/runtime/src/libraries/System.Data.OleDb/src/System.Data.OleDb.csproj ++++ b/src/runtime/src/libraries/System.Data.OleDb/src/System.Data.OleDb.csproj +@@ -1,6 +1,6 @@ + + +- $(NetCoreAppCurrent)-windows;$(NetCoreAppCurrent);$(NetCoreAppMinimum)-windows;$(NetCoreAppMinimum);netstandard2.0;$(NetFrameworkMinimum) ++ $(NetCoreAppCurrent);$(NetCoreAppMinimum);netstandard2.0;$(NetFrameworkMinimum) + true + + $(NoWarn);CA2249 +diff --git a/src/runtime/src/libraries/System.Data.OleDb/tests/System.Data.OleDb.Tests.csproj b/src/runtime/src/libraries/System.Data.OleDb/tests/System.Data.OleDb.Tests.csproj +index 6f72486a944..66d1f92904e 100644 +--- a/src/runtime/src/libraries/System.Data.OleDb/tests/System.Data.OleDb.Tests.csproj ++++ b/src/runtime/src/libraries/System.Data.OleDb/tests/System.Data.OleDb.Tests.csproj +@@ -1,6 +1,6 @@ + + +- $(NetCoreAppCurrent)-windows;$(NetFrameworkMinimum) ++ $(NetFrameworkMinimum) + + + +diff --git a/src/runtime/src/libraries/System.Diagnostics.Debug/tests/System.Diagnostics.Debug.Tests.csproj b/src/runtime/src/libraries/System.Diagnostics.Debug/tests/System.Diagnostics.Debug.Tests.csproj +index 601c003fc30..6c22aac1e01 100644 +--- a/src/runtime/src/libraries/System.Diagnostics.Debug/tests/System.Diagnostics.Debug.Tests.csproj ++++ b/src/runtime/src/libraries/System.Diagnostics.Debug/tests/System.Diagnostics.Debug.Tests.csproj +@@ -1,7 +1,7 @@ + + + System.Diagnostics.Tests +- $(NetCoreAppCurrent)-windows;$(NetCoreAppCurrent)-Unix ++ $(NetCoreAppCurrent)-Unix + true + + false +diff --git a/src/runtime/src/libraries/System.Diagnostics.EventLog/src/System.Diagnostics.EventLog.csproj b/src/runtime/src/libraries/System.Diagnostics.EventLog/src/System.Diagnostics.EventLog.csproj +index dfae87cc90a..affb0753616 100644 +--- a/src/runtime/src/libraries/System.Diagnostics.EventLog/src/System.Diagnostics.EventLog.csproj ++++ b/src/runtime/src/libraries/System.Diagnostics.EventLog/src/System.Diagnostics.EventLog.csproj +@@ -1,6 +1,6 @@ + + +- $(NetCoreAppCurrent)-windows;$(NetCoreAppCurrent);$(NetCoreAppMinimum)-windows;$(NetCoreAppMinimum);netstandard2.0;$(NetFrameworkMinimum) ++ $(NetCoreAppCurrent);$(NetCoreAppMinimum);netstandard2.0;$(NetFrameworkMinimum) + true + $(NoWarn);CA1847 + + +diff --git a/src/runtime/src/libraries/System.Diagnostics.FileVersionInfo/tests/System.Diagnostics.FileVersionInfo.Tests/System.Diagnostics.FileVersionInfo.Tests.csproj b/src/runtime/src/libraries/System.Diagnostics.FileVersionInfo/tests/System.Diagnostics.FileVersionInfo.Tests/System.Diagnostics.FileVersionInfo.Tests.csproj +index d052ccaa0b6..3563132cda3 100644 +--- a/src/runtime/src/libraries/System.Diagnostics.FileVersionInfo/tests/System.Diagnostics.FileVersionInfo.Tests/System.Diagnostics.FileVersionInfo.Tests.csproj ++++ b/src/runtime/src/libraries/System.Diagnostics.FileVersionInfo/tests/System.Diagnostics.FileVersionInfo.Tests/System.Diagnostics.FileVersionInfo.Tests.csproj +@@ -1,6 +1,6 @@ + + +- $(NetCoreAppCurrent)-windows;$(NetCoreAppCurrent)-Unix;$(NetCoreAppCurrent)-Browser ++ $(NetCoreAppCurrent)-Unix;$(NetCoreAppCurrent)-Browser + true + true + true +diff --git a/src/runtime/src/libraries/System.Diagnostics.PerformanceCounter/src/System.Diagnostics.PerformanceCounter.csproj b/src/runtime/src/libraries/System.Diagnostics.PerformanceCounter/src/System.Diagnostics.PerformanceCounter.csproj +index a0dbb8e208b..4ae893f4765 100644 +--- a/src/runtime/src/libraries/System.Diagnostics.PerformanceCounter/src/System.Diagnostics.PerformanceCounter.csproj ++++ b/src/runtime/src/libraries/System.Diagnostics.PerformanceCounter/src/System.Diagnostics.PerformanceCounter.csproj +@@ -1,6 +1,6 @@ + + +- $(NetCoreAppCurrent)-windows;$(NetCoreAppCurrent);$(NetCoreAppMinimum)-windows;$(NetCoreAppMinimum);netstandard2.0;$(NetFrameworkMinimum) ++ $(NetCoreAppCurrent);$(NetCoreAppMinimum);netstandard2.0;$(NetFrameworkMinimum) + true + $(NoWarn);CA1847 + annotations +diff --git a/src/runtime/src/libraries/System.Diagnostics.PerformanceCounter/tests/System.Diagnostics.PerformanceCounter.Tests.csproj b/src/runtime/src/libraries/System.Diagnostics.PerformanceCounter/tests/System.Diagnostics.PerformanceCounter.Tests.csproj +index 2146bf437cb..dd3dfeb4ae4 100644 +--- a/src/runtime/src/libraries/System.Diagnostics.PerformanceCounter/tests/System.Diagnostics.PerformanceCounter.Tests.csproj ++++ b/src/runtime/src/libraries/System.Diagnostics.PerformanceCounter/tests/System.Diagnostics.PerformanceCounter.Tests.csproj +@@ -1,7 +1,7 @@ + + + true +- $(NetCoreAppCurrent)-windows;$(NetFrameworkMinimum) ++ $(NetFrameworkMinimum) + + + +diff --git a/src/runtime/src/libraries/System.Diagnostics.Process/src/System.Diagnostics.Process.csproj b/src/runtime/src/libraries/System.Diagnostics.Process/src/System.Diagnostics.Process.csproj +index 2c273820afb..c158c49ec2e 100644 +--- a/src/runtime/src/libraries/System.Diagnostics.Process/src/System.Diagnostics.Process.csproj ++++ b/src/runtime/src/libraries/System.Diagnostics.Process/src/System.Diagnostics.Process.csproj +@@ -2,7 +2,7 @@ + + $(DefineConstants);FEATURE_REGISTRY + true +- $(NetCoreAppCurrent)-windows;$(NetCoreAppCurrent)-FreeBSD;$(NetCoreAppCurrent)-Linux;$(NetCoreAppCurrent)-OSX;$(NetCoreAppCurrent)-MacCatalyst;$(NetCoreAppCurrent)-iOS;$(NetCoreAppCurrent)-tvOS;$(NetCoreAppCurrent) ++ $(NetCoreAppCurrent)-FreeBSD;$(NetCoreAppCurrent)-Linux;$(NetCoreAppCurrent)-OSX;$(NetCoreAppCurrent)-MacCatalyst;$(NetCoreAppCurrent)-iOS;$(NetCoreAppCurrent)-tvOS;$(NetCoreAppCurrent) + + + +diff --git a/src/runtime/src/libraries/System.Diagnostics.Process/tests/System.Diagnostics.Process.Tests.csproj b/src/runtime/src/libraries/System.Diagnostics.Process/tests/System.Diagnostics.Process.Tests.csproj +index e23bb4a94a7..bfa37a8f919 100644 +--- a/src/runtime/src/libraries/System.Diagnostics.Process/tests/System.Diagnostics.Process.Tests.csproj ++++ b/src/runtime/src/libraries/System.Diagnostics.Process/tests/System.Diagnostics.Process.Tests.csproj +@@ -2,7 +2,7 @@ + + true + true +- $(NetCoreAppCurrent)-windows;$(NetCoreAppCurrent)-Unix;$(NetCoreAppCurrent)-Browser ++ $(NetCoreAppCurrent)-Unix;$(NetCoreAppCurrent)-Browser + true + true + +diff --git a/src/runtime/src/libraries/System.Diagnostics.Tracing/tests/System.Diagnostics.Tracing.Tests.csproj b/src/runtime/src/libraries/System.Diagnostics.Tracing/tests/System.Diagnostics.Tracing.Tests.csproj +index 35b1a833abb..18c323c28ae 100644 +--- a/src/runtime/src/libraries/System.Diagnostics.Tracing/tests/System.Diagnostics.Tracing.Tests.csproj ++++ b/src/runtime/src/libraries/System.Diagnostics.Tracing/tests/System.Diagnostics.Tracing.Tests.csproj +@@ -1,7 +1,7 @@ + + + true +- $(NetCoreAppCurrent)-windows;$(NetCoreAppCurrent) ++ $(NetCoreAppCurrent) + true + true + +diff --git a/src/runtime/src/libraries/System.DirectoryServices.AccountManagement/src/System.DirectoryServices.AccountManagement.csproj b/src/runtime/src/libraries/System.DirectoryServices.AccountManagement/src/System.DirectoryServices.AccountManagement.csproj +index 8152e3c7f05..be32f5d3b5d 100644 +--- a/src/runtime/src/libraries/System.DirectoryServices.AccountManagement/src/System.DirectoryServices.AccountManagement.csproj ++++ b/src/runtime/src/libraries/System.DirectoryServices.AccountManagement/src/System.DirectoryServices.AccountManagement.csproj +@@ -1,6 +1,6 @@ +  + +- $(NetCoreAppCurrent)-windows;$(NetCoreAppCurrent);$(NetCoreAppMinimum)-windows;$(NetCoreAppMinimum);netstandard2.0 ++ $(NetCoreAppCurrent);$(NetCoreAppMinimum);netstandard2.0 + true + true + $(NoWarn);CA2249 +diff --git a/src/runtime/src/libraries/System.DirectoryServices.AccountManagement/tests/System.DirectoryServices.AccountManagement.Tests.csproj b/src/runtime/src/libraries/System.DirectoryServices.AccountManagement/tests/System.DirectoryServices.AccountManagement.Tests.csproj +index 0bb24c8eadd..6155cac4498 100644 +--- a/src/runtime/src/libraries/System.DirectoryServices.AccountManagement/tests/System.DirectoryServices.AccountManagement.Tests.csproj ++++ b/src/runtime/src/libraries/System.DirectoryServices.AccountManagement/tests/System.DirectoryServices.AccountManagement.Tests.csproj +@@ -1,6 +1,6 @@ + + +- $(NetCoreAppCurrent)-windows;net48 ++ net48 + + + +diff --git a/src/runtime/src/libraries/System.DirectoryServices.Protocols/src/System.DirectoryServices.Protocols.csproj b/src/runtime/src/libraries/System.DirectoryServices.Protocols/src/System.DirectoryServices.Protocols.csproj +index 56862519355..3e11d02035a 100644 +--- a/src/runtime/src/libraries/System.DirectoryServices.Protocols/src/System.DirectoryServices.Protocols.csproj ++++ b/src/runtime/src/libraries/System.DirectoryServices.Protocols/src/System.DirectoryServices.Protocols.csproj +@@ -1,6 +1,6 @@ + + +- $(NetCoreAppCurrent)-windows;$(NetCoreAppCurrent)-OSX;$(NetCoreAppCurrent)-Linux;$(NetCoreAppCurrent);$(NetCoreAppMinimum)-windows;$(NetCoreAppMinimum)-OSX;$(NetCoreAppMinimum)-Linux;$(NetCoreAppMinimum);netstandard2.0 ++ $(NetCoreAppCurrent)-OSX;$(NetCoreAppCurrent)-Linux;$(NetCoreAppCurrent);$(NetCoreAppMinimum)-OSX;$(NetCoreAppMinimum)-Linux;$(NetCoreAppMinimum);netstandard2.0 + true + true + true +diff --git a/src/runtime/src/libraries/System.DirectoryServices.Protocols/tests/System.DirectoryServices.Protocols.Tests.csproj b/src/runtime/src/libraries/System.DirectoryServices.Protocols/tests/System.DirectoryServices.Protocols.Tests.csproj +index 9a78a3acd54..632de15c235 100644 +--- a/src/runtime/src/libraries/System.DirectoryServices.Protocols/tests/System.DirectoryServices.Protocols.Tests.csproj ++++ b/src/runtime/src/libraries/System.DirectoryServices.Protocols/tests/System.DirectoryServices.Protocols.Tests.csproj +@@ -1,6 +1,6 @@ + + +- $(NetCoreAppCurrent)-windows;$(NetCoreAppCurrent)-Linux;$(NetCoreAppCurrent)-OSX;net48 ++ $(NetCoreAppCurrent)-Linux;$(NetCoreAppCurrent)-OSX;net48 + + + +diff --git a/src/runtime/src/libraries/System.DirectoryServices/src/System.DirectoryServices.csproj b/src/runtime/src/libraries/System.DirectoryServices/src/System.DirectoryServices.csproj +index 83a118e940d..7b045dc3c0b 100644 +--- a/src/runtime/src/libraries/System.DirectoryServices/src/System.DirectoryServices.csproj ++++ b/src/runtime/src/libraries/System.DirectoryServices/src/System.DirectoryServices.csproj +@@ -1,6 +1,6 @@ +  + +- $(NetCoreAppCurrent)-windows;$(NetCoreAppCurrent);$(NetCoreAppMinimum)-windows;$(NetCoreAppMinimum);netstandard2.0 ++ $(NetCoreAppCurrent);$(NetCoreAppMinimum);netstandard2.0 + true + true + + $(NoWarn);SYSLIB0003 +- $(NetCoreAppCurrent)-windows;net48 ++ net48 + + + +diff --git a/src/runtime/src/libraries/System.Drawing.Common/src/System.Drawing.Common.csproj b/src/runtime/src/libraries/System.Drawing.Common/src/System.Drawing.Common.csproj +index df9c7ef864a..9cf9a016204 100644 +--- a/src/runtime/src/libraries/System.Drawing.Common/src/System.Drawing.Common.csproj ++++ b/src/runtime/src/libraries/System.Drawing.Common/src/System.Drawing.Common.csproj +@@ -1,6 +1,6 @@ + + +- $(NetCoreAppCurrent)-windows;$(NetCoreAppCurrent);$(NetCoreAppMinimum)-windows;$(NetCoreAppMinimum);netstandard2.0;$(NetFrameworkMinimum) ++ $(NetCoreAppCurrent);$(NetCoreAppMinimum);netstandard2.0;$(NetFrameworkMinimum) + $(DefineConstants);DRAWING_NAMESPACE + true + CS0618 +diff --git a/src/runtime/src/libraries/System.Drawing.Common/tests/System.Drawing.Common.Tests.csproj b/src/runtime/src/libraries/System.Drawing.Common/tests/System.Drawing.Common.Tests.csproj +index 33f175f1456..0b14a790777 100644 +--- a/src/runtime/src/libraries/System.Drawing.Common/tests/System.Drawing.Common.Tests.csproj ++++ b/src/runtime/src/libraries/System.Drawing.Common/tests/System.Drawing.Common.Tests.csproj +@@ -2,7 +2,7 @@ + + true + true +- $(NetCoreAppCurrent)-windows;net48 ++ net48 + true + + +diff --git a/src/runtime/src/libraries/System.Drawing.Primitives/src/System.Drawing.Primitives.csproj b/src/runtime/src/libraries/System.Drawing.Primitives/src/System.Drawing.Primitives.csproj +index 697be7783e2..2efcb61d950 100644 +--- a/src/runtime/src/libraries/System.Drawing.Primitives/src/System.Drawing.Primitives.csproj ++++ b/src/runtime/src/libraries/System.Drawing.Primitives/src/System.Drawing.Primitives.csproj +@@ -1,7 +1,7 @@ +  + + System.Drawing +- $(NetCoreAppCurrent)-windows;$(NetCoreAppCurrent) ++ $(NetCoreAppCurrent) + + + +diff --git a/src/runtime/src/libraries/System.Formats.Tar/src/System.Formats.Tar.csproj b/src/runtime/src/libraries/System.Formats.Tar/src/System.Formats.Tar.csproj +index 33a9aa8c1dc..ea69b03b8a8 100644 +--- a/src/runtime/src/libraries/System.Formats.Tar/src/System.Formats.Tar.csproj ++++ b/src/runtime/src/libraries/System.Formats.Tar/src/System.Formats.Tar.csproj +@@ -1,6 +1,6 @@ + + +- $(NetCoreAppCurrent)-windows;$(NetCoreAppCurrent)-Unix;$(NetCoreAppCurrent) ++ $(NetCoreAppCurrent)-Unix;$(NetCoreAppCurrent) + true + + +diff --git a/src/runtime/src/libraries/System.Formats.Tar/tests/System.Formats.Tar.Tests.csproj b/src/runtime/src/libraries/System.Formats.Tar/tests/System.Formats.Tar.Tests.csproj +index ca1b4d99e50..d4475c8781f 100644 +--- a/src/runtime/src/libraries/System.Formats.Tar/tests/System.Formats.Tar.Tests.csproj ++++ b/src/runtime/src/libraries/System.Formats.Tar/tests/System.Formats.Tar.Tests.csproj +@@ -1,6 +1,6 @@ + + +- $(NetCoreAppCurrent)-windows;$(NetCoreAppCurrent)-Unix ++ $(NetCoreAppCurrent)-Unix + true + $(LibrariesProjectRoot)/Common/tests/Resources/Strings.resx + true +diff --git a/src/runtime/src/libraries/System.Globalization.Extensions/tests/NlsTests/System.Globalization.Extensions.Nls.Tests.csproj b/src/runtime/src/libraries/System.Globalization.Extensions/tests/NlsTests/System.Globalization.Extensions.Nls.Tests.csproj +index 61a409ffedc..38f61fb9197 100644 +--- a/src/runtime/src/libraries/System.Globalization.Extensions/tests/NlsTests/System.Globalization.Extensions.Nls.Tests.csproj ++++ b/src/runtime/src/libraries/System.Globalization.Extensions/tests/NlsTests/System.Globalization.Extensions.Nls.Tests.csproj +@@ -1,6 +1,6 @@ +  + +- $(NetCoreAppCurrent)-windows ++ + true + + +diff --git a/src/runtime/src/libraries/System.Globalization/tests/NlsTests/System.Globalization.Nls.Tests.csproj b/src/runtime/src/libraries/System.Globalization/tests/NlsTests/System.Globalization.Nls.Tests.csproj +index a9aeef49807..0284070ad05 100644 +--- a/src/runtime/src/libraries/System.Globalization/tests/NlsTests/System.Globalization.Nls.Tests.csproj ++++ b/src/runtime/src/libraries/System.Globalization/tests/NlsTests/System.Globalization.Nls.Tests.csproj +@@ -4,7 +4,7 @@ + true + true + +- $(NetCoreAppCurrent)-windows ++ + 14.0 + + +diff --git a/src/runtime/src/libraries/System.IO.Compression.Brotli/src/System.IO.Compression.Brotli.csproj b/src/runtime/src/libraries/System.IO.Compression.Brotli/src/System.IO.Compression.Brotli.csproj +index ced12496d65..d67e262836b 100644 +--- a/src/runtime/src/libraries/System.IO.Compression.Brotli/src/System.IO.Compression.Brotli.csproj ++++ b/src/runtime/src/libraries/System.IO.Compression.Brotli/src/System.IO.Compression.Brotli.csproj +@@ -1,7 +1,7 @@ +  + + true +- $(NetCoreAppCurrent)-windows;$(NetCoreAppCurrent)-Unix;$(NetCoreAppCurrent) ++ $(NetCoreAppCurrent)-Unix;$(NetCoreAppCurrent) + + + +diff --git a/src/runtime/src/libraries/System.IO.Compression.Brotli/tests/System.IO.Compression.Brotli.Tests.csproj b/src/runtime/src/libraries/System.IO.Compression.Brotli/tests/System.IO.Compression.Brotli.Tests.csproj +index 709f655902d..607c50be625 100644 +--- a/src/runtime/src/libraries/System.IO.Compression.Brotli/tests/System.IO.Compression.Brotli.Tests.csproj ++++ b/src/runtime/src/libraries/System.IO.Compression.Brotli/tests/System.IO.Compression.Brotli.Tests.csproj +@@ -1,6 +1,6 @@ + + +- $(NetCoreAppCurrent)-windows;$(NetCoreAppCurrent)-Unix;$(NetCoreAppCurrent)-Browser ++ $(NetCoreAppCurrent)-Unix;$(NetCoreAppCurrent)-Browser + true + true + +diff --git a/src/runtime/src/libraries/System.IO.Compression.ZipFile/src/System.IO.Compression.ZipFile.csproj b/src/runtime/src/libraries/System.IO.Compression.ZipFile/src/System.IO.Compression.ZipFile.csproj +index 94999191663..f8506c2adbc 100644 +--- a/src/runtime/src/libraries/System.IO.Compression.ZipFile/src/System.IO.Compression.ZipFile.csproj ++++ b/src/runtime/src/libraries/System.IO.Compression.ZipFile/src/System.IO.Compression.ZipFile.csproj +@@ -1,7 +1,7 @@ +  + + true +- $(NetCoreAppCurrent)-windows;$(NetCoreAppCurrent) ++ $(NetCoreAppCurrent) + + + +diff --git a/src/runtime/src/libraries/System.IO.Compression.ZipFile/tests/System.IO.Compression.ZipFile.Tests.csproj b/src/runtime/src/libraries/System.IO.Compression.ZipFile/tests/System.IO.Compression.ZipFile.Tests.csproj +index 29c88cb2f9c..b049a0f3caa 100644 +--- a/src/runtime/src/libraries/System.IO.Compression.ZipFile/tests/System.IO.Compression.ZipFile.Tests.csproj ++++ b/src/runtime/src/libraries/System.IO.Compression.ZipFile/tests/System.IO.Compression.ZipFile.Tests.csproj +@@ -3,7 +3,7 @@ + true + true + true +- $(NetCoreAppCurrent)-windows;$(NetCoreAppCurrent)-Unix;$(NetCoreAppCurrent)-Browser ++ $(NetCoreAppCurrent)-Unix;$(NetCoreAppCurrent)-Browser + + + +diff --git a/src/runtime/src/libraries/System.IO.Compression/src/System.IO.Compression.csproj b/src/runtime/src/libraries/System.IO.Compression/src/System.IO.Compression.csproj +index 80007bcfe5f..ee0bf21ccfc 100644 +--- a/src/runtime/src/libraries/System.IO.Compression/src/System.IO.Compression.csproj ++++ b/src/runtime/src/libraries/System.IO.Compression/src/System.IO.Compression.csproj +@@ -1,7 +1,7 @@ + + + true +- $(NetCoreAppCurrent)-windows;$(NetCoreAppCurrent)-Unix;$(NetCoreAppCurrent)-Browser;$(NetCoreAppCurrent) ++ $(NetCoreAppCurrent)-Unix;$(NetCoreAppCurrent)-Browser;$(NetCoreAppCurrent) + + + +diff --git a/src/runtime/src/libraries/System.IO.Compression/tests/System.IO.Compression.Tests.csproj b/src/runtime/src/libraries/System.IO.Compression/tests/System.IO.Compression.Tests.csproj +index 229119e3aa3..2fcad878c05 100644 +--- a/src/runtime/src/libraries/System.IO.Compression/tests/System.IO.Compression.Tests.csproj ++++ b/src/runtime/src/libraries/System.IO.Compression/tests/System.IO.Compression.Tests.csproj +@@ -1,6 +1,6 @@ + + +- $(NetCoreAppCurrent)-windows;$(NetCoreAppCurrent)-Unix;$(NetCoreAppCurrent)-Browser ++ $(NetCoreAppCurrent)-Unix;$(NetCoreAppCurrent)-Browser + true + + +diff --git a/src/runtime/src/libraries/System.IO.FileSystem.AccessControl/src/System.IO.FileSystem.AccessControl.csproj b/src/runtime/src/libraries/System.IO.FileSystem.AccessControl/src/System.IO.FileSystem.AccessControl.csproj +index 494ef1959db..08ddf1c7dd9 100644 +--- a/src/runtime/src/libraries/System.IO.FileSystem.AccessControl/src/System.IO.FileSystem.AccessControl.csproj ++++ b/src/runtime/src/libraries/System.IO.FileSystem.AccessControl/src/System.IO.FileSystem.AccessControl.csproj +@@ -1,6 +1,6 @@ + + +- $(NetCoreAppCurrent)-windows;$(NetCoreAppCurrent) ++ $(NetCoreAppCurrent) + + + +diff --git a/src/runtime/src/libraries/System.IO.FileSystem.AccessControl/tests/System.IO.FileSystem.AccessControl.Tests.csproj b/src/runtime/src/libraries/System.IO.FileSystem.AccessControl/tests/System.IO.FileSystem.AccessControl.Tests.csproj +index c42a680fa2f..fe12ddd7911 100644 +--- a/src/runtime/src/libraries/System.IO.FileSystem.AccessControl/tests/System.IO.FileSystem.AccessControl.Tests.csproj ++++ b/src/runtime/src/libraries/System.IO.FileSystem.AccessControl/tests/System.IO.FileSystem.AccessControl.Tests.csproj +@@ -1,6 +1,6 @@ + + +- $(NetCoreAppCurrent)-windows ++ + + + +diff --git a/src/runtime/src/libraries/System.IO.FileSystem.DriveInfo/src/System.IO.FileSystem.DriveInfo.csproj b/src/runtime/src/libraries/System.IO.FileSystem.DriveInfo/src/System.IO.FileSystem.DriveInfo.csproj +index 61225e58e8a..90c69fee153 100644 +--- a/src/runtime/src/libraries/System.IO.FileSystem.DriveInfo/src/System.IO.FileSystem.DriveInfo.csproj ++++ b/src/runtime/src/libraries/System.IO.FileSystem.DriveInfo/src/System.IO.FileSystem.DriveInfo.csproj +@@ -1,7 +1,7 @@ + + + true +- $(NetCoreAppCurrent)-windows;$(NetCoreAppCurrent)-Unix;$(NetCoreAppCurrent) ++ $(NetCoreAppCurrent)-Unix;$(NetCoreAppCurrent) + + + +diff --git a/src/runtime/src/libraries/System.IO.FileSystem.DriveInfo/tests/System.IO.FileSystem.DriveInfo.Tests.csproj b/src/runtime/src/libraries/System.IO.FileSystem.DriveInfo/tests/System.IO.FileSystem.DriveInfo.Tests.csproj +index 00d1afd3c94..8071e492986 100644 +--- a/src/runtime/src/libraries/System.IO.FileSystem.DriveInfo/tests/System.IO.FileSystem.DriveInfo.Tests.csproj ++++ b/src/runtime/src/libraries/System.IO.FileSystem.DriveInfo/tests/System.IO.FileSystem.DriveInfo.Tests.csproj +@@ -1,6 +1,6 @@ + + +- $(NetCoreAppCurrent)-windows;$(NetCoreAppCurrent)-Unix;$(NetCoreAppCurrent)-Browser ++ $(NetCoreAppCurrent)-Unix;$(NetCoreAppCurrent)-Browser + + + +diff --git a/src/runtime/src/libraries/System.IO.FileSystem.Watcher/src/System.IO.FileSystem.Watcher.csproj b/src/runtime/src/libraries/System.IO.FileSystem.Watcher/src/System.IO.FileSystem.Watcher.csproj +index 469005b661d..7edcd52db0c 100644 +--- a/src/runtime/src/libraries/System.IO.FileSystem.Watcher/src/System.IO.FileSystem.Watcher.csproj ++++ b/src/runtime/src/libraries/System.IO.FileSystem.Watcher/src/System.IO.FileSystem.Watcher.csproj +@@ -1,7 +1,7 @@ +  + + true +- $(NetCoreAppCurrent)-windows;$(NetCoreAppCurrent)-Linux;$(NetCoreAppCurrent)-OSX;$(NetCoreAppCurrent)-MacCatalyst;$(NetCoreAppCurrent)-FreeBSD;$(NetCoreAppCurrent) ++ $(NetCoreAppCurrent)-Linux;$(NetCoreAppCurrent)-OSX;$(NetCoreAppCurrent)-MacCatalyst;$(NetCoreAppCurrent)-FreeBSD;$(NetCoreAppCurrent) + + + +diff --git a/src/runtime/src/libraries/System.IO.FileSystem.Watcher/tests/System.IO.FileSystem.Watcher.Tests.csproj b/src/runtime/src/libraries/System.IO.FileSystem.Watcher/tests/System.IO.FileSystem.Watcher.Tests.csproj +index 1246c914ab8..a83fbe23499 100644 +--- a/src/runtime/src/libraries/System.IO.FileSystem.Watcher/tests/System.IO.FileSystem.Watcher.Tests.csproj ++++ b/src/runtime/src/libraries/System.IO.FileSystem.Watcher/tests/System.IO.FileSystem.Watcher.Tests.csproj +@@ -2,7 +2,7 @@ + + true + true +- $(NetCoreAppCurrent)-windows;$(NetCoreAppCurrent)-Linux;$(NetCoreAppCurrent)-OSX;$(NetCoreAppCurrent)-MacCatalyst;$(NetCoreAppCurrent)-FreeBSD ++ $(NetCoreAppCurrent)-Linux;$(NetCoreAppCurrent)-OSX;$(NetCoreAppCurrent)-MacCatalyst;$(NetCoreAppCurrent)-FreeBSD + true + true + +diff --git a/src/runtime/src/libraries/System.IO.FileSystem/tests/System.IO.FileSystem.Tests.csproj b/src/runtime/src/libraries/System.IO.FileSystem/tests/System.IO.FileSystem.Tests.csproj +index e386671171d..746e218cc24 100644 +--- a/src/runtime/src/libraries/System.IO.FileSystem/tests/System.IO.FileSystem.Tests.csproj ++++ b/src/runtime/src/libraries/System.IO.FileSystem/tests/System.IO.FileSystem.Tests.csproj +@@ -2,7 +2,7 @@ + + true + true +- $(NetCoreAppCurrent)-windows;$(NetCoreAppCurrent)-Unix;$(NetCoreAppCurrent)-Browser ++ $(NetCoreAppCurrent)-Unix;$(NetCoreAppCurrent)-Browser + + --working-dir=/test-dir + true +diff --git a/src/runtime/src/libraries/System.IO.IsolatedStorage/src/System.IO.IsolatedStorage.csproj b/src/runtime/src/libraries/System.IO.IsolatedStorage/src/System.IO.IsolatedStorage.csproj +index 2309a8c007a..b16deb25f25 100644 +--- a/src/runtime/src/libraries/System.IO.IsolatedStorage/src/System.IO.IsolatedStorage.csproj ++++ b/src/runtime/src/libraries/System.IO.IsolatedStorage/src/System.IO.IsolatedStorage.csproj +@@ -1,6 +1,6 @@ + + +- $(NetCoreAppCurrent)-windows;$(NetCoreAppCurrent)-Unix;$(NetCoreAppCurrent)-MacCatalyst;$(NetCoreAppCurrent)-iOS;$(NetCoreAppCurrent)-tvOS;$(NetCoreAppCurrent)-Android;$(NetCoreAppCurrent) ++ $(NetCoreAppCurrent)-Unix;$(NetCoreAppCurrent)-MacCatalyst;$(NetCoreAppCurrent)-iOS;$(NetCoreAppCurrent)-tvOS;$(NetCoreAppCurrent)-Android;$(NetCoreAppCurrent) + + + +diff --git a/src/runtime/src/libraries/System.IO.IsolatedStorage/tests/System.IO.IsolatedStorage.Tests.csproj b/src/runtime/src/libraries/System.IO.IsolatedStorage/tests/System.IO.IsolatedStorage.Tests.csproj +index 0410513c46c..1f4b92f6418 100644 +--- a/src/runtime/src/libraries/System.IO.IsolatedStorage/tests/System.IO.IsolatedStorage.Tests.csproj ++++ b/src/runtime/src/libraries/System.IO.IsolatedStorage/tests/System.IO.IsolatedStorage.Tests.csproj +@@ -1,6 +1,6 @@ + + +- $(NetCoreAppCurrent)-windows;$(NetCoreAppCurrent)-Unix;$(NetCoreAppCurrent)-Browser;$(NetCoreAppCurrent)-MacCatalyst;$(NetCoreAppCurrent)-iOS;$(NetCoreAppCurrent)-tvOS;$(NetCoreAppCurrent)-Android ++ $(NetCoreAppCurrent)-Unix;$(NetCoreAppCurrent)-Browser;$(NetCoreAppCurrent)-MacCatalyst;$(NetCoreAppCurrent)-iOS;$(NetCoreAppCurrent)-tvOS;$(NetCoreAppCurrent)-Android + true + + +diff --git a/src/runtime/src/libraries/System.IO.MemoryMappedFiles/src/System.IO.MemoryMappedFiles.csproj b/src/runtime/src/libraries/System.IO.MemoryMappedFiles/src/System.IO.MemoryMappedFiles.csproj +index 9be9a376620..56ed27283ac 100644 +--- a/src/runtime/src/libraries/System.IO.MemoryMappedFiles/src/System.IO.MemoryMappedFiles.csproj ++++ b/src/runtime/src/libraries/System.IO.MemoryMappedFiles/src/System.IO.MemoryMappedFiles.csproj +@@ -1,7 +1,7 @@ + + + true +- $(NetCoreAppCurrent)-windows;$(NetCoreAppCurrent)-Unix;$(NetCoreAppCurrent)-Browser;$(NetCoreAppCurrent) ++ $(NetCoreAppCurrent)-Unix;$(NetCoreAppCurrent)-Browser;$(NetCoreAppCurrent) + + + +diff --git a/src/runtime/src/libraries/System.IO.MemoryMappedFiles/tests/System.IO.MemoryMappedFiles.Tests.csproj b/src/runtime/src/libraries/System.IO.MemoryMappedFiles/tests/System.IO.MemoryMappedFiles.Tests.csproj +index ef44754372e..4525b0aa830 100644 +--- a/src/runtime/src/libraries/System.IO.MemoryMappedFiles/tests/System.IO.MemoryMappedFiles.Tests.csproj ++++ b/src/runtime/src/libraries/System.IO.MemoryMappedFiles/tests/System.IO.MemoryMappedFiles.Tests.csproj +@@ -2,7 +2,7 @@ + + true + true +- $(NetCoreAppCurrent)-windows;$(NetCoreAppCurrent)-Unix;$(NetCoreAppCurrent)-Browser ++ $(NetCoreAppCurrent)-Unix;$(NetCoreAppCurrent)-Browser + true + + +diff --git a/src/runtime/src/libraries/System.IO.Pipes.AccessControl/src/System.IO.Pipes.AccessControl.csproj b/src/runtime/src/libraries/System.IO.Pipes.AccessControl/src/System.IO.Pipes.AccessControl.csproj +index 3dd3c8a455b..82091dc68d0 100644 +--- a/src/runtime/src/libraries/System.IO.Pipes.AccessControl/src/System.IO.Pipes.AccessControl.csproj ++++ b/src/runtime/src/libraries/System.IO.Pipes.AccessControl/src/System.IO.Pipes.AccessControl.csproj +@@ -1,6 +1,6 @@ + + +- $(NetCoreAppCurrent)-windows;$(NetCoreAppCurrent) ++ $(NetCoreAppCurrent) + + + +diff --git a/src/runtime/src/libraries/System.IO.Pipes.AccessControl/tests/System.IO.Pipes.AccessControl.Tests.csproj b/src/runtime/src/libraries/System.IO.Pipes.AccessControl/tests/System.IO.Pipes.AccessControl.Tests.csproj +index 386250a4320..e0e4eab4e8e 100644 +--- a/src/runtime/src/libraries/System.IO.Pipes.AccessControl/tests/System.IO.Pipes.AccessControl.Tests.csproj ++++ b/src/runtime/src/libraries/System.IO.Pipes.AccessControl/tests/System.IO.Pipes.AccessControl.Tests.csproj +@@ -1,6 +1,6 @@ + + +- $(NetCoreAppCurrent)-windows ++ + + + +diff --git a/src/runtime/src/libraries/System.IO.Pipes/src/System.IO.Pipes.csproj b/src/runtime/src/libraries/System.IO.Pipes/src/System.IO.Pipes.csproj +index b0956d6ba7b..77585616ea3 100644 +--- a/src/runtime/src/libraries/System.IO.Pipes/src/System.IO.Pipes.csproj ++++ b/src/runtime/src/libraries/System.IO.Pipes/src/System.IO.Pipes.csproj +@@ -1,6 +1,6 @@ + + +- $(NetCoreAppCurrent)-windows;$(NetCoreAppCurrent)-Unix;$(NetCoreAppCurrent) ++ $(NetCoreAppCurrent)-Unix;$(NetCoreAppCurrent) + true + + +diff --git a/src/runtime/src/libraries/System.IO.Pipes/tests/System.IO.Pipes.Tests.csproj b/src/runtime/src/libraries/System.IO.Pipes/tests/System.IO.Pipes.Tests.csproj +index 8f31d5dd604..2e6ae7616ea 100644 +--- a/src/runtime/src/libraries/System.IO.Pipes/tests/System.IO.Pipes.Tests.csproj ++++ b/src/runtime/src/libraries/System.IO.Pipes/tests/System.IO.Pipes.Tests.csproj +@@ -2,7 +2,7 @@ + + true + true +- $(NetCoreAppCurrent)-windows;$(NetCoreAppCurrent)-Unix;$(NetCoreAppCurrent) ++ $(NetCoreAppCurrent)-Unix;$(NetCoreAppCurrent) + true + true + +diff --git a/src/runtime/src/libraries/System.IO.Ports/src/System.IO.Ports.csproj b/src/runtime/src/libraries/System.IO.Ports/src/System.IO.Ports.csproj +index c341d6c3ba6..3173e525799 100644 +--- a/src/runtime/src/libraries/System.IO.Ports/src/System.IO.Ports.csproj ++++ b/src/runtime/src/libraries/System.IO.Ports/src/System.IO.Ports.csproj +@@ -1,6 +1,6 @@ + + +- $(NetCoreAppCurrent)-windows;$(NetCoreAppCurrent)-Unix;$(NetCoreAppCurrent);$(NetCoreAppMinimum)-windows;$(NetCoreAppMinimum)-Unix;$(NetCoreAppMinimum);netstandard2.0;$(NetFrameworkMinimum) ++ $(NetCoreAppCurrent)-Unix;$(NetCoreAppCurrent);$(NetCoreAppMinimum)-Unix;$(NetCoreAppMinimum);netstandard2.0;$(NetFrameworkMinimum) + true + $(DefineConstants);SERIAL_PORTS + true +diff --git a/src/runtime/src/libraries/System.IO.Ports/tests/System.IO.Ports.Tests.csproj b/src/runtime/src/libraries/System.IO.Ports/tests/System.IO.Ports.Tests.csproj +index 9a1592778a7..b71f36bc2f1 100644 +--- a/src/runtime/src/libraries/System.IO.Ports/tests/System.IO.Ports.Tests.csproj ++++ b/src/runtime/src/libraries/System.IO.Ports/tests/System.IO.Ports.Tests.csproj +@@ -1,6 +1,6 @@ + + +- $(NetCoreAppCurrent)-windows;$(NetCoreAppCurrent)-Linux;$(NetCoreAppCurrent)-OSX;$(NetCoreAppCurrent)-FreeBSD;$(NetFrameworkMinimum) ++ $(NetCoreAppCurrent)-Linux;$(NetCoreAppCurrent)-OSX;$(NetCoreAppCurrent)-FreeBSD;$(NetFrameworkMinimum) + + + +diff --git a/src/runtime/src/libraries/System.Management/src/System.Management.csproj b/src/runtime/src/libraries/System.Management/src/System.Management.csproj +index 5b66be0b573..1352df29995 100644 +--- a/src/runtime/src/libraries/System.Management/src/System.Management.csproj ++++ b/src/runtime/src/libraries/System.Management/src/System.Management.csproj +@@ -1,6 +1,6 @@ +  + +- $(NetCoreAppCurrent)-windows;$(NetCoreAppCurrent);$(NetCoreAppMinimum)-windows;$(NetCoreAppMinimum);netstandard2.0 ++ $(NetCoreAppCurrent);$(NetCoreAppMinimum);netstandard2.0 + true + $(NoWarn);0618 + +diff --git a/src/runtime/src/libraries/System.Net.Http/tests/FunctionalTests/System.Net.Http.Functional.Tests.csproj b/src/runtime/src/libraries/System.Net.Http/tests/FunctionalTests/System.Net.Http.Functional.Tests.csproj +index b5a0ebaa389..45c62a15a8b 100644 +--- a/src/runtime/src/libraries/System.Net.Http/tests/FunctionalTests/System.Net.Http.Functional.Tests.csproj ++++ b/src/runtime/src/libraries/System.Net.Http/tests/FunctionalTests/System.Net.Http.Functional.Tests.csproj +@@ -4,7 +4,7 @@ + $(DefineConstants);SYSNETHTTP_NO_OPENSSL;HTTP3 + true + true +- $(NetCoreAppCurrent)-windows;$(NetCoreAppCurrent)-Linux;$(NetCoreAppCurrent)-Browser;$(NetCoreAppCurrent)-OSX ++ $(NetCoreAppCurrent)-Linux;$(NetCoreAppCurrent)-Browser;$(NetCoreAppCurrent)-OSX + true + true + +diff --git a/src/runtime/src/libraries/System.Net.Http/tests/UnitTests/System.Net.Http.Unit.Tests.csproj b/src/runtime/src/libraries/System.Net.Http/tests/UnitTests/System.Net.Http.Unit.Tests.csproj +index 85139c5391f..f2f2c2e5696 100644 +--- a/src/runtime/src/libraries/System.Net.Http/tests/UnitTests/System.Net.Http.Unit.Tests.csproj ++++ b/src/runtime/src/libraries/System.Net.Http/tests/UnitTests/System.Net.Http.Unit.Tests.csproj +@@ -3,7 +3,7 @@ + ../../src/Resources/Strings.resx + true + true +- $(NetCoreAppCurrent)-windows;$(NetCoreAppCurrent)-Unix;$(NetCoreAppCurrent)-Browser;$(NetCoreAppCurrent)-OSX;$(NetCoreAppCurrent)-MacCatalyst;$(NetCoreAppCurrent)-iOS;$(NetCoreAppCurrent)-tvOS;$(NetCoreAppCurrent)-Android ++ $(NetCoreAppCurrent)-Unix;$(NetCoreAppCurrent)-Browser;$(NetCoreAppCurrent)-OSX;$(NetCoreAppCurrent)-MacCatalyst;$(NetCoreAppCurrent)-iOS;$(NetCoreAppCurrent)-tvOS;$(NetCoreAppCurrent)-Android + true + + +diff --git a/src/runtime/src/libraries/System.Net.HttpListener/src/System.Net.HttpListener.csproj b/src/runtime/src/libraries/System.Net.HttpListener/src/System.Net.HttpListener.csproj +index b0e790da1d6..46e75182fae 100644 +--- a/src/runtime/src/libraries/System.Net.HttpListener/src/System.Net.HttpListener.csproj ++++ b/src/runtime/src/libraries/System.Net.HttpListener/src/System.Net.HttpListener.csproj +@@ -2,7 +2,7 @@ + + true + false +- $(NetCoreAppCurrent)-windows;$(NetCoreAppCurrent)-Unix;$(NetCoreAppCurrent) ++ $(NetCoreAppCurrent)-Unix;$(NetCoreAppCurrent) + true + + +diff --git a/src/runtime/src/libraries/System.Net.HttpListener/tests/System.Net.HttpListener.Tests.csproj b/src/runtime/src/libraries/System.Net.HttpListener/tests/System.Net.HttpListener.Tests.csproj +index ff51965c789..d5f4d3637ca 100644 +--- a/src/runtime/src/libraries/System.Net.HttpListener/tests/System.Net.HttpListener.Tests.csproj ++++ b/src/runtime/src/libraries/System.Net.HttpListener/tests/System.Net.HttpListener.Tests.csproj +@@ -2,7 +2,7 @@ + + true + ../src/Resources/Strings.resx +- $(NetCoreAppCurrent)-windows;$(NetCoreAppCurrent)-Unix;$(NetCoreAppCurrent)-Browser;$(NetCoreAppCurrent)-OSX ++ $(NetCoreAppCurrent)-Unix;$(NetCoreAppCurrent)-Browser;$(NetCoreAppCurrent)-OSX + true + + +diff --git a/src/runtime/src/libraries/System.Net.Mail/src/System.Net.Mail.csproj b/src/runtime/src/libraries/System.Net.Mail/src/System.Net.Mail.csproj +index 5d2ce4cc280..323c647d2d6 100644 +--- a/src/runtime/src/libraries/System.Net.Mail/src/System.Net.Mail.csproj ++++ b/src/runtime/src/libraries/System.Net.Mail/src/System.Net.Mail.csproj +@@ -1,7 +1,7 @@ +  + + true +- $(NetCoreAppCurrent)-windows;$(NetCoreAppCurrent)-Unix;$(NetCoreAppCurrent)-Browser;$(NetCoreAppCurrent) ++ $(NetCoreAppCurrent)-Unix;$(NetCoreAppCurrent)-Browser;$(NetCoreAppCurrent) + + + +diff --git a/src/runtime/src/libraries/System.Net.Mail/tests/Functional/System.Net.Mail.Functional.Tests.csproj b/src/runtime/src/libraries/System.Net.Mail/tests/Functional/System.Net.Mail.Functional.Tests.csproj +index 4a7b913a457..f81cc0576f9 100644 +--- a/src/runtime/src/libraries/System.Net.Mail/tests/Functional/System.Net.Mail.Functional.Tests.csproj ++++ b/src/runtime/src/libraries/System.Net.Mail/tests/Functional/System.Net.Mail.Functional.Tests.csproj +@@ -1,7 +1,7 @@ + + + true +- $(NetCoreAppCurrent)-windows;$(NetCoreAppCurrent)-Unix;$(NetCoreAppCurrent)-Browser;$(NetCoreAppCurrent)-OSX;$(NetCoreAppCurrent)-iOS;$(NetCoreAppCurrent)-Android ++ $(NetCoreAppCurrent)-Unix;$(NetCoreAppCurrent)-Browser;$(NetCoreAppCurrent)-OSX;$(NetCoreAppCurrent)-iOS;$(NetCoreAppCurrent)-Android + true + true + true +diff --git a/src/runtime/src/libraries/System.Net.Mail/tests/Unit/System.Net.Mail.Unit.Tests.csproj b/src/runtime/src/libraries/System.Net.Mail/tests/Unit/System.Net.Mail.Unit.Tests.csproj +index 0fbb5d7c497..b466e0b9d96 100644 +--- a/src/runtime/src/libraries/System.Net.Mail/tests/Unit/System.Net.Mail.Unit.Tests.csproj ++++ b/src/runtime/src/libraries/System.Net.Mail/tests/Unit/System.Net.Mail.Unit.Tests.csproj +@@ -2,7 +2,7 @@ + + true + ../../src/Resources/Strings.resx +- $(NetCoreAppCurrent)-windows;$(NetCoreAppCurrent)-Unix;$(NetCoreAppCurrent)-Browser ++ $(NetCoreAppCurrent)-Unix;$(NetCoreAppCurrent)-Browser + true + + +diff --git a/src/runtime/src/libraries/System.Net.NameResolution/src/System.Net.NameResolution.csproj b/src/runtime/src/libraries/System.Net.NameResolution/src/System.Net.NameResolution.csproj +index 6d7ee08de0b..76e1a178242 100644 +--- a/src/runtime/src/libraries/System.Net.NameResolution/src/System.Net.NameResolution.csproj ++++ b/src/runtime/src/libraries/System.Net.NameResolution/src/System.Net.NameResolution.csproj +@@ -1,7 +1,7 @@ + + + true +- $(NetCoreAppCurrent)-windows;$(NetCoreAppCurrent)-Unix;$(NetCoreAppCurrent)-Browser;$(NetCoreAppCurrent) ++ $(NetCoreAppCurrent)-Unix;$(NetCoreAppCurrent)-Browser;$(NetCoreAppCurrent) + + + +diff --git a/src/runtime/src/libraries/System.Net.NameResolution/tests/FunctionalTests/System.Net.NameResolution.Functional.Tests.csproj b/src/runtime/src/libraries/System.Net.NameResolution/tests/FunctionalTests/System.Net.NameResolution.Functional.Tests.csproj +index f4588a2b4a1..a21ef6a5d18 100644 +--- a/src/runtime/src/libraries/System.Net.NameResolution/tests/FunctionalTests/System.Net.NameResolution.Functional.Tests.csproj ++++ b/src/runtime/src/libraries/System.Net.NameResolution/tests/FunctionalTests/System.Net.NameResolution.Functional.Tests.csproj +@@ -1,6 +1,6 @@ + + +- $(NetCoreAppCurrent)-windows;$(NetCoreAppCurrent)-Unix;$(NetCoreAppCurrent)-Browser ++ $(NetCoreAppCurrent)-Unix;$(NetCoreAppCurrent)-Browser + true + true + true +diff --git a/src/runtime/src/libraries/System.Net.NameResolution/tests/PalTests/System.Net.NameResolution.Pal.Tests.csproj b/src/runtime/src/libraries/System.Net.NameResolution/tests/PalTests/System.Net.NameResolution.Pal.Tests.csproj +index 2edc2e3601c..75c119af62a 100644 +--- a/src/runtime/src/libraries/System.Net.NameResolution/tests/PalTests/System.Net.NameResolution.Pal.Tests.csproj ++++ b/src/runtime/src/libraries/System.Net.NameResolution/tests/PalTests/System.Net.NameResolution.Pal.Tests.csproj +@@ -2,7 +2,7 @@ + + true + ../../src/Resources/Strings.resx +- $(NetCoreAppCurrent)-windows;$(NetCoreAppCurrent)-Unix;$(NetCoreAppCurrent)-Browser ++ $(NetCoreAppCurrent)-Unix;$(NetCoreAppCurrent)-Browser + true + true + +diff --git a/src/runtime/src/libraries/System.Net.NetworkInformation/src/System.Net.NetworkInformation.csproj b/src/runtime/src/libraries/System.Net.NetworkInformation/src/System.Net.NetworkInformation.csproj +index d36ad67504e..8b240730a52 100644 +--- a/src/runtime/src/libraries/System.Net.NetworkInformation/src/System.Net.NetworkInformation.csproj ++++ b/src/runtime/src/libraries/System.Net.NetworkInformation/src/System.Net.NetworkInformation.csproj +@@ -1,7 +1,7 @@ +  + + true +- $(NetCoreAppCurrent)-windows;$(NetCoreAppCurrent)-Linux;$(NetCoreAppCurrent)-Android;$(NetCoreAppCurrent)-OSX;$(NetCoreAppCurrent)-iOS;$(NetCoreAppCurrent)-tvOS;$(NetCoreAppCurrent)-FreeBSD;$(NetCoreAppCurrent)-illumos;$(NetCoreAppCurrent)-Solaris;$(NetCoreAppCurrent) ++ $(NetCoreAppCurrent)-Linux;$(NetCoreAppCurrent)-Android;$(NetCoreAppCurrent)-OSX;$(NetCoreAppCurrent)-iOS;$(NetCoreAppCurrent)-tvOS;$(NetCoreAppCurrent)-FreeBSD;$(NetCoreAppCurrent)-illumos;$(NetCoreAppCurrent)-Solaris;$(NetCoreAppCurrent) + + + +diff --git a/src/runtime/src/libraries/System.Net.Ping/src/System.Net.Ping.csproj b/src/runtime/src/libraries/System.Net.Ping/src/System.Net.Ping.csproj +index 71b5d783c45..167b0a2c5f5 100644 +--- a/src/runtime/src/libraries/System.Net.Ping/src/System.Net.Ping.csproj ++++ b/src/runtime/src/libraries/System.Net.Ping/src/System.Net.Ping.csproj +@@ -1,7 +1,7 @@ +  + + true +- $(NetCoreAppCurrent)-windows;$(NetCoreAppCurrent)-Unix;$(NetCoreAppCurrent)-OSX;$(NetCoreAppCurrent)-iOS;$(NetCoreAppCurrent)-tvOS;$(NetCoreAppCurrent) ++ $(NetCoreAppCurrent)-Unix;$(NetCoreAppCurrent)-OSX;$(NetCoreAppCurrent)-iOS;$(NetCoreAppCurrent)-tvOS;$(NetCoreAppCurrent) + + + +diff --git a/src/runtime/src/libraries/System.Net.Ping/tests/FunctionalTests/System.Net.Ping.Functional.Tests.csproj b/src/runtime/src/libraries/System.Net.Ping/tests/FunctionalTests/System.Net.Ping.Functional.Tests.csproj +index 0a068b65b72..5ccac35d05f 100644 +--- a/src/runtime/src/libraries/System.Net.Ping/tests/FunctionalTests/System.Net.Ping.Functional.Tests.csproj ++++ b/src/runtime/src/libraries/System.Net.Ping/tests/FunctionalTests/System.Net.Ping.Functional.Tests.csproj +@@ -1,6 +1,6 @@ + + +- $(NetCoreAppCurrent)-windows;$(NetCoreAppCurrent)-Unix;$(NetCoreAppCurrent)-Browser ++ $(NetCoreAppCurrent)-Unix;$(NetCoreAppCurrent)-Browser + true + true + true +diff --git a/src/runtime/src/libraries/System.Net.Primitives/src/System.Net.Primitives.csproj b/src/runtime/src/libraries/System.Net.Primitives/src/System.Net.Primitives.csproj +index 84a5864cac9..3567f4a6ea7 100644 +--- a/src/runtime/src/libraries/System.Net.Primitives/src/System.Net.Primitives.csproj ++++ b/src/runtime/src/libraries/System.Net.Primitives/src/System.Net.Primitives.csproj +@@ -2,7 +2,7 @@ + + true + false +- $(NetCoreAppCurrent)-windows;$(NetCoreAppCurrent)-Unix;$(NetCoreAppCurrent)-Browser;$(NetCoreAppCurrent) ++ $(NetCoreAppCurrent)-Unix;$(NetCoreAppCurrent)-Browser;$(NetCoreAppCurrent) + + $(DefineConstants);SYSTEM_NET_PRIMITIVES_DLL +diff --git a/src/runtime/src/libraries/System.Net.Primitives/tests/FunctionalTests/System.Net.Primitives.Functional.Tests.csproj b/src/runtime/src/libraries/System.Net.Primitives/tests/FunctionalTests/System.Net.Primitives.Functional.Tests.csproj +index 4e2e897b0a6..7a48043aad5 100644 +--- a/src/runtime/src/libraries/System.Net.Primitives/tests/FunctionalTests/System.Net.Primitives.Functional.Tests.csproj ++++ b/src/runtime/src/libraries/System.Net.Primitives/tests/FunctionalTests/System.Net.Primitives.Functional.Tests.csproj +@@ -1,7 +1,7 @@ + + + true +- $(NetCoreAppCurrent)-windows;$(NetCoreAppCurrent)-Unix;$(NetCoreAppCurrent)-Browser ++ $(NetCoreAppCurrent)-Unix;$(NetCoreAppCurrent)-Browser + true + + +diff --git a/src/runtime/src/libraries/System.Net.Primitives/tests/PalTests/System.Net.Primitives.Pal.Tests.csproj b/src/runtime/src/libraries/System.Net.Primitives/tests/PalTests/System.Net.Primitives.Pal.Tests.csproj +index 2fb034467dc..633181e4b58 100644 +--- a/src/runtime/src/libraries/System.Net.Primitives/tests/PalTests/System.Net.Primitives.Pal.Tests.csproj ++++ b/src/runtime/src/libraries/System.Net.Primitives/tests/PalTests/System.Net.Primitives.Pal.Tests.csproj +@@ -2,7 +2,7 @@ + + true + ../../src/Resources/Strings.resx +- $(NetCoreAppCurrent)-windows;$(NetCoreAppCurrent)-Unix;$(NetCoreAppCurrent)-Browser ++ $(NetCoreAppCurrent)-Unix;$(NetCoreAppCurrent)-Browser + true + + +diff --git a/src/runtime/src/libraries/System.Net.Primitives/tests/UnitTests/System.Net.Primitives.UnitTests.Tests.csproj b/src/runtime/src/libraries/System.Net.Primitives/tests/UnitTests/System.Net.Primitives.UnitTests.Tests.csproj +index 8cc3d0ff90f..098b0d7460a 100644 +--- a/src/runtime/src/libraries/System.Net.Primitives/tests/UnitTests/System.Net.Primitives.UnitTests.Tests.csproj ++++ b/src/runtime/src/libraries/System.Net.Primitives/tests/UnitTests/System.Net.Primitives.UnitTests.Tests.csproj +@@ -3,7 +3,7 @@ + true + 169,649 + ../../src/Resources/Strings.resx +- $(NetCoreAppCurrent)-windows;$(NetCoreAppCurrent)-Unix;$(NetCoreAppCurrent)-Browser ++ $(NetCoreAppCurrent)-Unix;$(NetCoreAppCurrent)-Browser + true + + +diff --git a/src/runtime/src/libraries/System.Net.Quic/src/System.Net.Quic.csproj b/src/runtime/src/libraries/System.Net.Quic/src/System.Net.Quic.csproj +index 257af8dbb88..6f118e0bf88 100644 +--- a/src/runtime/src/libraries/System.Net.Quic/src/System.Net.Quic.csproj ++++ b/src/runtime/src/libraries/System.Net.Quic/src/System.Net.Quic.csproj +@@ -1,7 +1,7 @@ +  + + true +- $(NetCoreAppCurrent)-windows;$(NetCoreAppCurrent)-Linux;$(NetCoreAppCurrent)-OSX;$(NetCoreAppCurrent)-FreeBSD;$(NetCoreAppCurrent) ++ $(NetCoreAppCurrent)-Linux;$(NetCoreAppCurrent)-OSX;$(NetCoreAppCurrent)-FreeBSD;$(NetCoreAppCurrent) + true + + +diff --git a/src/runtime/src/libraries/System.Net.Quic/tests/FunctionalTests/System.Net.Quic.Functional.Tests.csproj b/src/runtime/src/libraries/System.Net.Quic/tests/FunctionalTests/System.Net.Quic.Functional.Tests.csproj +index 62b1be2da62..45b87e1dddb 100644 +--- a/src/runtime/src/libraries/System.Net.Quic/tests/FunctionalTests/System.Net.Quic.Functional.Tests.csproj ++++ b/src/runtime/src/libraries/System.Net.Quic/tests/FunctionalTests/System.Net.Quic.Functional.Tests.csproj +@@ -2,7 +2,7 @@ + + true + true +- $(NetCoreAppCurrent)-windows;$(NetCoreAppCurrent)-Unix ++ $(NetCoreAppCurrent)-Unix + true + + +diff --git a/src/runtime/src/libraries/System.Net.Requests/src/System.Net.Requests.csproj b/src/runtime/src/libraries/System.Net.Requests/src/System.Net.Requests.csproj +index d16970c9a19..6a5034037a3 100644 +--- a/src/runtime/src/libraries/System.Net.Requests/src/System.Net.Requests.csproj ++++ b/src/runtime/src/libraries/System.Net.Requests/src/System.Net.Requests.csproj +@@ -1,7 +1,7 @@ + + + true +- $(NetCoreAppCurrent)-windows;$(NetCoreAppCurrent)-Unix;$(NetCoreAppCurrent) ++ $(NetCoreAppCurrent)-Unix;$(NetCoreAppCurrent) + + $(NoWarn);SYSLIB0014 + +diff --git a/src/runtime/src/libraries/System.Net.Security/src/System.Net.Security.csproj b/src/runtime/src/libraries/System.Net.Security/src/System.Net.Security.csproj +index e030690763e..ad96b0fb669 100644 +--- a/src/runtime/src/libraries/System.Net.Security/src/System.Net.Security.csproj ++++ b/src/runtime/src/libraries/System.Net.Security/src/System.Net.Security.csproj +@@ -1,7 +1,7 @@ + + + true +- $(NetCoreAppCurrent)-windows;$(NetCoreAppCurrent)-Linux;$(NetCoreAppCurrent)-FreeBSD;$(NetCoreAppCurrent)-Android;$(NetCoreAppCurrent)-OSX;$(NetCoreAppCurrent)-iOS;$(NetCoreAppCurrent)-tvOS;$(NetCoreAppCurrent) ++ $(NetCoreAppCurrent)-Linux;$(NetCoreAppCurrent)-FreeBSD;$(NetCoreAppCurrent)-Android;$(NetCoreAppCurrent)-OSX;$(NetCoreAppCurrent)-iOS;$(NetCoreAppCurrent)-tvOS;$(NetCoreAppCurrent) + + $(DefineConstants);PRODUCT + true +diff --git a/src/runtime/src/libraries/System.Net.Security/tests/FunctionalTests/System.Net.Security.Tests.csproj b/src/runtime/src/libraries/System.Net.Security/tests/FunctionalTests/System.Net.Security.Tests.csproj +index 7c3d432f34c..7fd430a9220 100644 +--- a/src/runtime/src/libraries/System.Net.Security/tests/FunctionalTests/System.Net.Security.Tests.csproj ++++ b/src/runtime/src/libraries/System.Net.Security/tests/FunctionalTests/System.Net.Security.Tests.csproj +@@ -2,7 +2,7 @@ + + true + true +- $(NetCoreAppCurrent)-windows;$(NetCoreAppCurrent)-Unix;$(NetCoreAppCurrent)-Browser;$(NetCoreAppCurrent)-OSX;$(NetCoreAppCurrent)-iOS ++ $(NetCoreAppCurrent)-Unix;$(NetCoreAppCurrent)-Browser;$(NetCoreAppCurrent)-OSX;$(NetCoreAppCurrent)-iOS + true + true + +diff --git a/src/runtime/src/libraries/System.Net.Security/tests/UnitTests/System.Net.Security.Unit.Tests.csproj b/src/runtime/src/libraries/System.Net.Security/tests/UnitTests/System.Net.Security.Unit.Tests.csproj +index 1dd366e72a0..6a184f9d405 100644 +--- a/src/runtime/src/libraries/System.Net.Security/tests/UnitTests/System.Net.Security.Unit.Tests.csproj ++++ b/src/runtime/src/libraries/System.Net.Security/tests/UnitTests/System.Net.Security.Unit.Tests.csproj +@@ -10,7 +10,7 @@ + 436 + + $(NoWarn);3021 +- $(NetCoreAppCurrent)-windows;$(NetCoreAppCurrent)-Unix;$(NetCoreAppCurrent)-Browser;$(NetCoreAppCurrent)-OSX;$(NetCoreAppCurrent)-iOS;$(NetCoreAppCurrent)-Android ++ $(NetCoreAppCurrent)-Unix;$(NetCoreAppCurrent)-Browser;$(NetCoreAppCurrent)-OSX;$(NetCoreAppCurrent)-iOS;$(NetCoreAppCurrent)-Android + true + true + +diff --git a/src/runtime/src/libraries/System.Net.Sockets/src/System.Net.Sockets.csproj b/src/runtime/src/libraries/System.Net.Sockets/src/System.Net.Sockets.csproj +index 61f9c6fa2d4..2674e098d82 100644 +--- a/src/runtime/src/libraries/System.Net.Sockets/src/System.Net.Sockets.csproj ++++ b/src/runtime/src/libraries/System.Net.Sockets/src/System.Net.Sockets.csproj +@@ -1,7 +1,7 @@ + + + true +- $(NetCoreAppCurrent)-windows;$(NetCoreAppCurrent)-Unix;$(NetCoreAppCurrent) ++ $(NetCoreAppCurrent)-Unix;$(NetCoreAppCurrent) + + + +diff --git a/src/runtime/src/libraries/System.Net.Sockets/tests/FunctionalTests/System.Net.Sockets.Tests.csproj b/src/runtime/src/libraries/System.Net.Sockets/tests/FunctionalTests/System.Net.Sockets.Tests.csproj +index 884db1eea54..86517b47af6 100644 +--- a/src/runtime/src/libraries/System.Net.Sockets/tests/FunctionalTests/System.Net.Sockets.Tests.csproj ++++ b/src/runtime/src/libraries/System.Net.Sockets/tests/FunctionalTests/System.Net.Sockets.Tests.csproj +@@ -2,7 +2,7 @@ + + true + true +- $(NetCoreAppCurrent)-windows;$(NetCoreAppCurrent)-Unix;$(NetCoreAppCurrent)-Browser ++ $(NetCoreAppCurrent)-Unix;$(NetCoreAppCurrent)-Browser + true + true + +diff --git a/src/runtime/src/libraries/System.Net.WebSockets/src/System.Net.WebSockets.csproj b/src/runtime/src/libraries/System.Net.WebSockets/src/System.Net.WebSockets.csproj +index c0c4ded0d33..b361cc90d32 100644 +--- a/src/runtime/src/libraries/System.Net.WebSockets/src/System.Net.WebSockets.csproj ++++ b/src/runtime/src/libraries/System.Net.WebSockets/src/System.Net.WebSockets.csproj +@@ -1,7 +1,7 @@ + + + True +- $(NetCoreAppCurrent)-windows;$(NetCoreAppCurrent)-Unix;$(NetCoreAppCurrent)-Browser;$(NetCoreAppCurrent) ++ $(NetCoreAppCurrent)-Unix;$(NetCoreAppCurrent)-Browser;$(NetCoreAppCurrent) + + + +diff --git a/src/runtime/src/libraries/System.Private.Xml/src/System.Private.Xml.csproj b/src/runtime/src/libraries/System.Private.Xml/src/System.Private.Xml.csproj +index 405e6375a9f..2a5bd1faacb 100644 +--- a/src/runtime/src/libraries/System.Private.Xml/src/System.Private.Xml.csproj ++++ b/src/runtime/src/libraries/System.Private.Xml/src/System.Private.Xml.csproj +@@ -1,6 +1,6 @@ + + +- $(NetCoreAppCurrent)-windows;$(NetCoreAppCurrent) ++ $(NetCoreAppCurrent) + System.Xml + true + +diff --git a/src/runtime/src/libraries/System.Resources.Extensions/tests/System.Resources.Extensions.Tests.csproj b/src/runtime/src/libraries/System.Resources.Extensions/tests/System.Resources.Extensions.Tests.csproj +index ad289dc6319..2485635439b 100644 +--- a/src/runtime/src/libraries/System.Resources.Extensions/tests/System.Resources.Extensions.Tests.csproj ++++ b/src/runtime/src/libraries/System.Resources.Extensions/tests/System.Resources.Extensions.Tests.csproj +@@ -1,6 +1,6 @@ + + +- $(NetCoreAppCurrent)-windows;$(NetCoreAppCurrent)-Unix;$(NetFrameworkMinimum) ++ $(NetCoreAppCurrent)-Unix;$(NetFrameworkMinimum) + true + + +diff --git a/src/runtime/src/libraries/System.Resources.ResourceManager/tests/System.Resources.ResourceManager.Tests.csproj b/src/runtime/src/libraries/System.Resources.ResourceManager/tests/System.Resources.ResourceManager.Tests.csproj +index 66cb937a3d1..12e027437bd 100644 +--- a/src/runtime/src/libraries/System.Resources.ResourceManager/tests/System.Resources.ResourceManager.Tests.csproj ++++ b/src/runtime/src/libraries/System.Resources.ResourceManager/tests/System.Resources.ResourceManager.Tests.csproj +@@ -4,7 +4,7 @@ + true + true + true +- $(NetCoreAppCurrent)-windows;$(NetCoreAppCurrent)-Unix ++ $(NetCoreAppCurrent)-Unix + + + +diff --git a/src/runtime/src/libraries/System.Runtime.Caching/src/System.Runtime.Caching.csproj b/src/runtime/src/libraries/System.Runtime.Caching/src/System.Runtime.Caching.csproj +index 869129ba71f..41a41f7bebb 100644 +--- a/src/runtime/src/libraries/System.Runtime.Caching/src/System.Runtime.Caching.csproj ++++ b/src/runtime/src/libraries/System.Runtime.Caching/src/System.Runtime.Caching.csproj +@@ -1,6 +1,6 @@ + + +- $(NetCoreAppCurrent)-windows;$(NetCoreAppCurrent);$(NetCoreAppMinimum)-windows;$(NetCoreAppMinimum);netstandard2.0 ++ $(NetCoreAppCurrent);$(NetCoreAppMinimum);netstandard2.0 + true + Annotations + true +diff --git a/src/runtime/src/libraries/System.Runtime.Caching/tests/System.Runtime.Caching.Tests.csproj b/src/runtime/src/libraries/System.Runtime.Caching/tests/System.Runtime.Caching.Tests.csproj +index 8f08caf9b46..ee8e300954a 100644 +--- a/src/runtime/src/libraries/System.Runtime.Caching/tests/System.Runtime.Caching.Tests.csproj ++++ b/src/runtime/src/libraries/System.Runtime.Caching/tests/System.Runtime.Caching.Tests.csproj +@@ -1,6 +1,6 @@ + + +- $(NetCoreAppCurrent);$(NetCoreAppCurrent)-windows;net48 ++ $(NetCoreAppCurrent);net48 + true + + +diff --git a/src/runtime/src/libraries/System.Runtime.Extensions/tests/System.Runtime.Extensions.Tests.csproj b/src/runtime/src/libraries/System.Runtime.Extensions/tests/System.Runtime.Extensions.Tests.csproj +index 3e3e2937781..85074f9fba2 100644 +--- a/src/runtime/src/libraries/System.Runtime.Extensions/tests/System.Runtime.Extensions.Tests.csproj ++++ b/src/runtime/src/libraries/System.Runtime.Extensions/tests/System.Runtime.Extensions.Tests.csproj +@@ -4,7 +4,7 @@ + true + true + true +- $(NetCoreAppCurrent)-windows;$(NetCoreAppCurrent)-Unix;$(NetCoreAppCurrent)-Browser ++ $(NetCoreAppCurrent)-Unix;$(NetCoreAppCurrent)-Browser + + + +diff --git a/src/runtime/src/libraries/System.Runtime.InteropServices.RuntimeInformation/tests/System.Runtime.InteropServices.RuntimeInformation.Tests.csproj b/src/runtime/src/libraries/System.Runtime.InteropServices.RuntimeInformation/tests/System.Runtime.InteropServices.RuntimeInformation.Tests.csproj +index 3edd7d47f72..db7a23c27c5 100644 +--- a/src/runtime/src/libraries/System.Runtime.InteropServices.RuntimeInformation/tests/System.Runtime.InteropServices.RuntimeInformation.Tests.csproj ++++ b/src/runtime/src/libraries/System.Runtime.InteropServices.RuntimeInformation/tests/System.Runtime.InteropServices.RuntimeInformation.Tests.csproj +@@ -1,7 +1,7 @@ +  + + true +- $(NetCoreAppCurrent)-windows;$(NetCoreAppCurrent)-Unix;$(NetCoreAppCurrent)-Browser ++ $(NetCoreAppCurrent)-Unix;$(NetCoreAppCurrent)-Browser + + + +diff --git a/src/runtime/src/libraries/System.Runtime.InteropServices/tests/System.Runtime.InteropServices.UnitTests/System.Runtime.InteropServices.Tests.csproj b/src/runtime/src/libraries/System.Runtime.InteropServices/tests/System.Runtime.InteropServices.UnitTests/System.Runtime.InteropServices.Tests.csproj +index 34964fb33f2..1a78852a17b 100644 +--- a/src/runtime/src/libraries/System.Runtime.InteropServices/tests/System.Runtime.InteropServices.UnitTests/System.Runtime.InteropServices.Tests.csproj ++++ b/src/runtime/src/libraries/System.Runtime.InteropServices/tests/System.Runtime.InteropServices.UnitTests/System.Runtime.InteropServices.Tests.csproj +@@ -1,7 +1,7 @@ + + + true +- $(NetCoreAppCurrent)-windows;$(NetCoreAppCurrent)-Unix;$(NetCoreAppCurrent)-Browser ++ $(NetCoreAppCurrent)-Unix;$(NetCoreAppCurrent)-Browser + true + true + +diff --git a/src/runtime/src/libraries/System.Runtime.Intrinsics/tests/System.Runtime.Intrinsics.Tests.csproj b/src/runtime/src/libraries/System.Runtime.Intrinsics/tests/System.Runtime.Intrinsics.Tests.csproj +index 6c0187cf21f..fef12aa096c 100644 +--- a/src/runtime/src/libraries/System.Runtime.Intrinsics/tests/System.Runtime.Intrinsics.Tests.csproj ++++ b/src/runtime/src/libraries/System.Runtime.Intrinsics/tests/System.Runtime.Intrinsics.Tests.csproj +@@ -4,7 +4,7 @@ + $(NoWarn),1718,SYSLIB0013 + true + true +- $(NetCoreAppCurrent)-windows;$(NetCoreAppCurrent)-Unix;$(NetCoreAppCurrent)-Browser ++ $(NetCoreAppCurrent)-Unix;$(NetCoreAppCurrent)-Browser + + $(Features.Replace('nullablePublicOnly', '') + +diff --git a/src/runtime/src/libraries/System.Runtime.Serialization.Formatters/tests/System.Runtime.Serialization.Formatters.Tests.csproj b/src/runtime/src/libraries/System.Runtime.Serialization.Formatters/tests/System.Runtime.Serialization.Formatters.Tests.csproj +index 378b38abb93..971c431ca2e 100644 +--- a/src/runtime/src/libraries/System.Runtime.Serialization.Formatters/tests/System.Runtime.Serialization.Formatters.Tests.csproj ++++ b/src/runtime/src/libraries/System.Runtime.Serialization.Formatters/tests/System.Runtime.Serialization.Formatters.Tests.csproj +@@ -2,7 +2,7 @@ + + true + true +- $(NetCoreAppCurrent)-windows;$(NetCoreAppCurrent)-FreeBSD;$(NetCoreAppCurrent)-illumos;$(NetCoreAppCurrent)-Solaris;$(NetCoreAppCurrent)-Linux;$(NetCoreAppCurrent)-OSX;$(NetCoreAppCurrent)-iOS;$(NetCoreAppCurrent)-tvOS;net48 ++ $(NetCoreAppCurrent)-FreeBSD;$(NetCoreAppCurrent)-illumos;$(NetCoreAppCurrent)-Solaris;$(NetCoreAppCurrent)-Linux;$(NetCoreAppCurrent)-OSX;$(NetCoreAppCurrent)-iOS;$(NetCoreAppCurrent)-tvOS;net48 + + + +diff --git a/src/runtime/src/libraries/System.Runtime/tests/NlsTests/System.Runtime.Nls.Tests.csproj b/src/runtime/src/libraries/System.Runtime/tests/NlsTests/System.Runtime.Nls.Tests.csproj +index 849edc8cd5c..2deaa7914ef 100644 +--- a/src/runtime/src/libraries/System.Runtime/tests/NlsTests/System.Runtime.Nls.Tests.csproj ++++ b/src/runtime/src/libraries/System.Runtime/tests/NlsTests/System.Runtime.Nls.Tests.csproj +@@ -3,7 +3,7 @@ + true + true + true +- $(NetCoreAppCurrent)-windows ++ + $(NoWarn),SYSLIB0013 + + +diff --git a/src/runtime/src/libraries/System.Runtime/tests/System.Runtime.Tests.csproj b/src/runtime/src/libraries/System.Runtime/tests/System.Runtime.Tests.csproj +index fc6859854dc..260dafbd372 100644 +--- a/src/runtime/src/libraries/System.Runtime/tests/System.Runtime.Tests.csproj ++++ b/src/runtime/src/libraries/System.Runtime/tests/System.Runtime.Tests.csproj +@@ -1,6 +1,6 @@ + + +- $(NetCoreAppCurrent)-windows;$(NetCoreAppCurrent)-Unix;$(NetCoreAppCurrent)-Browser ++ $(NetCoreAppCurrent)-Unix;$(NetCoreAppCurrent)-Browser + true + $(NoWarn),1718,SYSLIB0013 + true +diff --git a/src/runtime/src/libraries/System.Security.AccessControl/src/System.Security.AccessControl.csproj b/src/runtime/src/libraries/System.Security.AccessControl/src/System.Security.AccessControl.csproj +index 35fabc2416c..a461103be90 100644 +--- a/src/runtime/src/libraries/System.Security.AccessControl/src/System.Security.AccessControl.csproj ++++ b/src/runtime/src/libraries/System.Security.AccessControl/src/System.Security.AccessControl.csproj +@@ -1,7 +1,7 @@ +  + + true +- $(NetCoreAppCurrent)-windows;$(NetCoreAppCurrent) ++ $(NetCoreAppCurrent) + + + +diff --git a/src/runtime/src/libraries/System.Security.AccessControl/tests/System.Security.AccessControl.Tests.csproj b/src/runtime/src/libraries/System.Security.AccessControl/tests/System.Security.AccessControl.Tests.csproj +index 05fd95a165f..f0c167ed082 100644 +--- a/src/runtime/src/libraries/System.Security.AccessControl/tests/System.Security.AccessControl.Tests.csproj ++++ b/src/runtime/src/libraries/System.Security.AccessControl/tests/System.Security.AccessControl.Tests.csproj +@@ -1,6 +1,6 @@ + + +- $(NetCoreAppCurrent)-windows ++ + + + +diff --git a/src/runtime/src/libraries/System.Security.Cryptography.Cng/tests/System.Security.Cryptography.Cng.Tests.csproj b/src/runtime/src/libraries/System.Security.Cryptography.Cng/tests/System.Security.Cryptography.Cng.Tests.csproj +index 4bfc1719abf..cc312cffe4e 100644 +--- a/src/runtime/src/libraries/System.Security.Cryptography.Cng/tests/System.Security.Cryptography.Cng.Tests.csproj ++++ b/src/runtime/src/libraries/System.Security.Cryptography.Cng/tests/System.Security.Cryptography.Cng.Tests.csproj +@@ -1,7 +1,7 @@ + + + $(DefineConstants);TESTING_CNG_IMPLEMENTATION +- $(NetCoreAppCurrent)-windows ++ + + + +diff --git a/src/runtime/src/libraries/System.Security.Cryptography.Csp/tests/System.Security.Cryptography.Csp.Tests.csproj b/src/runtime/src/libraries/System.Security.Cryptography.Csp/tests/System.Security.Cryptography.Csp.Tests.csproj +index 59d139c7749..a8e94e72847 100644 +--- a/src/runtime/src/libraries/System.Security.Cryptography.Csp/tests/System.Security.Cryptography.Csp.Tests.csproj ++++ b/src/runtime/src/libraries/System.Security.Cryptography.Csp/tests/System.Security.Cryptography.Csp.Tests.csproj +@@ -1,6 +1,6 @@ + + +- $(NetCoreAppCurrent)-windows;$(NetCoreAppCurrent)-Unix;$(NetCoreAppCurrent)-Browser ++ $(NetCoreAppCurrent)-Unix;$(NetCoreAppCurrent)-Browser + + $(NoWarn);SYSLIB0021 + +diff --git a/src/runtime/src/libraries/System.Security.Cryptography.Pkcs/src/System.Security.Cryptography.Pkcs.csproj b/src/runtime/src/libraries/System.Security.Cryptography.Pkcs/src/System.Security.Cryptography.Pkcs.csproj +index be33237e616..426ddb38e27 100644 +--- a/src/runtime/src/libraries/System.Security.Cryptography.Pkcs/src/System.Security.Cryptography.Pkcs.csproj ++++ b/src/runtime/src/libraries/System.Security.Cryptography.Pkcs/src/System.Security.Cryptography.Pkcs.csproj +@@ -1,6 +1,6 @@ + + +- $(NetCoreAppCurrent)-windows;$(NetCoreAppCurrent);$(NetCoreAppMinimum)-windows;$(NetCoreAppMinimum);netstandard2.1;netstandard2.0;$(NetFrameworkMinimum) ++ $(NetCoreAppCurrent);$(NetCoreAppMinimum);netstandard2.1;netstandard2.0;$(NetFrameworkMinimum) + true + true + $(NoWarn);CA5384 +diff --git a/src/runtime/src/libraries/System.Security.Cryptography.Pkcs/tests/System.Security.Cryptography.Pkcs.Tests.csproj b/src/runtime/src/libraries/System.Security.Cryptography.Pkcs/tests/System.Security.Cryptography.Pkcs.Tests.csproj +index 8523c0d8296..2045f05a28e 100644 +--- a/src/runtime/src/libraries/System.Security.Cryptography.Pkcs/tests/System.Security.Cryptography.Pkcs.Tests.csproj ++++ b/src/runtime/src/libraries/System.Security.Cryptography.Pkcs/tests/System.Security.Cryptography.Pkcs.Tests.csproj +@@ -1,7 +1,7 @@ + + + true +- $(NetCoreAppCurrent)-windows;$(NetCoreAppCurrent);net48 ++ $(NetCoreAppCurrent);net48 + + + + +- $(NetCoreAppCurrent)-windows;$(NetCoreAppCurrent);$(NetCoreAppMinimum)-windows;$(NetCoreAppMinimum);netstandard2.0;$(NetFrameworkMinimum) ++ $(NetCoreAppCurrent);$(NetCoreAppMinimum);netstandard2.0;$(NetFrameworkMinimum) + true + true + true +diff --git a/src/runtime/src/libraries/System.Security.Cryptography.ProtectedData/tests/System.Security.Cryptography.ProtectedData.Tests.csproj b/src/runtime/src/libraries/System.Security.Cryptography.ProtectedData/tests/System.Security.Cryptography.ProtectedData.Tests.csproj +index 61408ea83bc..2bdefe93760 100644 +--- a/src/runtime/src/libraries/System.Security.Cryptography.ProtectedData/tests/System.Security.Cryptography.ProtectedData.Tests.csproj ++++ b/src/runtime/src/libraries/System.Security.Cryptography.ProtectedData/tests/System.Security.Cryptography.ProtectedData.Tests.csproj +@@ -1,7 +1,7 @@ + + + true +- $(NetCoreAppCurrent)-windows;$(NetFrameworkMinimum) ++ $(NetFrameworkMinimum) + + + +diff --git a/src/runtime/src/libraries/System.Security.Cryptography.X509Certificates/tests/System.Security.Cryptography.X509Certificates.Tests.csproj b/src/runtime/src/libraries/System.Security.Cryptography.X509Certificates/tests/System.Security.Cryptography.X509Certificates.Tests.csproj +index a284d8edf47..cefeb84c128 100644 +--- a/src/runtime/src/libraries/System.Security.Cryptography.X509Certificates/tests/System.Security.Cryptography.X509Certificates.Tests.csproj ++++ b/src/runtime/src/libraries/System.Security.Cryptography.X509Certificates/tests/System.Security.Cryptography.X509Certificates.Tests.csproj +@@ -4,7 +4,7 @@ + $(DefineConstants);HAVE_THUMBPRINT_OVERLOADS + true + $(NoWarn);SYSLIB0026;SYSLIB0027;SYSLIB0028 +- $(NetCoreAppCurrent)-windows;$(NetCoreAppCurrent)-Unix;$(NetCoreAppCurrent)-Android;$(NetCoreAppCurrent)-Browser;$(NetCoreAppCurrent)-OSX;$(NetCoreAppCurrent)-iOS;$(NetCoreAppCurrent)-tvOS ++ $(NetCoreAppCurrent)-Unix;$(NetCoreAppCurrent)-Android;$(NetCoreAppCurrent)-Browser;$(NetCoreAppCurrent)-OSX;$(NetCoreAppCurrent)-iOS;$(NetCoreAppCurrent)-tvOS + true + + +diff --git a/src/runtime/src/libraries/System.Security.Cryptography/src/System.Security.Cryptography.csproj b/src/runtime/src/libraries/System.Security.Cryptography/src/System.Security.Cryptography.csproj +index cf25738f6e7..29d0f0734cb 100644 +--- a/src/runtime/src/libraries/System.Security.Cryptography/src/System.Security.Cryptography.csproj ++++ b/src/runtime/src/libraries/System.Security.Cryptography/src/System.Security.Cryptography.csproj +@@ -2,7 +2,7 @@ + + true + $(DefineConstants);INTERNAL_ASYMMETRIC_IMPLEMENTATIONS +- $(NetCoreAppCurrent)-windows;$(NetCoreAppCurrent)-Unix;$(NetCoreAppCurrent)-Android;$(NetCoreAppCurrent)-OSX;$(NetCoreAppCurrent)-iOS;$(NetCoreAppCurrent)-tvOS;$(NetCoreAppCurrent)-Browser;$(NetCoreAppCurrent) ++ $(NetCoreAppCurrent)-Unix;$(NetCoreAppCurrent)-Android;$(NetCoreAppCurrent)-OSX;$(NetCoreAppCurrent)-iOS;$(NetCoreAppCurrent)-tvOS;$(NetCoreAppCurrent)-Browser;$(NetCoreAppCurrent) + $(NoWarn);CA5350;CA5351;CA5379;CA5384;SYSLIB0026 + + $(NoWarn);CS0809 +diff --git a/src/runtime/src/libraries/System.Security.Cryptography/tests/System.Security.Cryptography.Tests.csproj b/src/runtime/src/libraries/System.Security.Cryptography/tests/System.Security.Cryptography.Tests.csproj +index 50e110c0445..b32809447d3 100644 +--- a/src/runtime/src/libraries/System.Security.Cryptography/tests/System.Security.Cryptography.Tests.csproj ++++ b/src/runtime/src/libraries/System.Security.Cryptography/tests/System.Security.Cryptography.Tests.csproj +@@ -1,6 +1,6 @@ + + +- $(NetCoreAppCurrent)-windows;$(NetCoreAppCurrent)-Unix;$(NetCoreAppCurrent)-Android;$(NetCoreAppCurrent)-Browser ++ $(NetCoreAppCurrent)-Unix;$(NetCoreAppCurrent)-Android;$(NetCoreAppCurrent)-Browser + true + $(NoWarn);SYSLIB0021 + true +diff --git a/src/runtime/src/libraries/System.Security.Permissions/tests/System.Security.Permissions.Tests.csproj b/src/runtime/src/libraries/System.Security.Permissions/tests/System.Security.Permissions.Tests.csproj +index 73f50b209fb..7205c2e239a 100644 +--- a/src/runtime/src/libraries/System.Security.Permissions/tests/System.Security.Permissions.Tests.csproj ++++ b/src/runtime/src/libraries/System.Security.Permissions/tests/System.Security.Permissions.Tests.csproj +@@ -1,6 +1,6 @@ + + +- $(NetCoreAppCurrent)-windows ++ + + $(NoWarn);SYSLIB0003 + +diff --git a/src/runtime/src/libraries/System.Security.Principal.Windows/src/System.Security.Principal.Windows.csproj b/src/runtime/src/libraries/System.Security.Principal.Windows/src/System.Security.Principal.Windows.csproj +index a67d4af63eb..9fef2993b07 100644 +--- a/src/runtime/src/libraries/System.Security.Principal.Windows/src/System.Security.Principal.Windows.csproj ++++ b/src/runtime/src/libraries/System.Security.Principal.Windows/src/System.Security.Principal.Windows.csproj +@@ -1,7 +1,7 @@ + + + true +- $(NetCoreAppCurrent)-windows;$(NetCoreAppCurrent) ++ $(NetCoreAppCurrent) + + + +diff --git a/src/runtime/src/libraries/System.Security.Principal.Windows/tests/System.Security.Principal.Windows.Tests.csproj b/src/runtime/src/libraries/System.Security.Principal.Windows/tests/System.Security.Principal.Windows.Tests.csproj +index e9caf5fa463..43e03119cb3 100644 +--- a/src/runtime/src/libraries/System.Security.Principal.Windows/tests/System.Security.Principal.Windows.Tests.csproj ++++ b/src/runtime/src/libraries/System.Security.Principal.Windows/tests/System.Security.Principal.Windows.Tests.csproj +@@ -1,7 +1,7 @@ + + + true +- $(NetCoreAppCurrent)-windows ++ + + + +diff --git a/src/runtime/src/libraries/System.ServiceProcess.ServiceController/src/System.ServiceProcess.ServiceController.csproj b/src/runtime/src/libraries/System.ServiceProcess.ServiceController/src/System.ServiceProcess.ServiceController.csproj +index 518c800ae01..2b465d475b0 100644 +--- a/src/runtime/src/libraries/System.ServiceProcess.ServiceController/src/System.ServiceProcess.ServiceController.csproj ++++ b/src/runtime/src/libraries/System.ServiceProcess.ServiceController/src/System.ServiceProcess.ServiceController.csproj +@@ -1,6 +1,6 @@ + + +- $(NetCoreAppCurrent)-windows;$(NetCoreAppCurrent);$(NetCoreAppMinimum)-windows;$(NetCoreAppMinimum);netstandard2.0;$(NetFrameworkMinimum) ++ $(NetCoreAppCurrent);$(NetCoreAppMinimum);netstandard2.0;$(NetFrameworkMinimum) + true + $(NoWarn);CA2249 + true +diff --git a/src/runtime/src/libraries/System.ServiceProcess.ServiceController/tests/System.ServiceProcess.ServiceController.Tests.csproj b/src/runtime/src/libraries/System.ServiceProcess.ServiceController/tests/System.ServiceProcess.ServiceController.Tests.csproj +index 1039fad47f4..99412bc09b8 100644 +--- a/src/runtime/src/libraries/System.ServiceProcess.ServiceController/tests/System.ServiceProcess.ServiceController.Tests.csproj ++++ b/src/runtime/src/libraries/System.ServiceProcess.ServiceController/tests/System.ServiceProcess.ServiceController.Tests.csproj +@@ -1,6 +1,6 @@ + + +- $(NetCoreAppCurrent)-windows;$(NetFrameworkMinimum) ++ $(NetFrameworkMinimum) + + + +diff --git a/src/runtime/src/libraries/System.Speech/src/System.Speech.csproj b/src/runtime/src/libraries/System.Speech/src/System.Speech.csproj +index 22506f7bf96..9c53e796bd8 100644 +--- a/src/runtime/src/libraries/System.Speech/src/System.Speech.csproj ++++ b/src/runtime/src/libraries/System.Speech/src/System.Speech.csproj +@@ -1,6 +1,6 @@ + + +- $(NetCoreAppCurrent)-windows;$(NetCoreAppCurrent);$(NetCoreAppMinimum)-windows;$(NetCoreAppMinimum);netstandard2.0 ++ $(NetCoreAppCurrent);$(NetCoreAppMinimum);netstandard2.0 + true + + +diff --git a/src/runtime/src/libraries/System.Speech/tests/System.Speech.Tests.csproj b/src/runtime/src/libraries/System.Speech/tests/System.Speech.Tests.csproj +index 9139d0d2392..d81ff8a7ca1 100644 +--- a/src/runtime/src/libraries/System.Speech/tests/System.Speech.Tests.csproj ++++ b/src/runtime/src/libraries/System.Speech/tests/System.Speech.Tests.csproj +@@ -1,6 +1,6 @@ + + +- $(NetCoreAppCurrent)-windows ++ + + + +diff --git a/src/runtime/src/libraries/System.Text.Encoding.CodePages/src/System.Text.Encoding.CodePages.csproj b/src/runtime/src/libraries/System.Text.Encoding.CodePages/src/System.Text.Encoding.CodePages.csproj +index 8883abba36b..c7ff6be8fec 100644 +--- a/src/runtime/src/libraries/System.Text.Encoding.CodePages/src/System.Text.Encoding.CodePages.csproj ++++ b/src/runtime/src/libraries/System.Text.Encoding.CodePages/src/System.Text.Encoding.CodePages.csproj +@@ -1,6 +1,6 @@ + + +- $(NetCoreAppCurrent)-windows;$(NetCoreAppCurrent);$(NetCoreAppMinimum)-windows;$(NetCoreAppMinimum);netstandard2.0;$(NetFrameworkMinimum) ++ $(NetCoreAppCurrent);$(NetCoreAppMinimum);netstandard2.0;$(NetFrameworkMinimum) + true + true + true +diff --git a/src/runtime/src/libraries/System.Threading.AccessControl/src/System.Threading.AccessControl.csproj b/src/runtime/src/libraries/System.Threading.AccessControl/src/System.Threading.AccessControl.csproj +index 54c8e0bad5f..c9c91e64692 100644 +--- a/src/runtime/src/libraries/System.Threading.AccessControl/src/System.Threading.AccessControl.csproj ++++ b/src/runtime/src/libraries/System.Threading.AccessControl/src/System.Threading.AccessControl.csproj +@@ -1,6 +1,6 @@ + + +- $(NetCoreAppCurrent)-windows;$(NetCoreAppCurrent);$(NetCoreAppMinimum)-windows;$(NetCoreAppMinimum);netstandard2.0;$(NetFrameworkMinimum) ++ $(NetCoreAppCurrent);$(NetCoreAppMinimum);netstandard2.0;$(NetFrameworkMinimum) + true + true + Provides support for managing access and audit control lists for synchronization primitives. +diff --git a/src/runtime/src/libraries/System.Threading.AccessControl/tests/System.Threading.AccessControl.Tests.csproj b/src/runtime/src/libraries/System.Threading.AccessControl/tests/System.Threading.AccessControl.Tests.csproj +index 3b9e105954d..14949ff735b 100644 +--- a/src/runtime/src/libraries/System.Threading.AccessControl/tests/System.Threading.AccessControl.Tests.csproj ++++ b/src/runtime/src/libraries/System.Threading.AccessControl/tests/System.Threading.AccessControl.Tests.csproj +@@ -1,6 +1,6 @@ + + +- $(NetCoreAppCurrent)-windows;$(NetFrameworkMinimum) ++ $(NetFrameworkMinimum) + + + + true + true +- $(NetCoreAppCurrent)-windows;$(NetCoreAppCurrent) ++ $(NetCoreAppCurrent) + CA1805;IDE0059;CS1591 + $([MSBuild]::GetTargetPlatformIdentifier('$(TargetFramework)')) + +diff --git a/src/runtime/src/libraries/System.Windows.Extensions/src/System.Windows.Extensions.csproj b/src/runtime/src/libraries/System.Windows.Extensions/src/System.Windows.Extensions.csproj +index ee9cb23d69e..741c633215b 100644 +--- a/src/runtime/src/libraries/System.Windows.Extensions/src/System.Windows.Extensions.csproj ++++ b/src/runtime/src/libraries/System.Windows.Extensions/src/System.Windows.Extensions.csproj +@@ -1,6 +1,6 @@ + + +- $(NetCoreAppCurrent)-windows;$(NetCoreAppCurrent);$(NetCoreAppMinimum)-windows;$(NetCoreAppMinimum) ++ $(NetCoreAppCurrent);$(NetCoreAppMinimum) + true + true + Provides miscellaneous Windows-specific types +diff --git a/src/runtime/src/libraries/System.Windows.Extensions/tests/System.Windows.Extensions.Tests.csproj b/src/runtime/src/libraries/System.Windows.Extensions/tests/System.Windows.Extensions.Tests.csproj +index e7b45293318..089fe0ef33f 100644 +--- a/src/runtime/src/libraries/System.Windows.Extensions/tests/System.Windows.Extensions.Tests.csproj ++++ b/src/runtime/src/libraries/System.Windows.Extensions/tests/System.Windows.Extensions.Tests.csproj +@@ -1,6 +1,6 @@ + + +- $(NetCoreAppCurrent)-windows ++ + + + +-- +2.36.3 + diff --git a/user/dotnet7-stage0/runtime_make-lld-use-depend-on-existing-on-target.patch b/user/dotnet7-stage0/runtime_make-lld-use-depend-on-existing-on-target.patch new file mode 100644 index 0000000..c56b81e --- /dev/null +++ b/user/dotnet7-stage0/runtime_make-lld-use-depend-on-existing-on-target.patch @@ -0,0 +1,25 @@ +From b99f2106370e1af3ecd116576341b94319cbd332 Mon Sep 17 00:00:00 2001 +From: Antoine Martin +Date: Sun, 18 Sep 2022 00:45:20 +0000 +Subject: [PATCH 1/1] s390x fixes + +--- + src/runtime/eng/common/cross/toolchain.cmake | 7 ++++++- + .../eng/common/native/init-compiler.sh | 2 +- + 6 files changed, 26 insertions(+), 14 deletions(-) + +diff --git a/src/runtime/eng/common/native/init-compiler.sh b/src/runtime/eng/common/native/init-compiler.sh +index 41a26d802..f81f3257f 100644 +--- a/src/runtime/eng/common/native/init-compiler.sh ++++ b/src/runtime/eng/common/native/init-compiler.sh +@@ -135,7 +135,7 @@ fi + # Only lld version >= 9 can be considered stable + if [[ "$compiler" == "clang" && "$majorVersion" -ge 9 ]]; then + if "$CC" -fuse-ld=lld -Wl,--version >/dev/null 2>&1; then +- LDFLAGS="-fuse-ld=lld" ++ [ -f "$ROOTFS_DIR/usr/bin/lld" ] && LDFLAGS="-fuse-ld=lld" + fi + fi + +-- +2.37.1 diff --git a/user/dotnet7-stage0/runtime_no-additional-runtime-id.patch b/user/dotnet7-stage0/runtime_no-additional-runtime-id.patch new file mode 100644 index 0000000..c6884b7 --- /dev/null +++ b/user/dotnet7-stage0/runtime_no-additional-runtime-id.patch @@ -0,0 +1,25 @@ +From 79f02a53316f90543d60269d7c06727c376f423b Mon Sep 17 00:00:00 2001 +From: Antoine Martin +Date: Wed, 24 Aug 2022 18:41:08 +0000 +Subject: [PATCH 1/1] No additional runtime id + +For some reason, AdditionalRuntimeIdentifiers gets set as '$arch' rather than 'linux-musl-$arch' +Since we know our portable RID exists, just skip ensuring RID existence + +--- +diff --git a/src/runtime/src/libraries/Microsoft.NETCore.Platforms/src/Microsoft.NETCore.Platforms.csproj b/src/runtime/src/libraries/Microsoft.NETCore.Platforms/src/Microsoft.NETCore.Platforms.csproj +index 742f1788189..81877a5e6cd 100644 +--- a/src/runtime/src/libraries/Microsoft.NETCore.Platforms/src/Microsoft.NETCore.Platforms.csproj ++++ b/src/runtime/src/libraries/Microsoft.NETCore.Platforms/src/Microsoft.NETCore.Platforms.csproj +@@ -21,8 +21,6 @@ + <_generateRuntimeGraphTargetFramework Condition="'$(MSBuildRuntimeType)' == 'core'">$(NetCoreAppToolCurrent) + <_generateRuntimeGraphTargetFramework Condition="'$(MSBuildRuntimeType)' != 'core'">net472 + <_generateRuntimeGraphTask>$([MSBuild]::NormalizePath('$(BaseOutputPath)', $(Configuration), '$(_generateRuntimeGraphTargetFramework)', '$(AssemblyName).dll')) +- +- $(AdditionalRuntimeIdentifiers);$(OutputRID) + + + +-- +2.37.1 + diff --git a/user/dotnet7-stage0/sdk_dummyshim-fix.patch b/user/dotnet7-stage0/sdk_dummyshim-fix.patch new file mode 100644 index 0000000..f45b43c --- /dev/null +++ b/user/dotnet7-stage0/sdk_dummyshim-fix.patch @@ -0,0 +1,55 @@ +From 79f02a53316f90543d60269d7c06727c376f423b Mon Sep 17 00:00:00 2001 +From: Antoine Martin +Date: Wed, 24 Aug 2022 18:41:08 +0000 +Subject: [PATCH 1/1] dummy-shim-fix + +Hack for building sdk within stage0, which expects to be built using the +whole stack. + +--- + build/GenerateResxSource.targets | 1 - + scripts/register-completions.zsh | 13 +++---------- + .../Microsoft.DotNet.PackageInstall.Tests.csproj | 1 - + .../SampleGlobalToolWithShim/includepublish.nuspec | 4 +--- + 4 files changed, 4 insertions(+), 15 deletions(-) + +diff --git a/src/sdk/build/GenerateResxSource.targets b/src/sdk/build/GenerateResxSource.targets +index 239665655d..b47510d901 100644 +--- a/src/sdk/build/GenerateResxSource.targets ++++ b/src/sdk/build/GenerateResxSource.targets +@@ -1,7 +1,6 @@ + + + + +index a147870bcb..f673e4e21b 100644 +--- a/src/sdk/src/Tests/Microsoft.DotNet.PackageInstall.Tests/Microsoft.DotNet.PackageInstall.Tests.csproj ++++ b/src/sdk/src/Tests/Microsoft.DotNet.PackageInstall.Tests/Microsoft.DotNet.PackageInstall.Tests.csproj +@@ -107,7 +107,6 @@ + + + +- + + +diff --git a/src/sdk/src/Tests/Microsoft.DotNet.PackageInstall.Tests/SampleGlobalToolWithShim/includepublish.nuspec b/src/sdk/src/Tests/Microsoft.DotNet.PackageInstall.Tests/SampleGlobalToolWithShim/includepublish.nuspec +index b2ed9d349c..d760d5f772 100644 +--- a/src/sdk/src/Tests/Microsoft.DotNet.PackageInstall.Tests/SampleGlobalToolWithShim/includepublish.nuspec ++++ b/src/sdk/src/Tests/Microsoft.DotNet.PackageInstall.Tests/SampleGlobalToolWithShim/includepublish.nuspec +@@ -12,9 +12,7 @@ + + + +- +- + + + + +-- +2.37.1 + diff --git a/user/dotnet7-stage0/sdk_fix-sdk-download.patch b/user/dotnet7-stage0/sdk_fix-sdk-download.patch new file mode 100644 index 0000000..6533a9a --- /dev/null +++ b/user/dotnet7-stage0/sdk_fix-sdk-download.patch @@ -0,0 +1,22 @@ +From 79f02a53316f90543d60269d7c06727c376f423b Mon Sep 17 00:00:00 2001 +From: Antoine Martin +Date: Wed, 24 Aug 2022 18:41:08 +0000 +Subject: [PATCH 1/1] fix-sdk-download + +Sdk insists on downloading SDK rather than using previously unpacked ones. +This patch reverts to old behavior + +--- +diff --git a/src/sdk/eng/restore-toolset.sh b/src/sdk/eng/restore-toolset.sh +index 2426dac65b0..9e3f38f8536 100644 +--- a/src/sdk/eng/restore-toolset.sh ++++ b/src/sdk/eng/restore-toolset.sh +@@ -7,7 +7,7 @@ function InitializeCustomSDKToolset { + + # The following frameworks and tools are used only for testing. + # Do not attempt to install them in source build. +- if [[ $properties == *"ArcadeBuildFromSource=true"* ]]; then ++ if [[ "${DotNetBuildFromSource:-}" == "true" ]]; then + return + fi +