Age | Commit message (Collapse) | Author |
|
- Delete redundant or obsolete parts in makefiles
- Update macOS prerequisites
|
|
* Cleanup ifdefs around RhAllocateThunksMapping
* Cleanup FEATURE_DYNAMIC_CODE ifdefs around ICodeManager
ICodeManager is not specific to dynamic code anymore
|
|
|
|
* Changes to hook up the portable runtime and bootstrapper. Includes implementing allocation using RhpNewFast as well as some floating point codegen fixes required to make the new code compile.
Removes usage of buggy dladdr API in WebAssembly, fixes order of conditional branch expressions, which fixes printing when C# optimizations are enabled, adds debug and release flags to emcc, updates WebAssembly documentation to reflect the new build flavor and linking steps. Adds thunks for RuntimeExport methods to fix linker errors for missing runtime exports.
|
|
* Update RyuJIT
This picks up:
* JitInterface changes
* dotnet/coreclr#15475
When Cbrt/Asinh/Acosh/Atanh is added, we'll want to uncomment the intrinsic recognition.
* Update framework to latest
* Fix ReadOnlySpan
* Implement Environment.ProcessorCount with PalGetProcessCpuCount
|
|
|
|
- now it downloads llvm 5 release and uses it in the building ObjWriter
- add [objwriter] option into build.sh
- only Linux platform support
- cross building support(x86/x64 -> ARM32)
- LLVM is built in Release build type always,
ObjWriter uses global project build type.
Signed-off-by: Petr Bred <bredpetr@gmail.com>
|
|
Picking up JitInterface changes.
|
|
|
|
|
|
* Fix issues building the runtime, corelib and type loader for WebAssembly
* Fix test infrastructure to allow running with the wasm flavor
|
|
The problem is that these finally blocks are called just like any managed call from the main body of the parent containing method, however there is no gcroots reporting at that callsite. The idea of not having gcroots reported at the callsite is because funclets should never really be hijacked in the first place.
The 'IsFunclet' detection logic on ProjectN is slightly different that on ProjectX: it checks the value of the funclet offset, which is not used by ProjectX. This fix stores a dummy value as a funclet offset (anything other than 0).
[tfs-changeset: 1682563]
|
|
- Add ordinal import mechanism to ready to run header
- Add concept of various different types of export to nodes (Now nodes can be exported by symbol name or by ordinal)
- Abstraction of how nodes from exported modules are imported (ImportedNodeProvider)
- Import/Export table nodes (MrtProcessedImportAddressTable, MrtProcessedExportAddressTable)
- Runtime decodable jump stubs
- Tweaks to floating dictionary computation to behave correctly when no floating section is present, and to tolerate floating sections without version numbers
- Not integrated with the open source version of the compiler, but the basic nodes and necessary infra are present
Also
- Allow a TypeSystemContext to specify the module in which the Canon types are logically located
- Overrideable apis for the CompilerTypeSystemContext to allow customization of the set of methods logically present on Enums and Delegates
- New apis on CompilationModuleGroup to allow more granular policy to be specified about what is to be compiled
- Adjust GetName helper for MethodSignature to produce names that are more unique
- Fix bug in floating generic dictionary implementation where it assumed that the floating section was present in all dictionaries
- ARM64 indirect jump generation (with a assert to be disabled when it is debugged)
[tfs-changeset: 1682436]
|
|
* add bootstrapper for native libraries (#1285)
* overwrite main method when building library (#1285)
* add stub for native library startup method (#1285)
* Include nativelib switch for compiler
* suppress checking for entrypoint when -nativelib
* initialize runtime at start of reverse PInvoke, unix dlopen successful (#1285)
* don't run library initializers for Multi module build (#1285)
* update buildscript to build unix static library (#1285)
* update buildscript to build Windows static library (#1285)
* create and use NativeLibraryInitializerRootProvider (#1285)
* use "shared" linker arg on unix to build shared library (#1285)
* use system module to initialize NativeLibraryInitializerRootProvider (#1285)
* initialize runtime just before initializing the thread (#1285)
* move InitializeRuntime call to within TSF_Attached state check (#1285)
* use static struct constructor to set InitializeRuntime pointer (#1285)
* do not include main function in native library build (#1285)
* move runtime initialization check to thread init (#1285)
* use Thread* to determine whether to initialize runtime (#1285)
* handle race conditions when initializing runtime (#1285)
|
|
- cbz/cbnz destination must be after the instruction.
In our case, an overflow occurs and it jumps into unknown place.
Signed-off-by: Petr Bred <bredpetr@gmail.com>
|
|
Some flavors depend on InitializeModules
[tfs-changeset: 1681285]
|
|
As part of my work on .NET Native optional component bring-up I have refactored internal framework management of app modules to be independent on MRT. This is needed so that the app and optional component only know about "their own" modules (while MRT stores all their modules). I basically somewhat unified ProjectN and CoreRT behavior in the sense that I switched ProjectN over to use the module lists in StartupCodeHelpers used by CoreRT, making them slightly more flexible to support dynamic accumulation of the module list during ProjectN startup. In incremental build mode, I have reused the already existing "assembly rooting" technique to make sure all the component assemblies are properly registered in the module list. The change passes basic testing in single-file, shared and incremental build modes on x86 and amd64, I'm running a full ToF run and I plan to run an AppCompat run after I stabilize the change by addressing CR feedback.
In 2nd iteration I slightly refactored the change based on JanK's and Michal's feedback: I created a secondary version of StartupCodeHelpers specific to .NET Native called StartupCodeHelpers.ProjectN.cs. It only contains the logic regarding the "GetLoadedModules" list which is newly built up using the StartupCodeTrigger calls to StartupCodeHelpers.RegisterModule. The two versions of the module expose the same signatures of the two methods "GetLoadedModules" and "GetLoadedOSModules" that are subsequently called from RuntimeAugments. RhGetLoadedOSModules is still in place as it's needed to produce the dump header. Based on JanK's suggestion I have refactored StackTraceGenerator.Windows to stop calling the method.
In 3rd iteration I addressed additional Michal's and Jan's feedback and I tried to answer some questions.
In 4th iteration I addressed additional JanK's feedback.
Thanks
Tomas
[tfs-changeset: 1681241]
|
|
|
|
Picks up JitInterface changes.
|
|
CoreRT is component of ProjectN (aka .NET Native for UWP), but our current defines do not reflect it because of CORERT is not defined in ProjectN builds. This creates confusion for folks outside the core runtime team, and conflicts with our documentation. For example, https://github.com/dotnet/corert/blob/master/Documentation/intro-to-corert.md says "CoreRT is the .NET Core runtime that is optimized for AOT scenarios, which .NET Native targets". It does not say "CoreRT is the .NET Core runtime optimized for AOT scenarios that uses RyuJIT backend" or anything like that.
- Before this change:
PROJECTN: defined in closed source ProjectN builds
CORERT: defined in open source CoreRT builds
CORECLR: defined in CoreCLR builds
- After this change:
PROJECTN: defined in closed source ProjectN builds (same)
CORERT: defined in both open source CoreRT builds and closed source ProjectN builds (different)
CORECLR: defined in CoreCLR builds (same)
[tfs-changeset: 1680901]
|
|
The GC depends on the pages to be zeroed out when they are mapped in again
|
|
Signed-off-by: Petr Bred <bredpetr@gmail.com>
|
|
- remove CoreCLR dependence
- fix build with the latest LLVM 5 version
- add documentation
Signed-off-by: Petr Bred <bredpetr@gmail.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Speed up locating method info on Unix
|
|
Merge nmirror to master
|
|
|
|
|
|
The new GetOsModuleHandle API is used by the StackTraceMetadata code in both ProjectN and ProjectX.
[tfs-changeset: 1680143]
|
|
|
|
Add support to cmake files for wasm build
|
|
- the bug occurred when we jumped into __tls_get_addr,
it overwrites our LR register.
Signed-off-by: Petr Bred <bredpetr@gmail.com>
|
|
|
|
|
|
Matches what we do in CoreCLR. The crashes on release build are impossible to debug without this.
|
|
|
|
with unix envirtonments. (#4760)
|
|
|
|
Merge nmirror to master
|
|
virtual dispatch work, so I am removing it.
[tfs-changeset: 1678101]
|
|
Merge nmirror to master
|
|
through FuncEval.
[tfs-changeset: 1678023]
|
|
|
|
|
|
FuncEval.
[tfs-changeset: 1677518]
|