This change modifies the Unix hosting API so that the hosting app can create
as many managed delegates as it needs and execute them as many times it wants.
The new API contains separate functions to initialize and shutdown CoreCLR
and a function to create a delegate.
The current ExecuteAssembly function behavior stays unmodified for now to
ensure that dnx that uses that API and that pulls the binary libcoreclr
is not broken.
After the dnx is updated to use the new coreclr_create_delegate API, I'll remove
the ExecuteAssembly.
Also done:
1) Added support for comments and skipping empty lines in the mscorwks_unixexports.src.
2) Restructured the mscorwks_unixexports.src
3) Added coreclr_execute_assembly to the unixinterface.cpp / exports
4) Modified coreruncommon.cpp to use the new hosting API
ExecuteAssembly is initializing exitCode to 0 on entrance to the function. If it then fails prior to exitCode being set when invoking the entry point, the exitCode remains 0 even though there was a failure, and corerun ends up returning a successful exit code.
Created a Unix version of coreconsole which, like the Windows version,
is similar to corerun but runs the managed binary with the same name as
the executable (but with the DLL extension). Moved code that is common
between corerun and coreconsole to coreruncommon.
Remove the workaround for the XCode 6.3 SDK issue wherein some of the
system headers that we reference try to include a __debug header which
does not exist. The 6.3.1 update fixed that issue so the workaround is no
longer required.
Fix#747