Support long paths in CoreCLR runtime on Windows
authorJohn Chen (JOCHEN7) <jochen@microsoft.com>
Wed, 24 Feb 2016 04:36:07 +0000 (20:36 -0800)
committerJohn Chen (JOCHEN7) <jochen@microsoft.com>
Mon, 29 Feb 2016 21:55:49 +0000 (13:55 -0800)
commit2f3ebb25d544c15abd73448531f4064ef12dbeca
tree2c2b3bd9932b455ecb4a07ad83f76e9e56a4e464
parent652883eef2d32387de4ca45befea92e990fa6a03
Support long paths in CoreCLR runtime on Windows

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.

Commit migrated from https://github.com/dotnet/coreclr/commit/488e6a16685241ed1aed3b3d386b78ed32e428f0
19 files changed:
src/coreclr/src/binder/assemblybinder.cpp
src/coreclr/src/binder/cdebuglog.cpp
src/coreclr/src/coreclr/hosts/corerun/CMakeLists.txt
src/coreclr/src/coreclr/hosts/corerun/coreRun.nativeproj
src/coreclr/src/coreclr/hosts/corerun/corerun.cpp
src/coreclr/src/inc/clr/fs/dir.h
src/coreclr/src/inc/utilcode.h
src/coreclr/src/inc/zapper.h
src/coreclr/src/md/compiler/regmeta_emit.cpp
src/coreclr/src/md/enc/liteweightstgdbrw.cpp
src/coreclr/src/tools/crossgen/crossgen.cpp
src/coreclr/src/utilcode/log.cpp
src/coreclr/src/utilcode/makepath.cpp
src/coreclr/src/utilcode/safewrap.cpp
src/coreclr/src/utilcode/splitpath.cpp
src/coreclr/src/vm/rtlfunctions.cpp
src/coreclr/src/vm/stdinterfaces.cpp
src/coreclr/src/vm/tlbexport.cpp
src/coreclr/src/zap/zapper.cpp