summaryrefslogtreecommitdiff
path: root/build.cmd
AgeCommit message (Collapse)AuthorFilesLines
2019-03-21Avoid stack walk as specified in the exclusion listAndrew Au1-2/+2
2019-03-06Change IBC data path to match Arcade standard (#23063)Michelle McDaniel1-1/+1
2019-03-04Pass -priority= argument directly to build-test.cmd (#23007)Egor Chesakov1-2/+5
2019-03-01Use arcade's version of dotnet to build (#22755)Steve MacLean1-4/+4
* 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
2019-02-27Change IBC package layout to match what we generate (#22799)Michelle McDaniel1-1/+1
* Change IBC package layout to match what the optimization repo now generates
2019-02-15Manually update the dependencies.props and move S.P.Corelib to use ↵Tanner Gooding1-13/+8
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
2019-02-12Renaming RuntimeEventSource to NativeRuntimeEventSource (#22533)Sung Yoon Whang1-1/+1
* 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...
2019-02-11Support building with VS2019 Preview (#22525)Tanner Gooding1-6/+6
* 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
2019-02-04Configure MSBuild debug path and save any logsBruce Forstall1-3/+8
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.
2019-01-31Add -skipcrossarchnative option to build.cmd (#22091)Bruce Forstall1-6/+12
* Add -skipcrossarchnative option to build.cmd This allows you to skip building the cross-architecture native components. * Add -skipcrossarchnative to build.sh
2019-01-30Remove run.exe and config.json (#21608)Sven Boemer1-17/+52
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.
2019-01-09Change CoreLib native image to be R2R by default on all platforms (#21497)Fadi Hanna1-6/+2
2019-01-08Fix consistency between `-` and prefixless args in build.cmd (#20248)Charles Milette1-0/+2
* Fix consistency between `-` and prefixless args in build.com * Remove -generatelayout Already PR'd by someone else
2018-11-29Fix build parallelism on Windows with NUMA (#21278)Jan Vorlicek1-1/+3
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.
2018-11-16Eliminate CMAKE dependency when not required (#21040)Dan Moseley1-2/+7
2018-10-24Run IBCMerge step for Linux on Windows (#20496)Michelle McDaniel1-94/+100
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
2018-10-11Added `-generatelayout` (#20247)Jurjen Biewenga1-0/+1
* Added `-generatelayout` * Update build.cmd Removed stray paranthesis
2018-08-20Add IBC support (#19046)Michelle McDaniel1-4/+84
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
2018-08-05Clean up build.cmd/build-test.cmd/runtest.cmdBruce Forstall1-78/+93
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.
2018-08-01Enable ARM64 builds using release product toolsBruce Forstall1-61/+6
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
2018-07-09Use BuildManagedTools argument instead of environment variable, removed ↵Amy Yu1-0/+4
unneeded flags
2018-07-09Add R2RDump to build.proj, running dotnet restore before target buildAmy Yu1-12/+13
2018-05-22Remove -Rebuild option from build scripts (#18089)Brian Robbins1-1/+11
2018-05-16Generate EventSources Representing DotNETRuntime Eventing Providers (#18007)Brian Robbins1-4/+14
2018-04-17fix build.cmd generateLayout (#17614)Sergey Andreenko1-1/+1
2018-03-26Merge pull request #17226 from weshaggard/MergeRestoreTargetsWes Haggard1-1/+1
Merge various restore tasks into one Sync target
2018-03-26Work around Jenkins problem with large env varsBruce Forstall1-0/+5
Clear out `ghprbCommentBody` before msbuild is invoked, which can't deal with large environment variables.
2018-03-26Merge various restore tasks into one Sync targetWes Haggard1-1/+1
There were various restore targets happening independently when they should all be combined so the sync step can be independent from the build step. This change merges them together under the Sync target. In particular this moves RestoreOptData and RestoreNETCorePlatforms to be part of the sync step instead of being individually ran. Pass BuildType to sync commands so optdata gets restored correctly
2018-03-23Fix RestoreSources for optdata packagesWes Haggard1-1/+1
Pass unprocessed args to restore optdata step so it can override the sources when doing restore Handle prority as an unprocessed arg for the sync alias
2018-03-16This change make DacTableGen work for VS2017Vance Morrison1-17/+0
There was a issue (see https://github.com/dotnet/coreclr/issues/11305) where a tool used in the CoreCLR build called DacTableGen requires a old version of the msdia120.dll. The symptom is that this tool would fail with a class not registered errror. This tool comes from a very old nuget package microsoft.dotnet.buildtools.coreclr, which we no longer can build easly. Our guidance now is to move tools that are only used in one repository (like this one) out of nuget packages and simply build them as part of the build. This change makes a step in that direction. The DacTableGen code actually was already in the CoreCLR repo, so this change 1. Fixes the source of DacTableGen so that tool no longer needs a com object to be registered (but it DOES need msdia140.dll to be on the path. This is true for VS2017. 2. Turns on the build of DacTableGen 3. Change the build use the built DacTableGen (unless running on VS2017, in that case we use the the version in the tool package. 4.) Remove the hack that warns people to register msdia120 (since you don't need to anymore) There is also an unrelated addition to the docs. This change should still work for VS2015 (because it falls back to the old DacTableGen in that case) Finally we should move to using the Linux method of creating the DAC, and so all these tools and their nuget package can be removed.
2018-03-06Remove vs2015 build dependenciesjashook1-36/+2
2018-02-08Merge pull request #15673 from tannergooding/generatelayout-switchJarret Shook1-0/+19
Updating build.cmd to support 'generatelayout' when 'skiptests' is specified.
2018-01-10Fix incremental build by preventing nonchanging writes (#15817)Victor "Nate" Graf1-1/+1
Fix incremental build by preventing non-changing writes in generated ETW source code
2018-01-03Updating the build script to work when python is installed to a path ↵Tanner Gooding1-6/+6
containing a space. (#15707)
2018-01-02Retry: Enable EventPipe across Unix and Windows (#15611)Victor "Nate" Graf1-9/+61
* Revert "Revert "Enable EventPipe across Unix and Windows (#14772)" (#15609)" This reverts commit 302005ca8ae14eade37ddf4ac6e900617c1c166a. * Fix ARM build break * Use more explicit references to resolve build failures * Fix compat with python3 * Disable FeaturePerfTracing on Windows as it is not ready * Disable test for incomplete functionality * Fix test diabled patterns * Add license header * Use keyword types for managed code * Add message prefix * More precisly condition generation of eventing sources * Remove erroneously added changes
2017-12-30Updating build.cmd to support 'generatelayout' when 'skiptests' is specified.Tanner Gooding1-0/+19
2017-12-21Revert "Enable EventPipe across Unix and Windows (#14772)" (#15609)Victor "Nate" Graf1-43/+9
This reverts commit 7524d72d4f0f634fe5407280b83c25181dc8c556.
2017-12-20Enable EventPipe across Unix and Windows (#14772)Victor "Nate" Graf1-9/+43
* [squashed] most work complete to enable EventPipe on Windows * Eventpipe now builds on Windows * Ensure evevntpipe is intialized on Windows * Resolve the location of python from build.cmd * Ensure eventing files are generated when needed * moving linkage declaration to cmake * create new event from constructor * enable FEATURE_EVENT_TRACE and FEATURE_PERF_TRACE everywhere * [WIP] checkpoint in fixing contarct errors * add another possible python location * Fix double delete bug in EventPipeConfiguration destructor * Fix typo in function name * Revert changes to .gitgnore * bump to netstandard1.6 in preperation for new version of TraceEvent * Revert changes to groovy files * revert changes to perf-prep scripts * add common.h and use nothrow * Fix issue which was causing double delete of configprovider * Add new test utilizing TraceEvent * Remove accidentally added local directory reference * Add comment to explain the addition of misc/tracepointprovider.cpp * Add back sys.exit(0) and refactor * Change conditional to be more direct * Better handle NULL config * Initialize m_deleteDefered * Eliminate obsolete field * Fix spelling error * Fix nits * Make smaple progiler timing functions easier to read * Move projects back to netstandard1.4 * Incomplete improvements to EventPipeTrace test * Add event integrity checks to test * Clean up some left over code * Add EventSource based test * Remove unused PAL tests on Windows * Fix Linux build breaks * Minor changes to CMake files * Remove //HACK for hack that was previously removed * Fix formatting and negate a #ifdef * Add conditional to ensure PERFTRACING is not enabled without EVENT_TRACE * Take lock on EventPipeProvider and EventPipeConfiguration destruction * Load winmm.dll at runtime * Change function name and compile conditions * Move typedef into #ifndef * Use the correct config in setup * Change lifecycle managment of EventPipeConfiguration's configuration provider * Enable EventPipe tests pri0 and disable broken tests * Replace python3 only error with python2 compatable one * Make common.csproj build pri0 * Change TraceEvent version to 2.0.2 to match published verison * Address cross build failure * Remove use of undefined variable * Add crossgen fix to .cmd * Use more specific types to avoid marshalling errors * Use Assert-style statements and remove one check * Fix cross arch build * Fix flipped branch * Bring build.cmd changes to build.sh * Fix cmake writing * Revert "Bring build.cmd changes to build.sh" This reverts commit 893c6492548d8bc9859ebba5b1b810aa630fac63. * remove stdlib.h * Fix out of order null check
2017-12-13Get rid of old -altjitcrossgen argument now that CI has been updatedBruce Forstall1-3/+0
2017-12-12Make RyuJIT/arm32 the default arm32 JITBruce Forstall1-7/+10
RyuJIT/arm32 JIT is now named clrjit.dll (was named protojit.dll). arm32 LEGACY_BACKEND JIT is now named legacyjit.dll (was named clrjit.dll). Ubuntu and Tizen testing now use RyuJIT/arm32. Tests failing for legacy backend are now excluded with `LEGACYJIT_JITSTRESS_FAIL`, `LEGACYJIT_GCSTRESS_FAIL`, and `LEGACYJIT_FAIL`.
2017-11-13Enable RyuJIT/arm32 crossgen compilation of S.P.C.dllBruce Forstall1-6/+22
Currently, an ARM build and CI test run uses the legacy backend arm32 JIT. This change enables a build of RyuJIT/arm32 as a cross-targeting protojit.dll (altjit) in the cross tools (placed next to the x86 hosted crossgen.exe in the build), and uses that RyuJIT/arm32 cross-compiler to build System.Private.CoreLib.dll. The CI system when testing RyuJIT/arm32 will use this to test the crossgen'ed System.Private.CoreLib.dll built by RyuJIT/arm32 for all "arm" architecture jobs.
2017-11-09Fix build break when VS2015 is not installed. (#14948)Vance Morrison1-0/+17
* Fix build break when VS2015 is not installed. If you ONLY install VS2017 (now the common scneario) and build coreclr, it will fail with COM with a Class_Not_Registered error This is because a build-tools package is depending on an old COM object that has gone way in VS2017. While we sort getting a proper fix, this makes the work-around (which is registering the DLL by hand) discoverable. See https://github.com/dotnet/coreclr/issues/11305 for details. * typo
2017-11-04[Infrastructure] Use MSBuild v15 extension point to control CL parallelism, ↵Jacek Blaszczynski1-5/+5
abstract MSBuild /maxcpucount switch (#14578) This commit frees -ExtraParameters and uses MSBuild v15 extension point to control CL compiler parallelism. If MSBuild 15.0 is available - installed with Visual Studio 2017 - CL parallelism control is achieved by using extension point in Microsoft.Common.props file which allows to include Directory.Build.props - for details see [Microsoft.Common.props] [1] file in MSBuild repo. https://github.com/Microsoft/msbuild/blob/b38e4ceeaaec36c5237ae698041e9b9f18c84876/src/Tasks/Microsoft.Common.props#L36. MSBuild parallelism is controled via abstracted /maxcpucount command line switch which now is available as -MSBuildNodeCount pass through run.cmd/run.sh command line argument with default value equal to /maxcpucount (what defaults to number of logical processors). This allows to control MSBuild parallelism on all supported platforms. It is possible to control MSBuild parallelism programatically via MSBuild public API using MaxNodeCount properties available on the following APIs: Microsoft.Build.Evaluation.ProjectCollection.MaxNodeCount Microsoft.Build.Execution.BuildParameters.MaxNodeCount It's use in current build infrastructure would require creating unnecessary complexity and was ruled out.
2017-11-01Fix handling of `-priority=N` argument in build.cmdBruce Forstall1-0/+18
This argument is intended to be passed through directly to msbuild, but CMD doesn't handle `=` well, so using `-priority=N` with `build all` didn't work, for instance. Add special handling for the `-priority` argument to get around this problem.
2017-10-30Pass overridden packages directory to CMakeWes Haggard1-1/+2
2017-10-30Merge pull request #14712 from BruceForstall/VS2017Arm64Bruce Forstall1-6/+12
Allow building arm64 using VS2017 tools
2017-10-27Merge pull request #14515 from 4creators/masterWes Haggard1-17/+20
Fix Windows arm target cross build: detect prerelease VS2017, stay in repo root
2017-10-27[Local GC] Implement loader protocol for a standalone GC (#14663)Sean Gillespie1-16/+1
* First cut of the load protocol * Implement for non-standalone GC * Initial working implementation * First steps towards not using GetProcAddress when not using a standalone GC * Factor out loading routines into standalone and non-standalone cases * Remove the FEATURE_STANDALONE_GC_ONLY build * Code cleanup and comments * Comments for the version numbers * Use more appropriate type for config string * add GC_LOAD_STATUS_BEFORE_START to disambiguate failures before the start of the load and failures at the beginning of the load * FEATURE_STANDALONE_GC on by default * Implement YieldProcessor and MemoryBarrier for arm and arm64 * Remove missed FEATURE_STANDALONE_GC feature check
2017-10-26Allow building arm64 using VS2017 toolsBruce Forstall1-6/+12
VS2017 now includes ARM64 compilers. Change the build scripts so that the normal VC tools path is used for the builds for ARM64. However, if -toolset_dir is passed, then use the specified tools, as before.
2017-10-24Cleanup VsDevCmd.bat usage and improve build system messages to ease diagnosticsJacek Blaszczynski1-17/+17