Age | Commit message (Collapse) | Author | Files | Lines |
|
|
|
Remove IA-64/Itanium support.
|
|
Add MethodImplOptions.AggressiveOptimization and use it for tiering
Part of fix for https://github.com/dotnet/corefx/issues/32235
Workaround for https://github.com/dotnet/coreclr/issues/19751
- Added and set CORJIT_FLAG_AGGRESSIVE_OPT to indicate that a method is flagged with AggressiveOptimization
- For a method flagged with AggressiveOptimization, tiering uses a foreground tier 1 JIT on first call to the method, skipping the tier 0 JIT and call counting
- When tiering is disabled, a method flagged with AggressiveOptimization does not use r2r-pregenerated code
- R2r crossgen does not generate code for a method flagged with AggressiveOptimization
|
|
|
|
* Cleanup all disabled warnings that do not trigger
* Fix warning about line continuation in single line comment
* Eliminiate all unreferenced local variables and reenable warning
|
|
|
|
|
|
|
|
ildasm -nat only works for fragile native images (ie CoreLib only by default).
Running ildasm -nat against unsupported native images would cause a segmentation fault. This PR checks pNativeHeader->Signature == CORCOMPILE_SIGNATURE and end the program with a meaningful error message.
fix #10247
|
|
I used PVS-Studio static analyzer to check this project. I would like to suggest a variant of the way to fix the copy-paste errors, detected with the help of V778 diagnostic. Description of the diagnostic: https://www.viva64.com/en/w/V778/
|
|
|
|
|
|
|
|
|
|
* Remove sscanf
* Remove sprintf
|
|
Full metadata emission is disabled under coreclr.
So is ILDASM instead of failing during the run.
|
|
Fixes https://github.com/dotnet/coreclr/issues/5408
|
|
|
|
Currently only enabled for arm64
|
|
|
|
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).
|
|
This creates packages for ILAsm/ILDAsm respectively.
These tools depend on CoreCLR, so they are tied together with the same version.
Note we use ProjectK build for packaging Windows binaries so these tools are basically desktop one while cross-platform binaries are from Github build as usual.
When CoreCLR packaging and publication are migrated to Github build, so will these tools.
[tfs-changeset: 1585183]
|
|
Fix absolute path on Linux
|
|
Using the fixed version of GetEntrypointExecutableAbsolutePath when the
program name on the command line does not reflect an actual file on disk
(case when a program is launched by finding it in the PATH). This should fix
issue#3190.
|
|
When manipulating strings, the string destination buffer and the argument
of SZSTRING_REMAINING_SIZE should be the same otherwise buffer
overflows will occur.
Changed DumpHexbytes to start from the provided pointer and not finding
out how much was printed so far in the szString buffer.
|
|
|
|
|
|
NAME
dlopen, dlclose, dlsym, dlvsym, dladdr, dlctl, dlerror - dynamic link
interface
LIBRARY
(These functions are not in a library. They are included in every
dynamically linked program automatically.)
SYNOPSIS
#include <dlfcn.h>
void *
dlopen(const char *path, int mode);
|
|
Conflicts:
build.cmd
src/dlls/clretwrc/CMakeLists.txt
Cleanup
|
|
platforms
|
|
ildasm -h contains a few broken message like "[Undefined resource string ID:0xCC]"
This is because we converted .rc file to a string table and SyntaxCon() enumerate all message ids while some of ids are ifdefedd out under FEATURE_PAL.
The fix is to define all the missing ids with empty string.
And also the indention (prefixed space) are all ignored except one.
Our trick (in awk script) to extract expression ID is to iterate argument string ($i) while setting it
to empty string to effectively delete the argument.
Unfortunately this has side-effect that normalizes all spaces between arguments to one space string.
The fix is to explicitly extract string content from the original string $0.
|
|
PrettyPrintSigature allocates only 16 byte char array for prefix name, but the input string was synthesized from an 64 bit address -- szVarPrefix or szArgPrefix.
The maximum number of decimal digits for 64 bit value is 21, which overflows the allocated buffer.
Note actually ildasm even prepends '@' and appends '0' for the prefix name.
The fix is to declare MAX_PREFIX_SIZE as 32 and use it everywhere for the purpose.
This also fixes '_atoi64' which actually returns 32 bit value using '{PAL_}atol' in Unix.
Instead, I imports 'atoll' for the use of '_atoi64', which correctly converts string to 64 bit integer.
|
|
During the test bring-up, I noticed that _gcvt_s (CRT call) has slightly different output for special number like NAN/INF in between VS2013 and VS2015.
For instance, the former prints "1.#INF" while the latter prints "inf".
Unfortunately ildasm checks "#" to detect such case.
The fix here is to add an explicit check if string contains "inf"/"nan".
|
|
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.
|
|
This enables ildasm for cross-platforms.
Unlike Window (where initialization is done when DLL attach), CoreCLR is explciltly hosted/initialized to get the Metadata related APIs.
This also eliminates the need of setting dynamic library path.
Currently, ildasm binary is assumed to be located same as CoreCLR binary.
I added a simple CoreCLRLoader (not meant to run an assembly file) for just direct uses of APIs. Since I expect this library to be used for ilasm work.
Resource string is also handled using a static string table based on my prior check-in.
Other changes are mostly mechanic with regard to wide constant string.
|
|
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.
|
|
[tfs-changeset: 1551732]
|