Age | Commit message (Collapse) | Author | Files | Lines |
|
Enable crossgen /createpdb command on Windows
|
|
Refactor FEATURE_MERGE_JIT_AND_ENGINE to allow consuming JIT as a dynamic library
|
|
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.
|
|
|
|
|
|
- The static library to be linked into the CLR is now
`clrjit_static`
- The static library to be linked into crossgen is now
`clrjit_crossgen`
- The dynamic library is now `clrjit`
|
|
|
|
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`.
|
|
The motivation is for enabling ARM64 which does not have correct static
lib with the current toolset.
But looking at other console apps (ilasm/ildasm/coreconsole/corerun) or
coreclr.dll, they also have dependency on msvcrt for Windows.
So, I've decided to make crossgen.exe with the same flavor.
This changes reduces the binary size -- 10M -> 9M (Debug). Release binary
is slightly smaller.
I've validated this by comparing .ni.dll for all FX assemblies that we use for
tests (under CORE_ROOT), which are identical before and after.
|
|
Strip symbols on release builds into separate binaries
|
|
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).
|
|
|
|
CrossGen /CreatePDB command gives preference to the TPA list while loading assemblies. So if the TPA contains the IL version of the input assembly but not the NI version, we would end up loading the IL instead of NI. This causes the CreatePDB command to fail, since it can't operate on IL images. This is fixed by putting the input file as the first entry in the TPA list.
Another issue is when the above error does occur, the error message is very unclear (it only shows "Unspecified error"). This is fixed with a better error message.
[tfs-changeset: 1587876]
|
|
|
|
- Delete BINDER, STANDALONE_BINDER and MDIL ifdefs
|
|
|
|
The CoreCLR runtime is updated to support long file paths on Windows.
Pending updates to mscorlib.dll, the following scenarios are supported:
* Run managed apps from a long path.
* Load CoreCLR runtime and framework from a long path.
* Load user assemblies from a long path.
* Run CrossGen from a long path, with its input/output from a long path.
* Generate debug log file at a long path.
The following scenarios are not yet supported, and will be fixed in
future commits:
* Mscorlib.dll and framework assemblies are not yet long path compatible.
Note that until mscorlib.dll is fixed, most of the runtime changes can't
actually be used.
* Support on non-Windows platforms.
* Support for debugging and error reporting.
* Tools such as ilasm or ildasm.
|
|
|
|
They are:
1. Wrappers for OS APIs which take or return PATHS
2. Fixing the usage of following Api's:
GetEnvironmentVariableW
SearchPathW
GetShortPathNameW
GetLongPathNameW
GetModuleFileName
Work remaining:
Remove fixed size buffers in the VM
|
|
[tfs-changeset: 1575079]
|
|
Change crossgen to generate R2R images by default
|
|
[tfs-changeset: 1573006]
|
|
[tfs-changeset: 1570939]
|
|
|
|
during build.
This only applies to windows build.
|
|
Conflicts:
build.cmd
src/dlls/clretwrc/CMakeLists.txt
Cleanup
|
|
Merge changes from TFS
|
|
[tfs-changeset: 1565674]
|
|
[tfs-changeset: 1565534]
|
|
tools were still not getting built for projectK build....fixed that. Verified on local machine using below command
msbuild /t:rebuild /p:ProductGroupsToBuild=PK dirs.proj
[tfs-changeset: 1565223]
|
|
platforms
|
|
[tfs-changeset: 1565108]
|
|
do not change) create a nuget package
This contains changes for following:
1. Binplace & sign following binaries
a. pdbtypematch.exe (only build in x86 ret .... build errors for other flavors)
b. dactableGen.exe
c. dialib.dll
d. GenClrDebugResource.exe
e. InjectResource.exe
2. add sources of PdbTypeMatch tools in github
3. bump up the version of coreclr buildtools package to 1.0.4
4. add above tools to coreclr buildtools package
5. remove bclrewriter from coreclr buildtools package
6. build dotnet.builtools.coreclr package only for x86 ret builds as pdbtypematch.exe only builds for ret flavor.
[tfs-changeset: 1564332]
|
|
Added a PAL_Shutdown function that cleans/shutdowns the PAL without exiting/terminating
the process doing exactly what ExitProcess/TerminateProcess before exiting the process.
Removed the PAL_InitializeCoreCLR export. The new coreclr_* hosting apis should be used.
Moved the "is module manager initialized" check (exe_module.prev != NULL) inside the module
lock to prevent races during shutdown in LOADCallDllMain.
Removed LOADFreeModules so we never try to call the DLL_PROCESS_DETACH handlers. Most of this
cleanup happened because I was trying to getting the DLL_PROCESS_DETACH notifications working,
but there were too many opportunities for deadlock. Emulating Windows behavior isn't that
important and in this case will cause more problems that it fixes.
Removed PAL_RegisterLibrary*/PAL_UnregisterLibrary. They were only used in one place to load modules
that don't exist anymore (rotor_palrt and sscoree).
Renamed LOAD_SEH_CallDllMain to LoadCallDllMainSafe (we don't usually use _ in names) and use this
function in all the places we call the DllMain handler. This combines some code in a common place
and protects all DllMain calls from exceptions.
Source code formatting cleanup and moved internal functions around to be next to the rest of the
internal functions.
Initialize pDllMain to NULL in LOADAllocModule.
Get the DllMain function address into LOADAddModule so that it is initialized in the PAL_RegisterModule path.
Changed PAL_UnregisterModule not to call the DllMain function.
|
|
http://blogs.msdn.com/b/dotnet/archive/2015/11/30/net-framework-4-6-1-is-now-available.aspx
.NET Framework list of changes in 4.6.1
https://github.com/Microsoft/dotnet/blob/master/releases/net461/dotnet461-changes.md
Additional changes including
- Working ARM64 JIT compiler
- Additional JIT Optimizations
o Tail call recursion optimization
o Array length tracking optimization
o CSE for widening casts
o Smaller encoding for RIP relative and absolute addresses in addressing modes
o Tracked Local Variable increased to 512
o Improved handling of Intrinsics System.GetType()
o Improved handling of Math intrinsics
- Work for the X86 Ryu-JIT compiler
[tfs-changeset: 1557101]
|
|
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.
|
|
Clang > 2.7.0 emits warnings for mismatched uses of new and
delete (-Wmismatched-new-delete).
Refs #2135
|
|
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]
|
|
This change replaces DWORD, LONGLONG, ULONGLONG, SIZE_T, BYTE, LONG32 and few more by
standard c++ types. The DWORD still remains present in signatures of Windows APIs used
by the GC. There are few issues with those that need to get fixed.
|
|
This is needed in order to profile applications on Linux using perf_event.
This change also modifies the runtime to emit a perfmap entry when a native image is loaded so that offline trace processing tools can identify when a perfmap file for a native image is needed and generate it.
|
|
|
|
Replace hardcoded Windows directory and path separators with symbolic
constants.
|
|
|
|
[tfs-changeset: 1507366]
|
|
Fix bugs found by desktop tests
[tfs-changeset: 1474260]
|
|
Take the resources in RC files and build a static library that contains
the ID->English string mappings. Use those strings as the key to gettext
so that when gettext is not able to find a suitable string in the desired
language, it falls back on returning the English string.
|
|
Merge changes from TFS
|
|
[tfs-changeset: 1466606]
|
|
|