Age | Commit message (Collapse) | Author |
|
Implement support for "Linux Bionic", a RID which builds a Linux runtime against an Android libc but without Android OS functions like JNI, Dalvik, Instrumentation, etc. This configuration has been requested by a team working on an IoT scenario.
* The new RID is linux-bionic-arm64/linux-bionic-x64.
* The build reuses the existing Android build dockerfiles and Helix queues
* Since we don't have JNI, we don't have Android Crypto - instead, use an Android build of OpenSSL. As an errata, it is incumbent upon the end user to supply this in their OS environment (we download one ad-hoc for testing purposes, which was compiled by Google)
* Some tests cannot be completed due to SELinux policies affecting the shell user executing tests via adb shell in the world-writable /data/local/tmp directory. We expect those tests would pass if they pass on Android, in a real-world IoT scenario with a custom OS (rather than recycling Google's OS images intended for phones)
Closes: #66027
|
|
|
|
* Infra clean-up to simplify auto references
* Ref project file updates
* Src project file updates
* Test project file updates
|
|
* Fix VS complaining about missing projects in slns
Remove inbox (Project-)References in out-of-band projects as these
projects already build on top of the shared framework (targeting pack).
* Update Microsoft.Extensions ref projects
* Update Microsoft.Extensions src projects
* Update graph dependencies of Microsoft.Extensions*
* Update sources that complained about Span usage
|
|
|
|
* Remove dotnet6 feeds
dotnet7 feeds are currently the target feeds for the main branch. The dotnet6 feeds shouldn't be used anymore.
* Update targetingpacks.targets
* Update prebuilt package versions
* Update NativeExports.csproj
|
|
Split the build of shared framework and out-of-band projects so that
it's possible to just build the shard framework projects, which was
requested by the CLR teams. In the next infrastructure rollout, the
current "libs.ref+libs.src" subsets should be removed. Generate the
targeting pack with an incomplete (without shims) frameworklist as part
of the "libs.sfx" subset.
Build the shim projects after the shared framework and oob projects and
re-generate the targeting pack's frameworklist to include the shims.
Refactor the shims so that they aren't grouped anymore by generated &
manual. Instead group them by "ref" and "src" same as other libraries
in the tree which allows to reference the source project shims and read
from the ReferenceAssembly metadata.
Use ProjectReferences in traversal projects and shim projects instead
of named references that point to binplace directories (see graph below)
This allows to build parts of the product dynamically, i.e. the shim
projects, apicompat.proj, sfx.proj and oob.proj.
|
|
* Subtract instead of cartesian product in targets
See https://github.com/dotnet/runtime/pull/64000#issuecomment-1030460532. These targets were quite expensive and noticeable in no-op builds. Instead of building the cartesian product via item batching, using subtraction which avoids unnecessary items to be computed.
* Update resolveContract.targets
* Update targetingpacks.targets
* Update resolveContract.targets
* Update resolveContract.targets
|
|
* Initial ARMv6 arch addition. Builds mono runtime, not CoreCLR (Mono already supports the CPU arch subset used by Raspberry Pi, whilst porting CoreCLR to e.g. VFPv2 would be major work)
* Build small clr subset on ARMv6, it's needed for SDK and we want to check it works
|
|
|
|
* Remove EOL tfms and upgrade to net7.0
* Make linker tests net7 aware
Make installer tests run on net7.0
Don't attempt to use live apphost
Fix payloads
Regenerate test files
Fix package testing
|
|
Use similar logic to `eng/targetingpacks.targets` in `WasmApp.InTree.targets` and `WasmApp.LocalBuild.targets`.
Also set `UseMonoRuntime=true` to make sure we get the Mono-based runtime pack.
|
|
* Update dotnet SDK to 6.0 Preview 4
Update the minimum and target version of the SDK to 6.0 Preview 4.
Part of https://github.com/dotnet/runtime/issues/53411
* Switch to using eng/targetingpacks.targets for redirecting runtime pack location in src/mono/sample
* Fix binder tracing tests
* Set UseMonoRuntime property so the dotnet SDK can pull the mono runtime packs
This is necessary after the changes from https://github.com/dotnet/sdk/pull/16909.
* Move UseMonoRuntimeProperty and set it to false in coreclr
Co-authored-by: Alexander Köplinger <alex.koeplinger@outlook.com>
Co-authored-by: Elinor Fung <elfung@microsoft.com>
|
|
* Include NetCoreAppCurrent configs in packages
The NetCoreAppCurrent configurations were omitted from packages to avoid
ever growing packages. Now that we adhere to the support policy for
packages we don't need to exclude them anymore as the policy defines a
baseline for .NETCoreApp configurations.
This will remove an artificial difference when source building the
repository and also make it so that partner repositories which don't
depend on a transport package like windowsdesktop (winforms) receive
the very latest assets that are included in the shared framework as
well.
* Fix package validation for non exposed inbox libs
|
|
* Expose the UseLocalTargetingRuntimePack property
and use it in the Microsoft.NETCore.Platforms package to avoid a dependency on the live built targeting and runtime pack / shared framework.
* Update Microsoft.NETCore.Platforms.csproj
|
|
Previously, we have had four iOS RIDs:
iOS-arm
iOS-arm64
iOS-x86
iOS-x64
Apple has never shipped an iOS device with an x86 or x64 processor. Instead, the x86/x64 RIDs have meant "iOS simulator with these arches" as opposed to "iOS with these arches". Amongst other things, that means building against a DIFFERENT SDK, iPhoneSimulator.platform vs iPhoneOS.platform
In the Apple Silicon future, the iOS simulator is now an ARM64 binary - so we need:
iOS-arm
iOS-arm64
iOS-arm64, but built against the simulator SDK not the device SDK
iOS-x86
iOS-x64
Clearly, there's a problem.
The solution is to move the simulators to a different RID, to avoid the overloading issue:
iOS-arm
iOS-arm64
iOSSimulator-arm64
iOSSimulator-x86
iOSSimulator-x64
This PR introduces the new entries in the RID graph, moves our existing iOS-x{86,64} to iOS-sim-x{86,64}, adds a new iOS-arm64.
The above also applies for tvOS, with a smaller set of OSes:
tvOS-arm64
tvOSSimulator-arm64
tvOSSimulator-x64
Ref: #48216
|
|
Fix crossgen2 RID specific package names and use more specific property
names to avoid confusion about shared framework meanings.
|
|
SDK to 6.0 (#48462)
* Remove duplicated ILLink PackageReference
The Arcade.SDK already package refrences the ILLink package. The
duplicate reference in illink.targets caused SDK errors as the Arcade
reference has IsImplicitlyDefined set which doesn't allow an additional
reference with the same identity.
Also, as the ILLink package already exposes the path to the assembly via
its props file, using that instead of manually constructing the path to
the assembly.
The SDK target version update is required as the sequencing of the
ILLink.props file was wrong and is required for this change. This isn't
considered a breaking change, as the SDK's minimum required version
isn't changed.
* Update arcade dependencies
* Remove NuGet pack tasks pkgref
* Add mega hack workaround
* Remove KnownFrameworkReference items
* Don't hardcode SDK value in helix submission...
* Update runtimeConfiguration.targets
* Fix double publishing error in mobile tests
* Set DotNetCliVersion to right version for aspnetcoreruntime
* Update sendtohelixhelp.proj
* Update sendtohelixhelp.proj
Co-authored-by: Santiago Fernandez Madero <safern@microsoft.com>
|
|
* Update hardcoded rids for targeting/runtime pks
|
|
* Avoid race conditions when building linker tests
|
|
pack (#45922)
* Add workaround to remove runtime pack from download to use local runtime pack
* PR Feedback
* Add support for full msbuild
|
|
* Add Known* items to the local targeting pack resolution
Add the required Known* items so that the ProcessFrameworkReferences
logic in the SDK knows about these and is able to create Resolved* items
that we later update to point to our local packs.
This is required when building with an SDK that doesn't support the
project's TargetFramework yet.
|
|
MicrosoftNetCoreAppRefPackRefDir was redefined on NetCoreAppCurrent and relied on the ResolvedFrameworkReference item which isn't available when an SDK is used that doesn't support the current TFM yet. Redefining MicrosoftNetCoreAppRefPackRefDir on NetCoreAppCurrent isn't necessary and will stop the wrong calculation of the property.
|
|
|
|
* Add transitive CompilerServices.Unsafe dependency
for System.Memory and System.Threading.Tasks.Extensions package
references. Adding the dependency as a P2P to prefer the live asset
over the prebuilt.
|
|
(#40796)
* Disable net analyzers from the SDK and use them from package reference instead
* Fix build with new SDK and bump net analyzer version
* PR Feedback
|
|
- Remove depprojs which currently binplace external references into the RefPath folders in favor of PackageReference and PackageDownload items.
- Build all configurations by default when building an individual project (either on the CLI or inside VS) same as with the official SDK. This enables .NETFramework Test Explorer support.
- Centrally define libraries that compose the shared framework instead of in each Directory.Build.props file to be able to build the targeting pack first and consume it in the OOB libraries.
- Use ProjectReferences to reference OOB projects. Compile against the reference assembly but use the implementation assembly app-local during runtime.
- Remove OOBs from the testhost and remove the testhost folder for .NETFramework as it isn't required anymore.
- Only binplace for $(NetCoreAppCurrent) to compose a) the targeting pack, b) the runtime pack, c) the testhost, d) a full closure for the shims.
- Use Targeting Packs for OOB projects (with their implicit assembly references) but still explicitly define granular references for .NETCoreApp configurations (DisableImplicitAssemblyReferences switch). Use the implicit targeting pack references in some Microsoft.Extensions.* cases.
- Remove placeholder configurations as they aren't needed anymore with explicit P2Ps vs Targeting Pack references.
- Remove implicit assembly references (ie for .NETFramework, mscorlib)
- Remove AssemblySearchPath hacks that were introduced with b7c4cb7 as the targeting pack is now used by default.
- Reduce unnecessary .NETFramework configurations that were added to run tests in favor of the already existing ref&src configurations.
- Stop hardcoding the paths for wasm assemblies and use the returned TargetPath of the ProjectReferences.
- Addressed formatting (ItemGroups, References at the bottom of the project file, ordering of references, use LibrariesProjectRoot instead of a relative path, unnecessary AssemblyName and RootNamespace properties which are identical to the project name, ordering of tfms)
- Revert "fix clean (#33758)"
|