* Document F5 and Test Explorer prerequisites
* Update docs/workflow/testing/visualstudio.md
Co-authored-by: Alexander Köplinger <alex.koeplinger@outlook.com>
* Check for OpenSSL (and pkg-config) in the check_prereqs() function
* Simplify OpenSSL installation instructions
* Automatically pick the OpenSSL version installed by Homebrew by exporting the proper PKG_CONFIG_PATH environment variable
* Improve the error message if cmake can't find OpenSSL
The previous instructions were asking the user to add symbolic links inside /usr/local/lib/ and /usr/local/lib/pkgconfig/ for OpenSSL related files. There is no need for a complicated setup with symbolic links when the PKG_CONFIG_PATH environment variable points to the right pkgconfig, which is now done in build-commons.sh.
Co-Authored-By: Jan Kotas <jkotas@microsoft.com>
Co-Authored-By: Jeremy Barton <jbarton@microsoft.com>
* Enable dotnet test
* Update docs
* Use vstest in F5 scenarios
* Make dotnet test without framework switch work
* Code cleanup
* Only run code coverage conditionally
* Fix F5 condition for netcoreapp
* Downgrade sdk to check for helix submission failures
* Fix wrong conditions
* Add blame data collector
* Redesign subset feature and remove subsetcategory
Implement proposal from https://github.com/dotnet/runtime/issues/34403.
Remove subsetcategory and allow all subsets to specified via the -subset
switch.
* Remove entry point helper scripts
The entry point helper scripts were useful during the consolidation of
the repositories. This work is mostly done and the build.cmd/sh script
should be used, going forward.
- Use RestoreUseStaticGraphEvaluation which improves no-op restore by 10-15x down to 10-20 seconds.
- .builds msbuild files renamed to .proj as RestoreUseStaticGraphEvaluation throws for non .proj files without an env var set.
- Introducing subsets for libraries and mono and replacing -buildtests switch which was only working for libraries in favor of the subset switch -subset tests which works consistently.
- Fixing the Microsoft.DotNet.CodeAnalysis analyzer which wasn't running and adding missing exclusions.
- Separating restore and build phases in different parts in the repo (ie for installer.tasks) as generated props and targets need to be imported which requires a reevaluation in the build phase.
- Fix eng/docker/build-docker-sdk.ps1 by using the official build entrypoints (cc @alnikola)
- Remove a few depprojs in favor of project restore (faster restore :))
- Fix root code coverage measurement not working correctly
- Traversal support instead of dir.traversal.targets or manual build target defines.
- Introduce a root Build.proj entrypoint which is responsible for building and restoring the repository. This is necessary to enable the new NuGet fast restore which works best and fastest with a single entrypoint.
- Avoid binclashes in libraries and between libraries and installer (netstandard.depproj vs netstandard.csproj)
- Upgrading the SDK to 5.0 latest
- Code cleanup
* add support for FreeBSD cross-compilation
* feedback from review
* update detection
* add openssl to docs
* feedback from reviews
* feedback from reviews
* final cleanup
* feedback from reviews
* simplify detection of route.h
* correct __CrossBuild detection
* use TargetOS for installer
* Run crossgen in parallel
* Change container to python:3.7
* Undo python3.7 container
* Update the arm build image and address feedback
* Default to python 3.x
* Force python3
* Small python changes
* Define asyncio
* Update to run arm 18.04 cross
* Remove dup core_root generation
* Update arm container
* Use 3.6 for crossgen_comparison
* Finish adding async defintions
* Fix spacing in file
* Update docker image used in linux-requirements
* Implicitly build when invoking the test target
To get closer to the VSTest behavior this changes the Test target to
implicitly invoke the Build target unless /p:TestNoBuild is passed in.
(VSTest uses VSTestNoBuild which is controlled by the
dotnet test --no-build flag)
* Fix error logging for test outputs
* Update dotnet msbuild to build docs
* Update ReportGenerator global tool version
Updating ReportGenerator's version to 4.5.0 which removes unnecessary
logging (args passed in).
* Move coreclr managed tools that don't need to be published and System.Private.CoreLib into their own subsets in Subsets.props and drive their builds via Arcade instead of the coreclr scripts.
* Remove building System.Private.CoreLib from build scripts. Eventing sources TBD.
* Build packages via an Arcade subset instead of within build.cmd/build.sh
* Remove packages and test build from build.cmd. Clean up options on build.cmd and build.sh
* Generate eventing sources for System.Private.CoreLib within MSBuild instead of in the build.cmd/sh scripts. Clean up the build.sh usage documentation (lots of copy-paste errors).
* Remove check-definitions.py script and supporting goo.
* Fix eventing generation.
* Wire up TargetArchitecture and OSGroup to coreclr's BuildArch and BuildOS to enable building System.Private.CoreLib for the correct output given the script parameters.
* Stop passing down now non-existent skiptests parameter.
* Fix coreclr .nuget rid parsing to account for linux-musl correctly.
* Update build scripts to use Arcade to build packages.
* Convert from Properties to AdditionalProperties.
* Build crossgen as part of Arcade (self-contained publish TBD).
* Pull down .NET runtime CLI for helix runs with crossgen2.
* Output crossgen2 to the BinDir/crossgen when built from the project file. Enable the test shell scripts to either resolve the dotnet CLI from the path or from relative to Core_Root if the __DotNet variable is undefined.
* Generate distro rid during windows build.
* Various fixes to get files binplaced correctly and builds to work on Linux.
* Fix search for dotnet in repo on bash.
* Remove __BuildTest variable and fix up the script.
* Fix steps in build-job to build S.P.CL before the runtime and build managed tools after the runtime.
* Fix casing typo.
* Refactor detecting system OS and Architecture.
* Fix wasm rid calculation.
* Run crossgen2 on corerun so we run it on the runtime we're going to ship it with.
* Assemble a live self-contained publish in the crossgen2 package.
* Fix init-os-and-arch resolution.
* Ensure that the runtime files we package in crossgen2 are the crossgened ones.
* Remove extraneous /bl
* Build R2RDump to a subfolder instead of the product dir.
* Seperate out the crosssgening corelib step into a separate script.
* Fix permissions on crossgen-corelib.sh
* Rename build.cmd/sh to build-runtime.cmd/sh
* Fix parameters in crossgen2determinism test.
* Run crossgen on System.Private.CoreLib in CI.
* Restore original build.cmd/sh scripts with a deprecation warning and update instructions.
* Initialize developer prompt in crossgen-corelib.cmd script so we can find DIA on CI machines.
* Make sure vs tools are enabled so we can resolve DiaSymReader.
* Call build-native instead of build.
* Fix build-native -> build-runtime.
* Fix permissions.
* Remove dead MSBuild code.
* Factor out python locating targets to make them available to the whole repo.
* PR Feedback/simplification.
* Create a self-contained deps.json for crossgen2 and add it to the package.
* Pass runtimeconfiguration as configuration for crossgen2 deps file generation.
* Try specifying rids directly in crossgen2 project to get the restore correct for the live-build pipeline.
* Run crossgen2 via corerun in R2R.SuperILC.
* Add binlogs to build-runtime.cmd
* Combine non build-runtime steps into a single step so we get one binlog that doesn't get overwritten.
* Add reference to issue describing new workflow.
* Quote python path
* Set arch default.
* PR Feedback and clean up crossgen-corelib's argument list.
* Fix subset name matching to work when one subset name is a substring of another.
* Pass the official build id as an msbuild arg at all times.
Additional cleanup for crossgen-corelib step.
* PR Feedback.
* Fix default subset list construction.
* Add deprecation warnings at beginning and end of build.cmd and build.sh.
* Setup dirs in crossgen-corelib.sh
* Move enforcepgo argument to before the official build arg so that it gets consumed correctly.
* Add cross-os DAC builds as subsets.
Clean up build-runtime parameters and passing the official build ID from runtime.proj.
* Update script usage docs.
* Skip the cross-os dac on x86.
* Build windows->linux cross dac on PR and CI.
* Don't build the cross-OS linux dac on Windows x86.
* Build libraries against Mono runtime
This change allows you to build libraries against the Mono runtime
without having to first build CoreCLR. There isn't a specifically
supported build option for this but can be forced with the following
command line:
```
.\build.cmd -subsetcategory libraries /p:RuntimeFlavor=mono
```
* Make JitDump label output multi-thread safe
`s_compMethodsCount` is a static variable and incrementing it when
two JITs are running at the same time can result in inconsistent labels. This PR fixes it by adding an instance variable `compMethodID` on `Compiler` object and setting it to the value of `s_compMethodsCount` after incrementing it using `InterlockedIncrement()`.
Changed the type of `s_compMethodID` to `LONG` to match the signature of `InterlockedIncrement()` and made it private.
Fixes#10984