Remove MAX_PATH restrictions from RTS, I/O manager and various utilities
authorTamar Christina <tamar@zhox.com>
Thu, 29 Mar 2018 13:22:09 +0000 (14:22 +0100)
committerTamar Christina <tamar@zhox.com>
Sat, 31 Mar 2018 09:11:53 +0000 (10:11 +0100)
commit4de585a5c1ac3edc2914cebcac1753b514051a89
tree09bfb4251808007bb4ad79c6f10f3e4fbe3e9312
parentafb686a88901d7d0c93627806d7e4d0444aa17e8
Remove MAX_PATH restrictions from RTS, I/O manager and various utilities

Summary:
This shims out fopen and sopen so that they use modern APIs under the hood
along with namespaced paths.

This lifts the MAX_PATH restrictions from Haskell programs and makes the new
limit ~32k.

There are only some slight caveats that have been documented.

Some utilities have not been upgraded such as lndir, since all these things are
different cabal packages I have been forced to copy the source in different places
which is less than ideal. But it's the only way to keep sdist working.

Test Plan: ./validate

Reviewers: hvr, bgamari, erikd, simonmar

Reviewed By: bgamari

Subscribers: rwbarton, thomie, carter

GHC Trac Issues: #10822

Differential Revision: https://phabricator.haskell.org/D4416
26 files changed:
.gitignore
configure.ac
docs/users_guide/8.6.1-notes.rst
ghc.mk
libraries/base/base.cabal
libraries/base/include/HsBase.h
rts/Hpc.c
rts/Linker.c
rts/PathUtils.h
rts/ProfHeap.c
rts/Profiling.c
rts/RtsFlags.c
rts/RtsSymbols.c
rts/eventlog/EventLogWriter.c
rts/fs_rts.h [new file with mode: 0644]
rts/ghc.mk
rts/linker/LoadArchive.c
rts/linker/PEi386.c
rts/rts.cabal.in
utils/fs/README [new file with mode: 0644]
utils/fs/fs.c [new file with mode: 0644]
utils/fs/fs.h [new file with mode: 0644]
utils/lndir/lndir.c
utils/unlit/ghc.mk
utils/unlit/unlit.c
utils/unlit/unlit.cabal