summaryrefslogtreecommitdiff
path: root/CMakeLists.txt
AgeCommit message (Collapse)AuthorFilesLines
2019-02-03Convert version.cpp to Ckasper31-1/+1
2019-01-31Update python lookup in CMakeLists.txt to match build.(sh|cmd) (#22145)Omair Majid1-1/+1
Use the same logic that's used in build.sh/build.cmd to lookup python: first search for `python3`, then fall back to `python2` and finally to `python`.
2018-08-16Build-test.sh handles native test assets (#19430)Aaron Robinson1-409/+4
* Respect Windows script argument to skip package building. * Bring build.sh logic closer to build.cmd with respect to passing CMAKE flags for building tests * Make cmake gen script find override file without using script arguments * build-test.sh can now build native test projects Remove compileoptions.cmake and push contents into configurecompiler.cmake which contains compiler configuration from repo root CMakeLists.txt
2018-08-01Enable ARM64 builds using release product toolsBruce Forstall1-17/+18
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-12Add prefix to DAC's PAL exports for alpine (#18873)Mike McLaughlin1-0/+1
Added some cmake logic to create assembly include mapping files. One that maps the prefixed name (DAC_foo) to the actual name (foo) which is included in the DAC module and another that maps the actual name to the prefixed name that is included in the SOS, DBI and createdump modules. The data exports like IID_IUnknown are not prefixed and don't need to be (immutable static data). There were some C++ exports functions exported with their decorated names in the CatchHardwareExceptionHolder and NativeExceptionHolderBase classes. Created PAL_* style export functions that implements the code. Fix lldb plugin cmake file to use LLDB_H/LLDB_LIB env vars to build it.
2018-04-23Delete unused variables from CMakeLists.txt (#17743)Jan Kotas1-4/+0
2018-02-08[Unix] Passing extra CMake argsAlexander Soldatov1-0/+12
Added support for compiler and linker additional arguments in CMake. By using CLR_ADDITIONAL_LINKER_FLAGS and CLR_ADDITIONAL_COMPILER_OPTIONS it's possible to pass toolchain options without changing Makefile.
2018-01-26Fix FreeBSD build and update build instructions (#15998)Conrad Meyer1-12/+7
Move test code include in global CMakeLists before PAL runtime includes to avoid conflicts between PAL and system headers. (ForeignThreadExceptionsNative.cpp -> thread -> functional -> memory -> cassert -> pal rt "assert.h".) Drop no longer needed remove_definitions lines -- they're only set by the clrdefinitions.cmake include later in the file. Update build instructions to include needed components (ninja, lttng-ust, python27). Add missing ElfW() definition when libunwind does not define it. FreeBSD alloca() is defined in stdlib.h, so include that instead of alloca.h on FreeBSD.
2018-01-25Fix asan false-positive errors: (#15563)Konstantin Baladurin1-0/+1
- Call __asan_handle_no_return in RtlRestoreContext if it doesn't return and in ThrowExceptionFromContextInternal function; - Increase alternate signal stack size and use it also for asan.
2018-01-02Retry: Enable EventPipe across Unix and Windows (#15611)Victor "Nate" Graf1-0/+1
* 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-21Revert "Enable EventPipe across Unix and Windows (#14772)" (#15609)Victor "Nate" Graf1-1/+0
This reverts commit 7524d72d4f0f634fe5407280b83c25181dc8c556.
2017-12-20Enable EventPipe across Unix and Windows (#14772)Victor "Nate" Graf1-0/+1
* [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-13Add a note the linker bug has been fixedMichal Strehovský1-0/+2
2017-11-09Merge branch 'master' into master-mergeMichal Strehovský1-1/+1
2017-11-04[Infrastructure] Use MSBuild v15 extension point to control CL parallelism, ↵Jacek Blaszczynski1-1/+1
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-02Merge branch 'master' into master-mergeMichal Strehovský1-6/+2
2017-10-30Pass overridden packages directory to CMakeWes Haggard1-1/+1
2017-10-27[Local GC] Implement loader protocol for a standalone GC (#14663)Sean Gillespie1-4/+0
* 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-04Few build changes to support Freebsd (#14121)Tomas Weinfurt1-1/+1
* also look for python27 * add more locations to search for lldb.h so it just work on FreeBSD * add adm64 to ARCH selection. This is mostly cosmetic to avoild warning on FreeBSD * add support for -osgroup=XXX - this is mostly for conistency. -OSGroup=FreeBSD is similar to freebsdmscorlib in build.cmd * fix typo adm->amd * add back fi removed by mistake * add __HostDistroRid for FreeBSD * adress fedback from review: make python lookup consistent - starting with most specific version. uddate warning message about lldb.h and remove composite flag * feedback from review: type and small change on OSGroup syntax * few more minor fixes
2017-09-29Merge branch 'master' into merge_masterDavid Wrighton1-26/+26
2017-09-18Correct reporoot/CMakeList.txt typosJacek Blaszczynski1-26/+26
2017-09-13Merge branch 'master' into update_from_masterDavid Wrighton1-11/+13
2017-09-13Disable PAX mprotect for native executables (#13940)Jan Vorlicek1-0/+5
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-11/+8
* [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-08-15Finalize override lookup algorithm (#12753)Yi Zhang (CLR)1-0/+4
* first cut of multiple candidates * new positive case for diamond shape * Add proper missing implementation detection and positive diamond shape scenario support. Untested * fix bug and get test to pass * Add more diamond shape pos/neg tests * Fix bad I8 * Add GVM tests to diamond shape * GVM working * Change test case to better match diamondshape scenario * Fix MethodImpl::Iterator::GetMethodDesc and optimize no-method impl scenario * Update methodimpl test to include multiple slots and fix a bug * Temporarily disable incremental build in this branch * Update methodimpl to include multiple methodipml overriding scenario. This is triggering some bugs and need to investigate * Fix a buffer overrrun bug with interface methodimpl * Update after self-review * Add proper methodImpl validation for methods * Address feedback. Refactoring pending
2017-07-17Updates the explicit location for armasmjashoo1-3/+7
2017-06-08Fix linker GUARD option (#11492)Jan Vorlicek1-2/+2
I have found that the /GUARD:CF option set in the root CMakeFiles.txt was not being propagated to the Visual C++ project files generated by cmake because of a wrong casing. The CMakeFiles.txt used /guard:cf but it works correctly only if it is all upper case.
2017-06-06Rename CMAKE_ENABLE_CODE_COVERAGE to CLR_CMAKE_ENABLE_CODE_COVERAGE (#12106)Omair Majid1-1/+1
2017-06-02Add support for not breaking *nix build on warnings (#12039)Omair Majid1-0/+1
Add a build flag to make -Werror optional and let the build continue even in the presence of warnings. This option is very useful for anyone compiling with a different (version of the) compiler. A different (version of the) compiler may produce a different set of warnings and a piece of code that compiles without warnings may emit warnings with a different (version of the) compiler. Resolves https://github.com/dotnet/coreclr/issues/8586
2017-06-01[Local GC] Scaffolding for loading a standalone GC (#11242)Sean Gillespie1-0/+4
* Configure the build system to build a CoreCLR capable of loading a standalone GC * Proto-implementation of dynamic GC loading * Build the GC with the VM's CMakeLists when doing a non-standalone build of the GC * [Local GC] Introduce a new feature define, FEATURE_STANDALONE_GC_ONLY, to be used by the CI to explicitly test local GC dynamic loading code paths * Fix the FEATURE_STANDALONE_GC_ONLY build for unix linkers * Rebase against master * Code review feedback: use the existing Unix exports file
2017-04-18Remove /RELEASE option required for device drivers (#11023)Gaurav Khanna1-1/+0
2017-04-13Reenable incremental linking (#10943)Gaurav Khanna1-5/+0
2017-04-13[ARM32/Linux] Build libcoreclrtraceptprovider.so (#10406)Hyeongseok Oh1-1/+5
* Build libcoreclrtraceptprovider.so for ARM32 and modify cmake - Build libcoreclrtraceptprovider.so for ARM32 - Include libcoreclrtraceptprovider.so in nuget package - Don't build libcoreclrtraceptprovider.so for Tizen: lttng is not supported in Tizen - Exclude packaging libcoreclrtraceptprovider.so based on os-name excluded for tizen * Remove libcoreclrtraceptprovider.so before test for ARM32/Linux Remove libcoreclrtraceptprovider.so before test for ARM32/Linux in CI CI test environment using docker with qemu has some problem to use lttng library
2017-04-13Create ELF core dump on coreclr exceptions and signals. (#10902)Mike McLaughlin1-0/+3
* Create ELF core dump on coreclr exceptions and signals. When coreclr aborts because of a unhandled managed exception or hardware signal, the "createdump" utility is launched if the "COMPlus_DbgEnableMiniDump" environment variable is set to "1". This utility uses the DAC enumerate memory interface to determine what memory regions should be written for the managed state plus all the normal Linux memory regions for the native state like threads, stacks, DSO, etc. There still needs some to configure some of the "policies" like the name/location of the core dump and the type of minidump (MiniDumpNormal, MiniDumpWithFullAuxiliaryState, MiniDumpWithPrivateReadWriteMemory, etc.). Currently only supported on Ubuntu Linux. Make createdump smaller by using PAL in DAC module.
2017-04-04Fix Alpine build break in pipelinewtgodbe1-1/+1
2017-04-04Pass crossbuild and linux-id to CMakeLists.txt using CMake arguments (#10686)Hyeongseok Oh1-10/+7
Remove in CMakeLists.txt 1) read cross-build from environment variable 2) read linux-id from file system Instead, pass cross-build and linux-id from gen-buildsys-clang.sh using cmake arguments
2017-03-29Add PGO support for Clang/LLVM on Unix (#10533)Daniel Podder1-0/+3
Extend PGO support from VC++ on WIN32 to Clang/LLVM on UNIX as well. * Just like on Windows: if profile data is missing, skip enabling PGO (allows non-PGO builds in branches where we don't publish PGO data). * PGO with LTO requires additional dependencies (namely a discoverable `ld.gold` and `LLVMgold.so`). To protect against broken support and keep the build flexible across a wider array of distros, attempt to detect whether PGO compilation would work (using cmake's `try_compile()`), and fall back to a non-PGO/non-LTO build if the test fails.
2017-03-29Fix dependency to coreclr and mscorrc in Linux (#10138)Hyeongseok Oh1-1/+1
* Fix dependency to coreclr and mscorrc in Linux Remove dependency with coreclr in some projects for Linux Recover build mscorrc for cross architecture in Linux * Fix CMakeLists.txt in src/dlls minimize uses of CLR_CROSS_COMPONENTS_BUILD flag in CMakeLists.txt Modify root/CMakeLists.txt to exclude corerun and coreconsole build during cross component build
2017-03-13Build Linux altjit for x86 and amd64 (#10120)Bruce Forstall1-5/+0
Enable Windows hosted, Linux target amd64 altjit With this change, we build a JIT that runs on Windows amd64 and targets Linux amd64, as an altjit named linuxnonjit.dll. This is useful for debugging, or generating asm code or diffs. You can even easily create Windows/non-Windows asm diffs (either to compare the asm, or compare the generated code size). For this to work, the JIT-EE interface method getSystemVAmd64PassStructInRegisterDescriptor() was changed to always be built in, by defining `FEATURE_UNIX_AMD64_STRUCT_PASSING_ITF` in all AMD64 builds. The `_ITF` suffix indicates that this is functionality specific to implementing the JIT-EE interface contract. There were many places in the VM that used this interchangeably with `FEATURE_UNIX_AMD64_STRUCT_PASSING`. Now, `FEATURE_UNIX_AMD64_STRUCT_PASSING` means code in the VM needed to implement this feature, but not required to implement the JIT-EE interface contract. In particular, MethodTables compute and cache the "eightbyte" info of structs when loading a type. This is not done when only `FEATURE_UNIX_AMD64_STRUCT_PASSING_ITF` is set, to avoid altering MethodTable behavior on non-Unix AMD64 builds. Instead, if `getSystemVAmd64PassStructInRegisterDescriptor()` is called on a non-Unix build (by the altjit), the `ClassifyEightBytes()` function is called, and nothing is cached. Hopefully (though it was hard for me to guarantee by observation), calling `ClassifyEightBytes()` does not have any side effects on MethodTables. It doesn't really matter, since if called for altjit, we don't care too much about running. The previously used `PLATFORM_UNIX` define is now insufficient. I introduced the `#define` macros `_HOST_UNIX_` to indicate the JIT being built will run on Unix, and `_TARGET_UNIX_` to indicate the JIT is generating code targeting Unix. Some things were converted to use the `UNIX_AMD64_ABI` define, which makes more sense.
2017-03-07Add scripts for building for arm Android (#9961)Frederik Carlier1-1/+3
* Add scripts for building for arm Android * Use arm soft float for bringup * Use NDK r14 * Set HAVE_PT_REGS to false, as they are not available on Android * _aligned_alloc is not available on clang * Detect Visual C++ instead of clang * Detect Android instead of clang
2017-02-17Synchronous toolchain.cmake files with CoreFX (#9409)Jiyoung Giuliana Yun1-1/+1
Signed-off-by: Jiyoung Yun <jy910.yun@samsung.com>
2017-02-09[ARM32/Linux] Fix definition and CMake for cross-architecture build (#9262)Hyeongseok Oh1-2/+2
- Fix ABI flag based on target - Exclude corefx for cross-architecture component
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
2017-01-23[Local GC] Provide an implementation of GCToOSInterface for Unix-like ↵Sean Gillespie1-0/+8
platforms (#8976) * Add way to build with FEATURE_STANDALONE_GC from build.sh * Make CMake changes to build the GC 'PAL' as its own build target (to avoid -nostdinc). In addition, introduce a "GC PAL" that provides an implementation of GCToOSInterface on Unix-like platforms, for use with FEATURE_STANDALONE_GC.
2016-12-23[Linux] Fix cross-architecture component build configuration for ↵Hyeongseok Oh1-6/+4
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-18Fixing up the arm subsystem versions (#8676)Peter Marcu1-3/+6
* Adding arm64 and updating default subsystems
2016-12-16Fix buildsystem for linux cross-architecture component build (#8646)Hyeongseok Oh1-38/+53
* Fix buildsystem for linux cross-architecture component build * refactoring build.sh, bug fix and typo fix * Update build.sh
2016-11-22[x86/Linux] fix and add for x86 cmake configuration (#8219)SaeHie Park1-0/+10
This patch will add x86 part for cross build - add x86 in build-rootfs and related cross files - add x86 parts in CMakeLists.txt to pass configuration - add required source files to pass configuration
2016-11-19Fixing arm subsystem version (#8211)Peter Marcu1-1/+6
2016-10-24Add CFG flag to ARM64 buildIan Hays1-4/+2