Age | Commit message (Collapse) | Author | Files | Lines |
|
|
|
* 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.
|
|
This change enables build of CoreCLR on Alpine Linux. Here is the list
of changes:
- Disable asserts checking RSP in arbitrary threads against cached stack limit
for the respective thread. The stack on Alpine obviously grows over the limit
reported by the pthread functions.
- Disable using XSTATE. This should be re-enabled after MUSL gets the _xstate,
_fpx_sw_bytes and related data structures added to the signal.h header.
- Disable setting rlimit of RLIMIT_NOFILE to the max value, since it breaks
debugging for some reason.
- Add skipping over the hardware signal trampoline in the PAL_VirtualUnwind.
While we were not trying to walk over it in a simple case, in a case where
an exception was thrown from a catch handler of a hardware exception, we
still attempted to walk over it and it fails on Alpine.
- Fix detection of Alpine Linux in the PAL's CMakeLists.txt so that it works
in Docker containers too.
- Modified PAL_VirtualUnwind to make the check for unwinding past the bottom
of the stack unconditional. We had a long list of platforms where we were
doing this check and it doesn't hurt to do it on platforms where it is not
needed. I have done that rather than adding a check for Alpine Linux as
another platform that needs it.
|
|
|
|
|
|
|
|
Fix platform logic in symbol stripping code
|
|
|
|
Pass --build-id=sha1 to linker explicitly
|
|
* Scripts: find out compiler definitions of CMake
In order to find mismatch between native and managed,
we need to know the list of definitions of native.
The copmiler definitions are stored at cmake.definitions
This addresses the complaints of #4674
Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
* Scripts: add check-definitions.py
scripts/check-definitions.py checks the consistency between
the native-build (CMake) compiler definitions and
the managed-build (MSBuild/mscorlib) compiler definitions
at build-time and prints out potentially dangerous
inconsistencies.
In order to get the proper results, managed build should
be executed after the native build (build.sh will do so
if no options such as skipnative or skipmanaged are given.)
Fix #4674
Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
* Scripts: allow check-definitions py to ignore the harmless
The third argument of check-definitions.py specifies harmless keywords
to be suppressed from emitting warning messages.
Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
* Scripts: add ignored cdefine keywords for warning
As an example of how to declare compiler definition keywords
that are harmless to be inconsistent between the native and the
managed, we have added FEATURE_IMPLICIT_TLS and FEATURE_HIJACK.
Developers may add more keywords in System.Private.CoreLib.csproj
if the keywords are verified to be harmless; i.e., although
the keywords exist in both cmake and clr.coreclr.props,
the keywords are NEVER used in either side of the sources
or the keywords only happen to have the same name while they
denote the completely different semantics and may be disjoint.
Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
|
|
On some platforms, a build-id was not being added to native artifacts
and we would like it to be present. Explicitly pass --build-id=sha1 to
the linker.
Fixes #5796
|
|
1. Update arm64 toolset to latest.
2. Link against ucrt.
3. Fix tls offsets which have changed due to updated toolset
4. Fix source code in decimal.cpp to avoid integer overflow. Result of signed integer overlfow is undefined in C++.
5. Enable build of sos which can be loaded in arm64 windbg
6. Add nop to empty assembly marker methods as new toolset generates invalid .pdata for them.
|
|
Adding Versioning to Native components in non-Windows builds.
|
|
Currently only enabled for arm64
|
|
Linux/ARM: Unifying the redundant usages of objcopy
|
|
Enable ReJIT on all platforms
|
|
Fix Arm64 break
|
|
|
|
Print message about detected NetBSD
|
|
|
|
|
|
DelayLoadAndFixWinRTInterop
|
|
|
|
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`.
|
|
|
|
Implement software write watch and make concurrent GC functional outs…
|
|
- Implemented software write watch using write barriers
- A new set of write barriers is introduced, each corresponding to an existing one, but which also updates the write watch table. The GC switches to a write watch barrier during concurrent GC, and switches back to a non write watch barrier after the final query for dirty pages.
- The write watch table is alloacted along with the card table
- Since the card table is used differently, different synchonization is used for the write watch table. The runtime is suspended during resize since that is the most infrequently occuring operation, of that, ResetWriteWatch, and GetWriteWatch.
- ResetWriteWatch() doesn't need a suspend, but since the software WW version is much faster than the Windows version, moved it into the suspended region to avoid some synchronization that would otherwise be required
- The background calls to GetWriteWatch() don't need or do a suspend. They only need to synchronize with the resize path, not for the purpose of correct functionality, but to not miss dirty pages such that concurrent GC is effective.
Miscellaneous:
- Fixed runtests.sh to copy mscorlib.dll and delete the Windows version of mscorlib.ni.dll
|
|
|
|
Let's remove the redundent file names using unified structure.
Signed-off-by: Geunsik Lim <geunsik.lim@samsung.com>
|
|
Add header file for the hosting API
|
|
Adding Common versioning to managed and Native components of coreclr
|
|
Arm softfp For Issue #3785
|
|
|
|
Add the header file and also modify coreruncommon.cpp to use it.
|
|
|
|
in integer registers for arm-softfp architecture.
|
|
|
|
This enables open delegates on ARM (an additional 43 tests are now passing)
|
|
Currently, the 'objcopy' does only support native-build since
the commit number 4efef62f0ead16b4f8ca2c6ccf0a77ce112f73b9
Let's add cross-build as well as native-build to strip symbols.
v3:
- support if statement for arm64
v2:
- Replace 'EQUAL' with 'DEFINED' for handling Other Linux distributions
as well as Ubuntu 14.04 and for handling in case of native-build.
v2:
- support cross-build to strip debug symbols of native arm binaries
Signed-off-by: Geunsik Lim geunsik.lim@samsung.com
Signed-off-by: MyungJoo Ham myungjoo.ham@samsung.com
Signed-off-by: Prajwal A N an.prajwal@samsung.com
|
|
|
|
Remove special casing of platform assemblies
|
|
|
|
|
|
Issue #3669
Created a common cmake strip_symbols function that all the modules and programs
use to strip the symbols out of the main into a separate .dbg (Linux) or .dSYM (OSX)
file.
Added an install_clr cmake function to encapsulate the install logic.
Changed all the library module cmake install lines from a TARGETS to a FILES one. The
TARGETS based install directives caused cmake to relink the binary and copy the unstripped
version to the install path. Left the all programs like corerun or ildasm as TARGETS
installs because on OSX FILES type installs don't get marked as executable.
Need to use "get_property(strip_source_file TARGET ${targetName} PROPERTY LOCATION)" for
the older versions of cmake and "set(strip_source_file $<TARGET_FILE:${targetName}>)" on
newer versions (v3 or greater).
|
|
In model.xml, I went over:
- FEATURE_ conditions that are disabled on Unix
- FEATURE_ conditions related to NetCF
- All ApiFxInternal methods
And flipped most them either to public, ImplRoot or deleted them.
Testing: Run all open CoreCLR and CoreFX tests, built legacy build razzle
[tfs-changeset: 1586209]
|
|
Enabling LongFile Support in PAL
|
|
|
|
According to https://sourceforge.net/p/predef/wiki/OperatingSystems/
(Pre-defined Compiler Macros) and http://www.faqs.org/docs/Linux-HOWTO/GCC-HOWTO.html
(Porting and compiling:Automatically defined symbols), the __linux__ marcro is the
right way to detect systems based on the Linux kernel and is the POSIX compliant.
Signed-off-by: Geunsik Lim <geunsik.lim@samsung.com>
Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
|
|
Fix CRT linkages for uCRT
|
|
|