summaryrefslogtreecommitdiff
path: root/src/CMakeLists.txt
AgeCommit message (Collapse)AuthorFilesLines
2019-09-24[Tizen] Add a library to retrieve memory regions for a coredumpMateusz Moscicki1-2/+2
This is needed to save a minicoredump of .NET applications to allows reconstruct managed stack by lldb and SOS plugin.
2019-06-21Fixed mis-matching arguments in src/CMakeLists.txt (#25307)Ao Qi1-1/+1
2019-06-20Remove SOS and lldb plugin (#25220)Mike McLaughlin1-2/+0
* Remove SOS and lldb plugin Issue: https://github.com/dotnet/coreclr/issues/24092
2019-06-17Enable createdump on arm and arm64 (#24832)Juan Hoyos1-4/+2
* Enable build of ARM64 createdump build - Adds definitions of necessary constructs and aligments for Elf formats in aarch64 - Work around changes in ptrace for aarch64 * Package createdump in runtime transport for arm and arm64 * Use special name register definitions from the PAL * Add createdump_lib to arm64 sos and package plugin
2018-07-31Delete FEATURE_IPCMAN (#19212)Jan Kotas1-4/+0
2018-01-02Retry: Enable EventPipe across Unix and Windows (#15611)Victor "Nate" Graf1-63/+3
* 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-3/+63
This reverts commit 7524d72d4f0f634fe5407280b83c25181dc8c556.
2017-12-20Enable EventPipe across Unix and Windows (#14772)Victor "Nate" Graf1-63/+3
* [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-09-13Fix setting PAX options for crossgen (#13950)Jan Vorlicek1-26/+0
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-08-22[Local GC] Enable building the GC as a shared library (#13137)Sean Gillespie1-3/+0
* [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-07-17Make createdump build and work on ARM (#12798)Konstantin Baladurin1-2/+2
2017-06-02Fix typo in CRL_CMAKE_WARNINGS_ARE_ERRORSOmair Majid1-1/+1
2017-06-02Add support for not breaking *nix build on warnings (#12039)Omair Majid1-1/+7
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-1/+3
* 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-27Remove support for the x86 compat JIT from .NET Core.Pat Gavlin1-5/+0
These changes remove support for the x86 compat JIT from the build, the runtime, and the various perf/test scripts. Fixes #10733, #10734.
2017-04-15Make createdump build and work on Centos (#10985)Mike McLaughlin1-2/+2
2017-04-13Create ELF core dump on coreclr exceptions and signals. (#10902)Mike McLaughlin1-0/+6
* 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.
2016-06-23Build the GC as part of its own CMake target (#5932)Sean Gillespie1-0/+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/+8
Currently only enabled for arm64
2016-04-14Make it possible to build JIT32 in the OSS tree.Pat Gavlin1-0/+5
This change adds a new argument to build.cmd, buildjit32, that configures the build to build and link JIT32 instead of RyuJIT if the sources are available in `src/jit32`.
2016-02-14Fix build issue on NetBSD: Remove unneeded -nostdinc++ flagKamil Rytarowski1-5/+0
This flag isn't recognized by clang on NetBSD: clang-3.9: warning: argument unused during compilation: '-nostdinc++' $ pkg_info |grep -E 'lldb|llvm|clang' llvm-3.9.0nb20160213 Low Level Virtual Machine compiler infrastructure clang-3.9.0nb20160213 C language family frontend for LLVM lldb-3.9.0nb20160213 next generation, high-performance debugger $ uname -a NetBSD chieftec 7.99.26 NetBSD 7.99.26 (GENERIC) #0: Wed Feb 10 21:58:18 UTC 2016 root@chieftec:/tmp/netbsd-tmp/sys/arch/amd64/compile/GENERIC amd64 This flag was disabled also for Darwin in #125 by @jkotas
2016-01-21Generating Event Logging Headers From CMake for LinuxDDCloud1-16/+50
Conflicts: build.sh
2016-01-21FIx the incremental build for WindowsJan Vorlicek1-1/+36
Conflicts: build.cmd src/dlls/clretwrc/CMakeLists.txt Cleanup
2016-01-10Use ARCH_SOURCES_DIR consistentlyMike Danes1-13/+1
Some places already use ARCH_SOURCES_DIR for things like include_directories but others test the platform/arch variables to figure out the dir. Use ARCH_SOURCES_DIR everywhere for consistency.
2015-12-28Automating Event Logging Infrastructure: With this change the infrastructure ↵Rama1-0/+1
required for Event Logging will be generated as part of build
2015-12-11Enable ILASM for *nixKyungwoo Lee1-1/+1
This enables ILASM for x-platforms. 1. Added a bunch of warning disable options mostly due to this prebuilt asmparse.cpp 2. Create a separte entry point "main" to pass WCHAR arguments. 3. PDB (CorSymWriter) part is disabled. 4. Converting/embedding resource file to binary is disabled. 5. jkotas kindly provided a code for IsTextUnicode which is unavailable on CoreCLR.
2015-12-09Enable ILASM for WindowsKyungwoo Lee1-0/+1
This enables ILASM/mscorpe on CoreCLR for Windows. 1. Fusion/StrongName(Full Sign) dependencies are removed since these are not CoreCLR features. 2. mscorpe is statically built/linked to ilasm. 3. asmparse.c is auto-generated by an internal version of yacc so I added it under prebuilt directory for now. Will create an issue so that we can build it using a standard tool like bison.
2015-12-03Refactoring resource stringKyungwoo Lee1-0/+34
This pulls out resource string handling out of mscorrc into top level. The scripts (awk) are now parameterized to generate a unique string table for the given name. Added resourcestring.cpp to create an API "LoadResourceString". Added a few macros into resourcestring.h, which are used for definition/uses of the string table.
2015-11-25Enable ILDASM for WindowsKyungwoo Lee1-0/+1
This enables building ILDASM with Cmake for Windows. This ILDASM now depends on CoreCLR targeting cross-platform and thus I dropped some features like GUI/PDB -- default output is console. Metadata related APIs in CoreCLR are directly exported, and used in ILDASM: MetaDataGetDispenser GetMetaDataInternalInterface GetMetaDataInternalInterfaceFromPublic GetMetaDataPublicInterfaceFromInternal The code path is diverged by a definition FEATURE_CORECLR. There are still Window specific components. Among others, resource file/dll generation is the one that should be ported.
2015-08-22Enable gcroot and other gc related sos commands.Mike McLaughlin1-1/+5
The "gcroot" command currently doesn't work with lldb 3.6 (our default package), but works fine with lldb 3.7.0. lldb 3.6 terminates with (lldb) sos GCRoot 00007fffcc004ce8 *** Error in `lldb-3.6': munmap_chunk(): invalid pointer: 0x000000000184cde8 *** PAL_STDCPP_COMPAT is the define that the VS team added to allow the xplat headers to be used. This is neccessary for the whole SOS directory now because gcroot and other gc commands need unorderd_map, unorderd_set, etc. from the stdlib. Had to change all wchar_t to WCHAR because the xplat stdlib default is UTF32. Had to rename and provide macros that conflict with the stdlib: wcslen -> _wcslen wcsncmp -> _wcsncmp wcsrchr -> _wcsrchr wcscmp -> _wcscmp wcschr -> _wcschr wcscspn -> _wcscspn wcscat -> _wcscat __in -> ___in __out -> ___out max(a, b) -> _max(a, b) min(a, b) -> _min(a, b) Had to ifdef PAL_STDCPP_COMPAT a lot more of pal.h, palrt.h and some other header files. Changed a bunch of L"" to W("").
2015-08-04Enable the Windows x86 buildMike Danes1-1/+3
This allows building the Windows x86 version of CoreCLR by using "x86" for the BuildArch parameter of build.cmd. Note that CMAKE_SYSTEM_PROCESSOR is no longer used in Windows builds to set IS_64BIT_BUILD. This change is enough to get CoreCLR to build but more changes are required for it to actually run correctly. In particular, the JIT compiler support for x86 is pretty limited at this point.
2015-07-27[aarch64] Initial aarch64/linux bring upGeoff Norton1-1/+3
2015-07-24Add ARM target for CoreCLR on Linux.Ben Pye1-1/+8
c_runtime/vprintf/test1 is disabled as casting NULL to va_list is against the C specification. Fix SetFilePointer tests on 32 bit platforms. Define _FILE_OFFSET_BITS=64 so that we have long file support on 32 bit platforms. Implement context capture/restore for ARM. Link libgcc_s before libunwind on ARM so C++ exceptions work. Translate armasm to gas syntax. Specify Thumb, VFPv3, ARMv7 for the ARM target. Add ARM configuration to mscorlib build Implement GetLogicalProcessorCacheSizeFromOS in PAL. Set UNWIND_CONTEXT_IS_UCONTEXT_T from configure check.
2015-04-28Build crossgen for LinuxJohn Chen (JOCHEN7)1-1/+1
- Crossgen is now built as part of coreclr - Crossgen successfully compiles mscorlib.dll - Resulting mscorlib.ni.dll not yet usable
2015-02-23Merge remote-tracking branch 'upstream/master' into soscommand1Mike McLaughlin1-11/+8
2015-02-20Reimplement native exception handling for PALJan Vorlicek1-11/+8
This change removes the preexisting exception handling in PAL that was simulating Windows SEH using a lot of low level machinery. The only remaining part is the code that raises the exception and that extracts the exception context information. The PAL_TRY, PAL_EXCEPT, PAL_FINALLY, ... macros are reimplemented using plain C++ exception handling.
2015-02-12These changes are the beginning of the SOS for coreclr under lldb. It isn't ↵mikem83611-1/+1
finished or working yet. The sos plug in is broken into two modules: 1) The lldb plugin (sosplugin) module that is built with the lldb h and lib files. This module dynamically loads the sos module and finds the subcommand argument as a symbol export like windbg does for it's extensions. So "sos IP2MD 0x100000" loads sos, finds the export "IP2MD" and calls it with the rest of the command and a "IDebugClient" instance. This instance is a small subset of the the various dbgeng's API's implemented under lldb without any COM to keep things simple. OPEN ISSUE: This module's build depends on the lldb API includes and the lldb library. Need to figure out the best way to deal with the dependency on the lldb source. 2) The sos module (sos) module that is the strike source built under linux. Currently only the IP2MD command is built and the support/utility functions it needs. It dynamically loads the DAC (libmscordaccore.so) and queries the IXCLRDataProcess interface via the DAC's CLRDataCreateInstance export. OPEN ISSUE: Where and how to search for the sos/dac modules. Currently have a hard coded path to the binaries. It probably should be the directory the plug in (sosplugin) is loaded.
2015-02-07Remove excess arguments to endfunction() and else()Ben Boeckel1-1/+1
Arguments to else() are always confusing and endfunction only needs to match the first argument.
2015-02-06-nostdinc++ is not recognized by apple clang, but its also not neededGeoff Norton1-2/+6
2015-02-06Fix several warnings in Linux buildJan Vorlicek1-2/+4
1) Usage of partially uninitialized variable when the compiler didn't know the condition is always true. This condition was calling a VolatileRead and only the VolatileRead actually matters so that right PDB annotation is generated and not optimized out in debug optimized builds. So I've removed the if. 2) Usage of nostdinc++ option as a general option - it complained when building C files 3) Usage of an unknown warning disabling compiler option with clang 3.5. The option was needed for clang 3.5.1 and later. 4) Usage of partially uninitialized variable in daccess.cpp - there is a code path that the compiler can see that doesn't initialize the status variable. 5) Empty body of a for loop warning in one or two PAL tests. [tfs-changeset: 1411579]
2015-02-03Move the windows unwinder code out of the debug folder.Jan Vorlicek1-0/+1
It is a preparation for using the DAC unwinder code as an unwinder for the jitted code on Linux, because the jitter generates windows style unwind info. The unwinder is build as a static library and linked to mscordac. [tfs-changeset: 1409640]
2015-01-30Initial commit to populate CoreCLR repo dotnet-bot1-0/+42
[tfs-changeset: 1407945]