summaryrefslogtreecommitdiff
path: root/functions.cmake
AgeCommit message (Collapse)AuthorFilesLines
2017-11-04[Infrastructure] Use MSBuild v15 extension point to control CL parallelism, ↵Jacek Blaszczynski1-1/+0
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-09-13Fix setting PAX options for crossgen (#13950)Jan Vorlicek1-2/+2
In my previous PR that added marking executables with paxctl, I've made a mistake in the order of calling _add_library and add_dependencies. But that was hidden due to the fact that we have yet another copy of the add_library_clr and add_executable_clr functions in src/CMakeLists.txt. I have no idea how that happened. This one has overriden the other, which has hidden the problem, but also caused the crossgen to not to be modified by the paxctl. So I am fixing the order and removing the extra definitions of those functions.
2017-09-13Disable PAX mprotect for native executables (#13940)Jan Vorlicek1-18/+21
This change adds marking native executables that coreclr build produces (corerun, coreconsole, crossgen, ilasm, ildasm, crashdump) to using the paxctl tool to allow them running on systems with PAX configured so that creating executable memory mappings by applications is prohibited.
2017-08-22[Local GC] Enable building the GC as a shared library (#13137)Sean Gillespie1-0/+27
* [Local GC] Build the GC using system headers * Disable features to get the GC to build * Get rid of the separate 'GC PAL' build * Remove unused stuff * Don't build gcenv.os.cpp when linking in a standalone gc * Stub out CPUGroupInfo and NumaNodeInfo * Stub out IsGCThread and friends * Build the GC as a shared library :tada: * Build, link, and run! :tada: * Fix standalone GC build break * Fixes where the GC's MethodTable and VM's MethodTable classes disagree * Integrate a standalone GC into the CoreCLR build system (so it gets copied to the output folder). Re-enable some ifdef-ed out includes that are required for a non-standalone build of the GC. * Bring changes to Unix and fix the Unix build. Implement some compiler intrinsic wrappers and alignment functions expected by the GC. * Fix the Windows build * 1. Code review feedback: use standard types for BitScanForward and BitScanForward64 2. Delete FEATURE_COM stuff from the build system, not needed for this PR 3. Fix the Unix build * Fix the Windows x86 build - the _BitScanForward64 intrinsic is not available when targeting 32-bit platforms * Remove a number of things from gcenv.base.h that are not used * Remove a linker workaround now that we are not linking a standalone GC into the runtime * Remove dead code, make the lack of GC_PROFILING for standalone gc not break profiling on the non-standalone build * Code review feedback - use add_library_clr and other cmake-related fixes * Fix include indentation * Remove some extraneous parameters to cmake functions (cmake is remarkably lenient...)
2017-06-01gdbjit symbols exported (#11739)chunseoklee1-3/+6
* multiple export files as input for generate_exports_file Now, generate_exports_file is able to process multiple input arguments. This feature is useful when you want to export additional symbols depending on compile time dependannt feature(-D option.) * export file for gdbjit added src/dlls/mscoree/gdbjit_unixexports.src file added To enable gdbjit feature, libcoreclr.so should have __jit_xxx symbols. Current tizen build system removes .symtab section during rpm debuginfo build. This patch moves __jit_xx symbols into .dynsym section.
2017-03-06Add stripSymbols argument; refactor symbol package build (#9664)Davis Goodin1-2/+2
* Add argument to explicitly enable symbol stripping * Refactor symbol package build * Remove unnecessary native file distinctions * Remove unnecessary WindowsSymbolFile step
2017-01-31Support cross-building CoreCLR for arm64 Android (#9173)Frederik Carlier1-1/+1
* Support cross-building CoreCLR for arm64 Android * Link gcc_s before libunwind
2016-12-23[Linux] Fix cross-architecture component build configuration for ↵Hyeongseok Oh1-1/+1
ARM32-target (#8687) * fix CMakeLists.txt for palrt * Modify CMakeLists.txt for cross-architecture component configuaration Add coreclrpal project to fix a dependency issue when CMake configuration * Allow only x64-host/arm-target for linux allow x64-host/arm-target only, because pal is not stable for x86 now * Update build.sh delete NumProc=1 (inserted for debugging) * Change x64-host to x86-host for arm-target JIT correctness problem, and fix CMake configuration for x86 in pal * Fix type * Update CMakeLists.txt * fix style * Set x86 when arm-target/x64-host * fix typo
2016-12-16Fix buildsystem for linux cross-architecture component build (#8646)Hyeongseok Oh1-0/+2
* Fix buildsystem for linux cross-architecture component build * refactoring build.sh, bug fix and typo fix * Update build.sh
2016-11-29Fix shared library dependencies verification on some platforms (#8349)Jan Vorlicek1-0/+16
The existing way of verifying shared library dependencies, used for System.Globalization.Native.so, doesn't work on platforms that don't have ldd or where ldd doesn't support the `-r` option. This change makes the check happen on non-Alpine Linux only for now. It also refactors the way the check is performed. Instead of doing it post build in the build.sh, it is now performed as a postbuild phase of the System.Globalization.Native target and it is also generalized so that we can easily add such verification to other build targets. The new verify-so.sh script is also used in corefx.
2016-10-04Add PGO GENPROFILE support to coreclr and clrjit (#7423)Daniel Podder1-0/+5
* Add PGO GENPROFILE support to coreclr and clrjit Update the cmake build system to enable support for Profile Guided Optimization (PGO) on Windows, and enable this feature for two target binaries (coreclr and clrjit). With this change, toggle between instrumented and profile-optimized settings for target binaries by passing pgoinstrument argument to the build.cmd Assume profile-optimized mode by default. Fall back to regular non-PGO optimized builds if profile data is not available.
2016-08-23Initial commit to build Win32 Arm CoreCLRGaurav Khanna1-3/+28
2016-07-25Arm64: DebuggerRama Krishnan Raghupathy1-3/+3
Instruction emulation for Break Points Debugger::FuncEvalSetup NativeWalker ExceptionHijack Exception intercept Managed Return Value
2016-06-28Fix platform logic in symbol stripping code.Aditya Mandaleeka1-6/+6
2016-06-07Strip debugging symbol table entries on OS X Release builds.Aditya Mandaleeka1-1/+1
2016-04-21Adding Versioning to Native components in non-Windows builds. (#4393)Jose Perez Rodriguez1-2/+10
Adding Versioning to Native components in non-Windows builds.
2016-04-18enable build of cross target components.Rahul Kumar1-0/+180
Currently only enabled for arm64