Age | Commit message (Collapse) | Author | Files | Lines |
|
* Remove SOS and lldb plugin
Issue: https://github.com/dotnet/coreclr/issues/24092
|
|
* Fix ibcmerge.csproj to use IbcMergePackageVersion
This fixes a copy/paste bug.
* Fix more copy/paste in comment
* Use ! in place of %
|
|
This specifically will set __BuildManagedTools=0 and skip building R2RDump and runincontext.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
This will reduce fragility in our build pipeline, by explicitely controlling the output of dotnet msbuild. It also unblocks the source-build effort, as source-build will write extra console output breaking our old parsing.
|
|
Pre SDK 3.0, a project type that is not .csproj would not include Directory.Build.targets. Change empty.proj to empty.csproj to allow source build, which uses a 2.1 sdk to build, correctly import Directory.Build.targets.
|
|
* Remove BuildTools imports from product build
* Split scripts for installing dotnet vs BuildTools
|
|
|
|
|
|
|
|
in official build (#24735)
* Fix missing version numbers in packaged files in official build
* Fix build script for getting IBC merge version
|
|
Piping code into Python is indistinguishable from interactive execution, but since we never want interactive execution here it's better to use `-c <CODE>`.
|
|
|
|
* Generate eventpipe implementation as part of CMake configure.
* Generate Etw provider as part of CMake configure.
* First pass porting over lttng provider to cmake.
* Fix up CMake Lttng provider generation.
* Move Lttng provider into CMake tree.
* Move dummy event provider to CMake
* Move genEventing into the CMake tree.
* Remove extraneous logging and unused python locator.
* Clean up build.sh
* Clean up genEventingTests.py
* Add dependencies to enable more incremental builds (providers not fully incremental).
* Convert to custom command and targets instead of at configure time.
* Get each eventing target to incrementally build.
* Fix incremental builds
* Add missing dependencies on eventing headers.
* PR Feedback. Mark all generated files as generated
* Clean up eventprovider test CMakeLists
|
|
* Properly set the nuget cache for the repo
* Change coreclr NuGet package cache from "./packages" to "./.packages"
|
|
Fix build.cmd passing of args to runtest.cmd
|
|
If you use the `generatelayout` argument to build.cmd, it passes
all "unprocessed" arguments directly on to msbuild. To accomplish
the same this with runtest.cmd, you must use the "msbuildargs"
argument, or else the arg will be treated as a `CORE_ROOT` argument.
(This seems like a bad design, but that's a separate issue.)
E.g., I always pass `/consoleloggerparameters:ForceNoAlign`, and want
that passed on to runtest.cmd. (This should also be the default, but
once again, that's a separate issue.)
|
|
Convert managed product binary to use SDK project system.
- Uses Arcade for versions strings
- Overrides Arcade defined output paths - should change in the future
|
|
Microsoft.DotNet.BuildTools.CoreClr instead of using the package. (#24347)
* Use our local-built instances of tools from Microsoft.DotNet.BuildTools.CoreClr instead of using the package.
* Fix const-correctness in InjectResource.
* Build cross-arch native components before building native components for target arch.
* Build InjectResource and GenClrDebugResource for the host arch when cross-building and import the targets into the cross-build.
* install(EXPORT) in the directory where the target is created
|
|
* Add separate build steps to do the IBCMerge restore.
* Attempt 1 to get config picked up.
* Attempt 2 getting ibcmerge restore working.
* Fix invalid MSBuild syntax.
* Fix getting IBC package version.
|
|
|
|
ibcoptimize is set. (#24205)
* Update IBCMerge and ensure that it runs when in a release build and ibcoptimize is set.
* Add major rollforward for ibcmerge.
|
|
|
|
|
|
|
|
* Use arcade dotnet
* Add cmake_msbuild.cmd
Move msbuild.cmd to cmake_msbuild.bat
Document intent that this file is only used to resolve
Windows cmake dependency on desktop msbuild.exe
Remove one instance of msbuild.cmd
* Fix inittools.cmd
* Remove spurious setup_vs_tools.cmd calls
|
|
* Change IBC package layout to match what the optimization repo now generates
|
|
LangVersion=8.0 (#22452)
* Update BuildTools to preview1-03713-01 (master)
* Updating CoreCLR to use LangVersion=8.0
* Moving the Windows scripts to default to `dotnet msbuild` for managed components
* Setting UseSharedCompilation=true
* Changing some additional callsites that were using msbuild to use dotnet msbuild
* Revert packages.builds to use Desktop msbuild on Windows
* Fixing runtest.cmd to always set DotNetCli
|
|
* Renaming RuntimeEventSource to NativeRuntimeEventSource
* missed a couple of comments and XPlatEventLogger
* rename DotNETRuntimeEventSource.cs to NativeRuntimeEventSource.cs
* use condition= instead of ifdef
* removing ifdef from NativeRuntimeEventSource.cs
* Fix case for 'eventing' directory in csproj
* Fix unix builds
* This should fix unix build...
|
|
* Support building with VS2019 Preview
* Fixing gen-buildsys-win to only set the architecture for the VS generator
* Refactoring Dev11/147911/fpcw.cpp so that it compiles under VS2019
* Removing the remaining traces of VS2015 build support
|
|
We have had many problems in the CI with MSBuild failing, and not
capturing the failure logs.
See https://github.com/dotnet/coreclr/issues/20236.
So, for all msbuild invocations, set MSBUILDDEBUGPATH to a new,
distinguished, subdirectory of the bin\Logs directory, named
"MsbuildDebugLogs". Change the CI to upload any log files found
there.
|
|
* Add -skipcrossarchnative option to build.cmd
This allows you to skip building the cross-architecture native components.
* Add -skipcrossarchnative to build.sh
|
|
This moves us one step away from buildtools and towards arcade.
This replaces run.sh and run.cmd (and all invocations) with "dotnet.sh msbuild" and "msbuild.cmd".
- I'm using these wrapper scripts for now instead of those in eng/common in order to retain the very helpful "Running <command>" output in the build logs.
- I'm using msbuild.cmd instead of dotnet.sh to match the current behavior that uses desktop msbuild on windows, instead of dotnet.
All of the arguments that used to be implicitly generated by run.exe and config.json are now explicit, resulting in longer (but easier to copy+paste) commands. Some of these arguments are likely unnecessary, but in this change my goal is just to match the run.exe behavior. Later, I would like to go through and clean up parameters that don't need to be passed in every invocation. I might also consider moving more of the common arguments out into variables in a later change.
Some of the wrapper scripts now have limited support for parsing "-Argument=Value" style parameters, to support our existing buildpipeline infrastructure, since I thought this was easier to test than changing our buildpipeline definitions. We can remove that parsing logic once we stop using buildpipeline (which has happened at this point).
Some subtle parts of the change:
* Add msbuild.cmd
This simulates the behavior of Tools\msbuild.cmd, which calls desktop msbuild.
* Fix BuildOS processing in package build and publish
Previously, config.json had its own processing that would set
OSName. Instead, we now pass it in explicitly where it's
needed (building packages), or not at all (publishing them).
* Handle "=" in publish-packages.cmd and other scripts
This seems necessary to properly handle the azure access token
* Set __BuildOS in PublishPackages
Required for cases where the build OS isn't detected during the build
such as freebsd.
* Use dotnet msbuild in runtest.py
This prevents us from having to deal with different quote escape
behavior on windows and linux. Previously, arguments like
fileloggerparameters and the logger were given quotes to escape
semicolons in the argument. On unix, this prevented the argument from
being split up by bash. On windows, it seems that the run.cmd/run.exe
tools would prevent the extra quotes from being passed to
msbuild.exe (desktop msbuild would choke on the quotes if they were
passed along).
Unlike desktop msbuild, dotnet msbuild is able to parse the quoted
strings, so we simply psas the quoted arguments directly to it on
windows. We may be able to do the same on unix.
* Fix build-test.sh problem with BuildOS
When copying native files during the unix test build, we rely on
__BuildOS being set. Fixing the import order and always setting
__BuildOS fixes this. We should eventually fix the inconsistent use of
BuildOS vs __BuildOS.
|
|
|
|
* Fix consistency between `-` and prefixless args in build.com
* Remove -generatelayout
Already PR'd by someone else
|
|
When multiple NUMA nodes are enabled on the machine where coreclr is
built, we incorrectly detect the number of cores that we use for build
parallelism of the native part of the build (NumberOfCores) as only
a number in the last NUMA node.
The reason is that the `wmic cpu get NumberOfCores /value` returns
multiple lines, one per each NUMA node.
This change fixes it by summing values from all the lines.
|
|
|
|
This change does the following:
* Move the IBCOptimize step out of the Crossgen section and into the CoreLib build section of build.cmd
* Adds -ibconly which will skip building System.Private.CoreLib and only run the ibcmerge step
* Adds crossgenonly and partialngen flags to build.sh
These three changes facilitate our ability to apply IBC data to Linux assemblies on Windows and the perform the crossgen step on Linux, which will be our flow for official builds when we want to apply IBC data since IBCMerge cannot run on non-Windows platforms
|
|
* Added `-generatelayout`
* Update build.cmd
Removed stray paranthesis
|
|
This change adds support to consume IBC data packages that are created by the dotnet/optimization repository. With these changes and dotnet/buildtools#2103 to enable IBC optimizations for corefx, we will see a 32% decrease in the size of NetCoreApp (and an overall decrease of 16%), a 30% reduction in ref set, a 5% improvement in time to first request and steady state performance for MusicStore.
Size
Crossgen Partial Partial vs Crossgen (lower is better)
Shared (MB) 185.6 137.3 0.74
Microsoft.NETCore.App (MB) 115.6 67.4 0.58
RefSet
MusicStore
Crossgen Partial Partial vs Crossgen (lower is better)
Total 19.389 13.472 0.69
AllReady
Crossgen Partial Partial vs Crossgen (lower is better)
Total 17.58 12.214
Performance
MusicStore
Crossgen Partial Partial vs Crossgen (lower is better)
Server Start (ms) 870 870.6 1.00
First request (ms) 3532.6 3386.6 0.95
Steady State (ms) 2.926 2.79 0.95
AllReady
Crossgen Partial Partial vs Crossgen (lower is better)
Server Start (ms) 2102 1942.4
First Request (ms) 4263.2 4126
Steady State (ms) 5.69 5.68
TechEmpower Plaintext
Crossgen Partial Partial vs Crossgen (lower is better)
Requests per Second 1928649.8 1893183.8
First Request (ms) 76.14 80.11
Startup (ms) 391 372.8
Working Set (MB) 382.2 373.4
|
|
Various minor cleanups:
1. Use the same naming/style for all three.
2. Make the style consistent throughout each. E.g., consistent indents,
capitalization.
3. Add more consistent output, including the prefix tag used everywhere.
4. build.cmd: only build cross components if native build is enabled.
5. Use new __Logging variable to consolidate all logging arguments,
to reduce large (unexpanded) command line lengths.
|
|
Remove support for specifying the toolset directory for arm64,
which was used to point to an internal toolset.
Building for arm64 now works just like the other platforms, e.g.
invoke `build arm64`.
The requirements:
. Visual Studio 2017 Update 4 or later, with ARM64 toolset installed
. Windows SDK 10.0.17134.0 or later
. CMake 3.10 or later
|
|
unneeded flags
|
|
|
|
|