Skip to content

Commit

Permalink
Update 'net7.0' usages in the repo
Browse files Browse the repository at this point in the history
  • Loading branch information
ViktorHofer committed Nov 18, 2022
1 parent ba30472 commit 46780fd
Show file tree
Hide file tree
Showing 17 changed files with 50 additions and 48 deletions.
50 changes: 25 additions & 25 deletions docs/workflow/building/libraries/cross-building.md
Original file line number Diff line number Diff line change
Expand Up @@ -46,30 +46,30 @@ To build native runtime libraries for arm:

$ ROOTFS_DIR=`pwd`/.tools/rootfs/arm ./build.sh libs.native --cross --arch arm --librariesConfiguration Release

Build artifacts can be found in `artifacts/bin/native/net7.0-<TargetOS>-<BuildArch>-<BuildType>/`:

$ ls artifacts/bin/native/net7.0-Linux-Release-arm/*
artifacts/bin/native/net7.0-Linux-Release-arm/libSystem.Globalization.Native.a
artifacts/bin/native/net7.0-Linux-Release-arm/libSystem.Globalization.Native.so
artifacts/bin/native/net7.0-Linux-Release-arm/libSystem.Globalization.Native.so.dbg
artifacts/bin/native/net7.0-Linux-Release-arm/libSystem.IO.Compression.Native.a
artifacts/bin/native/net7.0-Linux-Release-arm/libSystem.IO.Compression.Native.so
artifacts/bin/native/net7.0-Linux-Release-arm/libSystem.IO.Compression.Native.so.dbg
artifacts/bin/native/net7.0-Linux-Release-arm/libSystem.IO.Ports.Native.a
artifacts/bin/native/net7.0-Linux-Release-arm/libSystem.IO.Ports.Native.so
artifacts/bin/native/net7.0-Linux-Release-arm/libSystem.IO.Ports.Native.so.dbg
artifacts/bin/native/net7.0-Linux-Release-arm/libSystem.Native.a
artifacts/bin/native/net7.0-Linux-Release-arm/libSystem.Native.so
artifacts/bin/native/net7.0-Linux-Release-arm/libSystem.Native.so.dbg
artifacts/bin/native/net7.0-Linux-Release-arm/libSystem.Net.Security.Native.a
artifacts/bin/native/net7.0-Linux-Release-arm/libSystem.Net.Security.Native.so
artifacts/bin/native/net7.0-Linux-Release-arm/libSystem.Net.Security.Native.so.dbg
artifacts/bin/native/net7.0-Linux-Release-arm/libSystem.Security.Cryptography.Native.OpenSsl.a
artifacts/bin/native/net7.0-Linux-Release-arm/libSystem.Security.Cryptography.Native.OpenSsl.so
artifacts/bin/native/net7.0-Linux-Release-arm/libSystem.Security.Cryptography.Native.OpenSsl.so.dbg

$ file artifacts/bin/native/net7.0-Linux-Release-arm/libSystem.Native.so
artifacts/bin/native/net7.0-Linux-Release-arm/libSystem.Native.so: ELF 32-bit LSB shared object, ARM, EABI5 version 1 (SYSV), dynamically linked, BuildID[sha1]=5f6f6f9c4012dffed133624867adf32ac2af130d, stripped
Build artifacts can be found in `artifacts/bin/native/net8.0-<TargetOS>-<BuildArch>-<BuildType>/`:

$ ls artifacts/bin/native/net8.0-Linux-Release-arm/*
artifacts/bin/native/net8.0-Linux-Release-arm/libSystem.Globalization.Native.a
artifacts/bin/native/net8.0-Linux-Release-arm/libSystem.Globalization.Native.so
artifacts/bin/native/net8.0-Linux-Release-arm/libSystem.Globalization.Native.so.dbg
artifacts/bin/native/net8.0-Linux-Release-arm/libSystem.IO.Compression.Native.a
artifacts/bin/native/net8.0-Linux-Release-arm/libSystem.IO.Compression.Native.so
artifacts/bin/native/net8.0-Linux-Release-arm/libSystem.IO.Compression.Native.so.dbg
artifacts/bin/native/net8.0-Linux-Release-arm/libSystem.IO.Ports.Native.a
artifacts/bin/native/net8.0-Linux-Release-arm/libSystem.IO.Ports.Native.so
artifacts/bin/native/net8.0-Linux-Release-arm/libSystem.IO.Ports.Native.so.dbg
artifacts/bin/native/net8.0-Linux-Release-arm/libSystem.Native.a
artifacts/bin/native/net8.0-Linux-Release-arm/libSystem.Native.so
artifacts/bin/native/net8.0-Linux-Release-arm/libSystem.Native.so.dbg
artifacts/bin/native/net8.0-Linux-Release-arm/libSystem.Net.Security.Native.a
artifacts/bin/native/net8.0-Linux-Release-arm/libSystem.Net.Security.Native.so
artifacts/bin/native/net8.0-Linux-Release-arm/libSystem.Net.Security.Native.so.dbg
artifacts/bin/native/net8.0-Linux-Release-arm/libSystem.Security.Cryptography.Native.OpenSsl.a
artifacts/bin/native/net8.0-Linux-Release-arm/libSystem.Security.Cryptography.Native.OpenSsl.so
artifacts/bin/native/net8.0-Linux-Release-arm/libSystem.Security.Cryptography.Native.OpenSsl.so.dbg

$ file artifacts/bin/native/net8.0-Linux-Release-arm/libSystem.Native.so
artifacts/bin/native/net8.0-Linux-Release-arm/libSystem.Native.so: ELF 32-bit LSB shared object, ARM, EABI5 version 1 (SYSV), dynamically linked, BuildID[sha1]=5f6f6f9c4012dffed133624867adf32ac2af130d, stripped


Compile managed runtime libraries on Linux
Expand All @@ -88,7 +88,7 @@ Note that by default ILLinker trimming is enabled and libraries built above for

$ ./build.sh libs.sfx --arch arm --librariesConfiguration Release /p:ILLinkTrimAssembly=false

Build artifacts can be found in `artifacts/bin/microsoft.netcore.app.runtime.<TargetOS>-<BuildArch>/<BuildType>/runtimes/<TargetOS>-<BuildArch>/lib/net7.0/`. For more details on the build configurations see [project-guidelines](/docs/coding-guidelines/project-guidelines.md).
Build artifacts can be found in `artifacts/bin/microsoft.netcore.app.runtime.<TargetOS>-<BuildArch>/<BuildType>/runtimes/<TargetOS>-<BuildArch>/lib/net8.0/`. For more details on the build configurations see [project-guidelines](/docs/coding-guidelines/project-guidelines.md).

Both native and managed runtime libraries can be built at the same time with:

Expand Down
4 changes: 2 additions & 2 deletions docs/workflow/debugging/coreclr/debugging-runtime.md
Original file line number Diff line number Diff line change
Expand Up @@ -53,7 +53,7 @@ Visual Studio's capabilities as a full IDE provide a lot of help making the runt
5. Set `Command=$(SolutionDir)\..\..\..\..\bin\coreclr\windows.$(Platform).$(Configuration)\corerun.exe`. This points to the folder where the built runtime binaries are present.
6. Set `Command Arguments=<managed app you wish to run>` (e.g. HelloWorld.dll).
7. Set `Working Directory=$(SolutionDir)\..\..\..\..\bin\coreclr\windows.$(Platform).$(Configuration)`. This points to the folder containing CoreCLR binaries.
8. Set `Environment=CORE_LIBRARIES=$(SolutionDir)\..\..\..\..\bin\runtime\<target-framework>-windows-$(Configuration)-$(Platform)`, where '\<target-framework\>' is the target framework of current branch; for example `netcoreapp3.1` `net5.0`, `net6.0`, or `net7.0`. A few notes on this step:
8. Set `Environment=CORE_LIBRARIES=$(SolutionDir)\..\..\..\..\bin\runtime\<target-framework>-windows-$(Configuration)-$(Platform)`, where '\<target-framework\>' is the target framework of current branch; for example `net6.0`, `net7.0` or `net8.0`. A few notes on this step:

* This points to the folder containing core libraries except `System.Private.CoreLib`.
* This step can be skipped if you are debugging CLR tests that reference only `System.Private.CoreLib`. Otherwise, it's required to debug a real-world application that references anything else, including `System.Runtime`.
Expand Down Expand Up @@ -83,7 +83,7 @@ Steps 1-9 only need to be done once as long as there's been no changes to the CM
},
{
"name": "CORE_LIBRARIES",
// for example net7.0-windows-Debug-x64
// for example net8.0-windows-Debug-x64
"value": "${cmake.installRoot}\\..\\..\\runtime\\<tfm>-windows-<configuration>-<arch>\\"
}
],
Expand Down
4 changes: 1 addition & 3 deletions docs/workflow/testing/using-dev-shipping-packages.md
Original file line number Diff line number Diff line change
Expand Up @@ -127,11 +127,9 @@ Running this little app should yield an output like the following:

```text
Hello World from .NET 8.0.0-dev
The location of System.Private.CoreLib.dll is '/path/to/your/app/bin/Debug/net7.0/win-x64/publish/System.Private.CoreLib.dll'
The location of System.Private.CoreLib.dll is '/path/to/your/app/bin/Debug/net8.0/win-x64/publish/System.Private.CoreLib.dll'
```

You might be wondering why it says `net7.0` if we are using an `8.0.0` SDK. At the time of writing, we are still preparing all that's needed to fully migrate development to .NET 8. In the not so distant future, the path should be `net8.0` as you might expect, and this doc will be updated accordingly.

## Making Changes and Consuming Updated Packages

You've now successfully tested your runtime build. However, more likely than not, you will be making further changes that you'll want to test. The issue here is you can't simply build the repo again and have it work. This is because of the _NuGet Cache_ mentioned earlier. Since the version number doesn't change locally, NuGet doesn't realize changes have been made and thus uses its cached version. To get around this, we have to get rid of such cache. That's why we set a local one using the `globalPackagesFolder` in the `nuget.config` file we created.
Expand Down
10 changes: 5 additions & 5 deletions docs/workflow/testing/using-your-build-with-installed-sdk.md
Original file line number Diff line number Diff line change
Expand Up @@ -93,7 +93,7 @@ dotnet publish --self-contained
</configuration>
```

After you publish successfully, you will find all the binaries needed to run your application under `bin\Debug\net7.0\win-x64\publish`. You might be wondering why `net7.0` if we are using an `8.0.100` SDK. At the time of writing, we are still preparing all that's needed to fully migrate development to .NET 8. In the not so distant future, the path should be `net8.0` as you might expect, and this doc will be updated accordingly.
After you publish successfully, you will find all the binaries needed to run your application under `bin\Debug\net8.0\win-x64\publish`.

**But we are not done yet, you need to replace the published runtime files with the files from your local build!**

Expand All @@ -105,12 +105,12 @@ The publishing step described above creates a directory that has all the files n
* `System.Private.CoreLib.dll`: If you modified managed C# code, it will end up here.
* `clrjit.dll`: The JIT compiler. It is also required you copy this one to your published app.

Now, here comes the main deal to test your build. Once you have your self-contained app published, and CoreCLR built, you will replace the binaries listed above with the generated artifacts. Copy them from `artifacts/bin/coreclr/<OS>.<arch>.<configuration>/` to your app's publication directory, which by default is `your-app-folder/bin/<configuration>/net7.0/<os-code>-<arch>/publish`.
Now, here comes the main deal to test your build. Once you have your self-contained app published, and CoreCLR built, you will replace the binaries listed above with the generated artifacts. Copy them from `artifacts/bin/coreclr/<OS>.<arch>.<configuration>/` to your app's publication directory, which by default is `your-app-folder/bin/<configuration>/net8.0/<os-code>-<arch>/publish`.

In our previous example this would be:

* From: `artifacts/bin/coreclr/windows.x64.Debug/`
* To: `HelloWorld/bin/Debug/net7.0/win-x64/publish/`
* To: `HelloWorld/bin/Debug/net8.0/win-x64/publish/`

## Confirm that the app used your new runtime (Optional)

Expand All @@ -130,7 +130,7 @@ That should tell you the version, and which user and machine built the assembly,

```text
Core Runtime Info: 8.0.0-dev
System.Private.CoreLib.dll is located at: /path/to/your/app/bin/Debug/net7.0/win-x64/publish/System.Private.CoreLib.dll
System.Private.CoreLib.dll is located at: /path/to/your/app/bin/Debug/net8.0/win-x64/publish/System.Private.CoreLib.dll
```

What you are looking for here is that the core runtime used is labelled as `-dev`. This means it is indeed using the one you built in the runtime repo. Also, ensure that the picked _System.Private.CoreLib.dll_ is indeed the one in your `publish` folder.
Expand All @@ -144,7 +144,7 @@ Here are a few very common errors you might encounter, and how to fix them.
Make sure you are running the executable directly.

```cmd
.\bin\Debug\net7.0\win-x64\publish\HelloWorld.exe
.\bin\Debug\net8.0\win-x64\publish\HelloWorld.exe
```

If you use `dotnet run` it will overwrite your custom binaries before executing the app.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,9 @@ namespace Mono.Linker.Tests.TestCasesRunner
{
public static class PathUtilities
{
#if NET7_0
#if NET8_0
public const string TFMDirectoryName = "net8.0";
#elif NET7_0
public const string TFMDirectoryName = "net7.0";
#elif NET6_0
public const string TFMDirectoryName = "net6.0";
Expand Down
2 changes: 1 addition & 1 deletion src/installer/tests/Assets/TestUtils/TestProjects.props
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
-->

<PropertyGroup>
<NetCoreAppCurrent>net7.0</NetCoreAppCurrent>
<NetCoreAppCurrent>net8.0</NetCoreAppCurrent>
<!-- Turn off end of life target framework checks as we intentionally build older .NETCoreApp configurations. -->
<CheckEolTargetFramework>false</CheckEolTargetFramework>
<!--
Expand Down
1 change: 1 addition & 0 deletions src/installer/tests/TestUtils/Constants.cs
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,7 @@ public static class Tfm
public const string RuntimeConfigPropertyName = "tfm";
public const string Net6 = "net6.0";
public const string Net7 = "net7.0";
public const string Net8 = "net8.0";
}

public static class FxVersion
Expand Down
2 changes: 1 addition & 1 deletion src/libraries/Common/tests/StaticTestGenerator/Program.cs
Original file line number Diff line number Diff line change
Expand Up @@ -274,7 +274,7 @@ from part in line.Split(' ')
// Invalid command line arguments.
Console.WriteLine("Usage: <output_directory> <helper_assemblies_directory> <test_assembly_path> <xunit_console_options>");
Console.WriteLine(" Example:");
Console.WriteLine(@" dotnet run d:\tmpoutput d:\repos\runtime\artifacts\bin\testhost\net7.0-windows-Debug-x64\shared\Microsoft.NETCore.App\7.0.0\ d:\repos\runtime\artifacts\bin\System.Runtime.Tests\net7.0-windows-Debug\System.Runtime.Tests.dll");
Console.WriteLine(@" dotnet run d:\tmpoutput d:\repos\runtime\artifacts\bin\testhost\net8.0-windows-Debug-x64\shared\Microsoft.NETCore.App\8.0.0\ d:\repos\runtime\artifacts\bin\System.Runtime.Tests\net8.0-windows-Debug\System.Runtime.Tests.dll");
testAssemblyPath = string.Empty;
runtimeAssembliesPath = string.Empty;
outputPath = string.Empty;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@
PrivateAssets="all"
Private="true"
IncludeReferenceAssemblyInPackage="true" />
<!-- Only include the 4.4 version in the ref pack, since targeting net7.0 requires Roslyn 4.4 -->
<!-- Only include the 4.4 version in the ref pack, since targeting net7.0 or greater requires Roslyn 4.4 -->
<AnalyzerReference Include="$(LibrariesProjectRoot)Microsoft.Extensions.Logging.Abstractions\gen\Microsoft.Extensions.Logging.Generators.Roslyn4.4.csproj"
Pack="true"
ReferenceAnalyzer="false" />
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
<IsPackable>true</IsPackable>
<PackageDescription>Exposes Threading APIs for WebAssembly projects</PackageDescription>
<!--
NU5128 suppresses missing net7.0 dependencies.
NU5128 suppresses missing $(NetCoreAppCurrent) dependencies.
PKV004 suppresses APICompat rule for missing runtime asset.
-->
<NoWarn>$(NoWarn);NU5128;NU5131;PKV004</NoWarn>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,8 +8,8 @@

<TargetingPacksTargetsLocation Condition="'$(TargetingPacksTargetsLocation)' == ''">$(RepositoryRoot)eng/targetingpacks.targets</TargetingPacksTargetsLocation>
<ProductVersion>8.0.0</ProductVersion>
<NetCoreAppCurrent>net7.0</NetCoreAppCurrent>
<NetCoreAppCurrentVersion>7.0</NetCoreAppCurrentVersion>
<NetCoreAppCurrent>net8.0</NetCoreAppCurrent>
<NetCoreAppCurrentVersion>8.0</NetCoreAppCurrentVersion>
<MicrosoftNetCoreAppFrameworkName>Microsoft.NETCore.App</MicrosoftNetCoreAppFrameworkName>
<MicrosoftNetCoreAppRefPackDir Condition="'$(MicrosoftNetCoreAppRefPackDir)' == ''" >$(RepositoryRoot)artifacts/bin/microsoft.netcore.app.ref/</MicrosoftNetCoreAppRefPackDir>
<MicrosoftNetCoreAppRuntimePackDir Condition="'$(MicrosoftNetCoreAppRuntimePackDir)' == ''">$(RepositoryRoot)artifacts/bin/microsoft.netcore.app.runtime.$(OutputRid)/$(Configuration)/</MicrosoftNetCoreAppRuntimePackDir>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,6 @@
Define this here because the SDK resets it
unconditionally in Microsoft.NETCoreSdk.BundledVersions.props.
-->
<NETCoreAppMaximumVersion>7.0</NETCoreAppMaximumVersion>
<NETCoreAppMaximumVersion>8.0</NETCoreAppMaximumVersion>
</PropertyGroup>
</Project>
Original file line number Diff line number Diff line change
Expand Up @@ -8,8 +8,8 @@

<TargetingPacksTargetsLocation Condition="'$(TargetingPacksTargetsLocation)' == ''">$(RepositoryRoot)eng/targetingpacks.targets</TargetingPacksTargetsLocation>
<ProductVersion>8.0.0</ProductVersion>
<NetCoreAppCurrent>net7.0</NetCoreAppCurrent>
<NetCoreAppCurrentVersion>7.0</NetCoreAppCurrentVersion>
<NetCoreAppCurrent>net8.0</NetCoreAppCurrent>
<NetCoreAppCurrentVersion>8.0</NetCoreAppCurrentVersion>
<MicrosoftNetCoreAppFrameworkName>Microsoft.NETCore.App</MicrosoftNetCoreAppFrameworkName>
<MicrosoftNetCoreAppRefPackDir Condition="'$(MicrosoftNetCoreAppRefPackDir)' == ''" >$(RepositoryRoot)artifacts/bin/microsoft.netcore.app.ref/</MicrosoftNetCoreAppRefPackDir>
<MicrosoftNetCoreAppRuntimePackDir Condition="'$(MicrosoftNetCoreAppRuntimePackDir)' == ''">$(RepositoryRoot)artifacts/bin/microsoft.netcore.app.runtime.$(OutputRid)/$(Configuration)/</MicrosoftNetCoreAppRuntimePackDir>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,6 @@
Define this here because the SDK resets it
unconditionally in Microsoft.NETCoreSdk.BundledVersions.props.
-->
<NETCoreAppMaximumVersion>7.0</NETCoreAppMaximumVersion>
<NETCoreAppMaximumVersion>8.0</NETCoreAppMaximumVersion>
</PropertyGroup>
</Project>
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,7 @@ private static bool HasJsonConstructorAttribute(ConstructorInfo constructorInfo)
public static bool HasRequiredMemberAttribute(this ICustomAttributeProvider memberInfo)
{
// For compiler related attributes we should only look at full type name rather than trying to do something different for version when attribute was introduced.
// I.e. library is targetting netstandard2.0 with polyfilled attributes and is being consumed by app targetting net7.0.
// I.e. library is targeting netstandard2.0 with polyfilled attributes and is being consumed by an app targeting net7.0 or greater.
return memberInfo.HasCustomAttributeWithName("System.Runtime.CompilerServices.RequiredMemberAttribute", inherit: true);
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@

<PropertyGroup>
<OutputType>Exe</OutputType>
<!-- SDK maximum supported version. -->
<TargetFramework>net7.0</TargetFramework>
<Nullable>enable</Nullable>
</PropertyGroup>
Expand Down
2 changes: 1 addition & 1 deletion src/native/libs/build-native.sh
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
#!/usr/bin/env bash

usage_list=("-outconfig: Configuration, typically a quadruplet such as 'net7.0-Linux-Release-x64', used to name output directory.")
usage_list=("-outconfig: Configuration, typically a quadruplet such as 'net8.0-Linux-Release-x64', used to name output directory.")
usage_list+=("-staticLibLink: Optional argument to statically link any native library.")

__scriptpath="$(cd "$(dirname "$0")"; pwd -P)"
Expand Down

0 comments on commit 46780fd

Please sign in to comment.