summaryrefslogtreecommitdiff
path: root/clrdefinitions.cmake
AgeCommit message (Collapse)AuthorFilesLines
2019-03-28Enable CLR write watch for ARM64 Windows.Aditya Mandaleeka1-2/+2
2019-03-18Add Utf8String skeleton (#23209)Levi Broderick1-0/+1
Utf8String is an experimental type that is string-like (heap-allocated, immutable, variable-length, null-terminated) but whose inner representation is UTF-8, not UTF-16. This is a skeleton implementation of the basic API shape. The ecosystem of APIs has not yet been built around it. All Utf8String-related code is currently surrounded by ifdefs to allow easy identification and removal from release branches.
2019-03-13Enable FeatureDefaultInterfaces unconditionally (#23225)Michal Strehovský1-1/+2
Fixes #22940.
2019-02-22Enable FEATURE_BASICFREEZE (#22776)Mukul Sabharwal1-0/+1
2019-02-21Delete unused FEATURE flags (#22781)Jan Kotas1-3/+0
2019-01-03Adds portable version of EncodingTable (#21735)Marek Safar1-3/+0
* Adds portable version of EncodingTable Most of the implementation is extracted from CoreRT * Use string comparer directly * Remove no longer used COMNlsInfo * Adds localization support * Removes FeatureCoreFxGlobalization configuration * Remove redudant encodings look up from GetEncoding * Keep Hashtable for nameToCodePage as it does not lock on read * Replace locked dictionary lookup with short switch * Include comment with msbuild task link used to generate the data file
2018-12-26desktop port (#21523)Maoni Stephens1-4/+0
+alloc lock split into SOH and LOH +provisional mode to fix too many gen2 GCs triggered in low mem situation when the heap has heavy pinning fragmentation +better free list usage +premature OOM fixes +3 new configs: GCHeapAffinitizeMask, GCHighMemPercent, GCLOHThreshold (will be documented) YieldProcessor scaling factor is different on core due to the different implementation on core.
2018-12-20Freebsd symbols3 (#21607)Tomas Weinfurt1-2/+2
* enable symbols on freebsd once again
2018-12-02Revert [publish symbols on FreeBSD (#21179)] (#21329)Russ Keldorph1-2/+2
This reverts commit 6120021023647ff881d791a033dba38a94fd1c2c.
2018-11-29Enable type equivalence (#21265)Aaron Robinson1-0/+3
* Enable TypeEquivalence feature for Windows platform * Basic test - verified test exercises TypeEquivalence code paths
2018-11-29publish symbols on FreeBSD (#21179)Tomas Weinfurt1-2/+2
* enable build-id on FreeBSD * start publishing symbols for freebsd * enable FEATURE_PERFMAP on FreeBSD
2018-11-28Delete code related to LoaderOptimization and SharedDomain (#21031)Jan Kotas1-3/+2
2018-11-06FEATURE_DATABREAKPOINTAndrew Au1-0/+6
2018-07-22Enable profiler attach on Windows (#18762)Sung Yoon Whang1-0/+4
* try building clr with prof attach enabled * define ICLRProfiling interface * profattach.dll now builds with CreateCLRProfiling export * remove try catch * basic attach working now * build with profiler attach feature only on win * Fix linux build * cleanup * more cleanup * more cleanup * remove profattach dll * remove useless unix exports in mscorwks * remove profattach from dll cmakelist * Add back ifdef * cleanup * change LINUX to UNIX in clrdefinitions * Fix broken checked builds * Remove CLRProfilingClassFactory and metadata.h include from profattach.cpp * remove useless extern C * Add this back in * adding ifndef DACCESS_COMPILE * Try building with FWD define ICLRProfiling interface * Test commit - removing additional definition from metahost.h to see if this will pass CI runs * Address pr comments
2018-06-29Remove relocations for vtable chunks (#17147)Gleb Balykov1-0/+3
* Separate sections READONLY_VCHUNKS and READONLY_DICTIONARY * Remove relocations for second-level indirection of Vtable in case FEATURE_NGEN_RELOCS_OPTIMIZATIONS is enabled. Introduce FEATURE_NGEN_RELOCS_OPTIMIZATIONS, under which NGEN specific relocations optimizations are enabled * Replace push/pop of R11 in stubs with - str/ldr of R4 in space reserved in epilog for non-tail calls - usage of R4 with hybrid-tail calls (same as for EmitShuffleThunk) * Replace push/pop of R11 for function epilog with usage of LR as helper register right before its restore from stack
2018-05-24[Arm64] debugging work (#17993)David Wrighton1-2/+2
* Fix missing implementation of FuncEvalFrame::UpdateRegDisplay for ARM64 - Implementation is missing. Build new one based ARM implementation * Enable just my code on arm64 * Fix logging of addresses for DispatchPatchOrSingleStep * arm64 does not leave the PC at the start of the breakpoint * Enable interop debugging * Tweaks for windows arm64 mixed mode debugging support
2018-04-18Remove incorrect UNIX_AMD64_ABI defineCarol Eidt1-1/+0
2018-04-17Unix/x64 ABI cleanupCarol Eidt1-2/+3
Eliminate `FEATURE_UNIX_AMD64_STRUCT_PASSING` and replace it with `UNIX_AMD64_ABI` when used alone. Both are currently defined; it is highly unlikely the latter will work alone; and it significantly clutters up the code, especially the JIT. Also, fix the altjit support (now `UNIX_AMD64_ABI_ITF`) to *not* call `ClassifyEightBytes` if the struct is too large. Otherwise it asserts.
2018-03-15Define FEATURE_UNIX_AMD64_STRUCT_PASSING only when target Unix/AMD64Egor Chesakov1-1/+3
2018-02-28Merge pull request #16531 from echesakovMSFT/MakeTarget64BitMacroGlobalEgor Chesakov1-0/+2
Make _TARGET_64BIT_ macro global to coreclr
2018-02-23Enabling CLR implemented write watch on AMD64 on Windows. (#16516)Maoni Stephens1-1/+4
2018-02-23Add definition _TARGET_64BIT_ in clrdefinitions.cmakeEgor Chesakov1-0/+2
2018-01-02Retry: Enable EventPipe across Unix and Windows (#15611)Victor "Nate" Graf1-3/+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/+3
This reverts commit 7524d72d4f0f634fe5407280b83c25181dc8c556.
2017-12-20Enable EventPipe across Unix and Windows (#14772)Victor "Nate" Graf1-3/+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-05Put default interfaces behind a define (#15358)Michal Strehovský1-0/+9
This is needed so that we can turn default interfaces off in release branches. I can't find a central location where the PRERELEASE flag could be defined because native and managed builds seem to be completely disconnected. To limit the risk of only flipping the flag in one build type, I'm adding a test that verifies being able to load an interface with default methods matches what RuntimeFeature says.
2017-11-17Enable FEATURE_DATATARGET4 for Unix Arm builds (#15060)Chris Sienkiewicz1-0/+1
2017-10-11Delete !FEATURE_IMPLICIT_TLS (#14398)Jan Kotas1-4/+0
Linux and Windows arm64 are using the regular C/C++ thread local statics. This change unifies the remaining Windows architectures to be on the same plan.
2017-09-13Introduce FEATURE_GDBJIT_SYMTAB (#13567)Konstantin Baladurin1-0/+3
* Introduce FEATURE_GDBJIT_SYMTAB This commit adds new feature FEATURE_GDBJIT_SYMTAB. When it's set ELF file with symtab section will be generated for all JITed methods. It helps lldb and gdb correctly unwind frames of JITed methods as they can use assembly language inspection to determine location of saved registers on stack. * gdbjit symtab feature: use different symbols for each function in JITed code
2017-09-12[GDBJIT] Specify C# language in DWARF debug information (#13720)Konstantin Baladurin1-0/+3
* [GDBJIT] Specify C# language in DWARF debug information To correctly support C# language in lldb DWARF debug information should contain correct information about language. Now we use 0x9e57 constant for specify C# language. * [GDBJIT] Introduce FEATURE_GDBJIT_LANGID_CS If this feature is set gdbjit will use 0x9e57 as c# lang id, otherwise it will use DW_LANG_C89.
2017-08-27Remove always defined FEATURE_RANDOMIZE_STRING_HASHING define (#13491)Dan Moseley1-1/+0
* Remove always defined FEATURE_RANDOMIZE_STRING_HASHING * Fully remove randomized hashing * Leftovers * Remove additionalEntropy from HashSortKey as it was always 0 * Remove additionalEntropy from HashString as it was always 0 * Change to private, as not in fact called by reflection in .NET Core * Fix build break due to FCDECLn * Revert removed QCALL * Remove unused strlen parameter
2017-08-22[Local GC] Enable building the GC as a shared library (#13137)Sean Gillespie1-1/+3
* [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-18Introduce COMPlus_GDBJitElfDump (#13448)Jonghyun Park1-0/+6
* Add COMPlus_GDBJitElfDump * Fix Release build error * Add flags in EEConfig
2017-08-15Implement out of context stack unwinder (#13302)Mike McLaughlin1-0/+1
Implement out of context stack unwinder Decode the eh frame info found in the in-memory module image and pass it back to the remote libunwind8 to do the unwind. Added remote-unwind.cpp for all the out of context unwind code. Added an all managed threads option -all the "clrstack" (sos ClrStack). The IDebugDataTarget4 feature needs to be enabled for OS X. Add libunwind license notice to third party notices file.
2017-07-24Add the runtime code versioning featurenoahfalk1-2/+5
This makes tiered compilation work properly with profiler ReJIT, and positions the runtime to integrate other versioning related features together in the future. See the newly added code-versioning design-doc in this commit for more information. Breaking changes for profilers: See code-versioning-profiler-breaking-changes.md for more details.
2017-05-17Switch multicast delegate stub on Windows x64 to use stubs-as-il (#11624)Jan Kotas1-1/+3
Fixes #11611. The old hand generated assembly path did not work well for structs passed by reference.
2017-05-10Re-Factor EventSource to Support Writing to EventPipe (#11435)Brian Robbins1-2/+2
Re-Factor EventSource to Support Writing to EventPipe.
2017-05-10Allow users to enable automatic NI bind fallback via command-line (#11485)Jonghyun Park1-0/+3
* Add FEATURE_NI_BIND_FALLBACK support * Fix incorrect variable setup * Negate the check condition * Use WIN32 instead of FEATURE_PAL * Check WIN32 first, and FEATURE_NI_BIND_FALLBACK later
2017-05-06Log Events to EventPipe on Linux (#11433)Brian Robbins1-1/+3
* Implement the EventPipe object model for providers and events. * Plumb Runtime Events into EventPipe (#11145) Plumb runtime ETW events into the EventPipe. * Fix bug where all events except for SampleProfiler events were never enabled. * Plumb EventPipeEventInstance through the EventPipe. * Implement EventPipeFile and FastSerializer. * Write event contents to the EventPipeFile. * Only build EventPipe on Linux. * Conditionally add a sentinel value marking event end. * Send SampleProfiler events to the EventPipeFile. * Fix provider ID printing to JSON file. * Write the start date/time, timestamp, and clock frequency into the trace file. * Support unloading of EventPipeProviders. * Handle failure cases when we can't walk the stack or are shutting down. * Fix a bug where we pass a null src pointer to memcpy.
2017-05-05[Arm64/Unix] Enable FEATURE_USE_SOFTWARE_WRITE_WATCH_FOR_GC_HEAP (#11375)Steve MacLean1-2/+2
* [Arm64/Unix] Enable FEATURE_USE_SOFTWARE_WRITE_WATCH_FOR_GC_HEAP * [Arm64/Unix] Enable FEATURE_MANUALLY_MANAGED_CARD_BUNDLES
2017-04-27Remove support for the x86 compat JIT from .NET Core.Pat Gavlin1-6/+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-25Allow FEATURE_INTERPRETER to be enabled by command-line option (#11188)Jonghyun Park1-0/+3
* Allow FEATURE_INTERPRETER to be enabled by command-line option * Set FEATURE_INTERPRETER as 0
2017-04-24Support FEATURE_DBGIPC override (#11164)Jonghyun Park1-4/+4
2017-04-17Support FEATURE_EVENT_TRACE override (#10961)Jonghyun Park1-12/+1
2017-04-13[ARM32/Linux] Build libcoreclrtraceptprovider.so (#10406)Hyeongseok Oh1-2/+8
* 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-03Basic EventPipe functionality that supports writing sample profile events to ↵Brian Robbins1-0/+1
JSON. SampleProfiler that globally suspends the runtime every 1ms to walk stacks and write them to the EventPipe.
2017-03-29Tiered Compilation step 1noahfalk1-0/+1
Tiered compilation is a new feature we are experimenting with that aims to improve startup times. Initially we jit methods non-optimized, then switch to an optimized version once the method has been called a number of times. More details about the current feature operation are in the comments of TieredCompilation.cpp. This is only the first step in a longer process building the feature. The primary goal for now is to avoid regressing any runtime behavior in the shipping configuration in which the complus variable is OFF, while putting enough code in place that we can measure performance in the daily builds and make incremental progress visible to collaborators and reviewers. The design of the TieredCompilationManager is likely to change substantively, and the call counter may also change.
2017-03-13Build Linux altjit for x86 and amd64 (#10120)Bruce Forstall1-2/+4
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-01Merge pull request #9770 from adityamandaleeka/card_bundles_unix_2Aditya Mandaleeka1-0/+1
Implement second-level card tables for non-Windows platforms
2017-02-28Implement card bundles for non-Windows platforms.Aditya Mandaleeka1-0/+1