Age | Commit message (Collapse) | Author | Files | Lines |
|
building entire project as C++ for Unix (#6801)
Enable building CoreCLR as C++ project on Unix
This series of patches fixes the strict aliasing violation from
the conditional typedef of wchar_t in src/pal/inc/pal_char16.h:40
* rename c files to cpp
* modify all cmake files to change .c files to .cpp
* apply c++ linkage to templates
|
|
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]
|
|
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
|
|
|
|
When test population, most il tests turn on DEBUG flag, which
caused spurious warnings on ilasm/CoreCLR since PDB is not yet supported.
This changes the warning display to a comment that is linked to a GH issue.
|
|
|
|
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);
|
|
platforms
|
|
Switch target should be 4 byte instead of 8 byte.
In Windows, size of long is same as size of int which is 4 byte, but this is 8 byte in Unix.
|
|
1. Enable CLRTest.Execute.Bash.targets similar to CLRTest.Execute.Batch.targets.
2. _IlasmSwitches uses '-' instead of '/'
3. Disable optimization on the prebuilt asmparse.c due to https://github.com/dotnet/coreclr/issues/2305
|
|
This is a simple fix for incorrect assertion.
Assertion location is changed and dwErrorIndex is zero-initialized.
ilasm on coreclr does not handle permission set/security attribute which coreclr does not support.
So, such attempt will end up with emitting error on coreclr instead of failing to assert.
|
|
[tfs-changeset: 1557090]
|
|
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 ILASM/mscorpe on CoreCLR for Windows.
1. Fusion/StrongName(Full Sign) dependencies are removed since these are not CoreCLR features.
2. mscorpe is statically built/linked to ilasm.
3. asmparse.c is auto-generated by an internal version of yacc so I added it under prebuilt directory for now. Will create an issue so that we can build it using a standard tool like bison.
|
|
[tfs-changeset: 1555681]
|