https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61922
--- Comment #5 from Ilya Konstantinov <ilya.konstantinov at gmail dot com> --- cygwin and mingw can document a limitation such as: fopen will truncate paths to MAX_PATH. Once cygwin or mingw receive a monstrous path, there's little they can do. CreateFile won't accept it, neither GetFullPathName. The only thing left is manually canonizing it, which is tedious and error-prone -- cygwin/mingw will have to implement its own directory traversal, textually processing the path, and respecting ".", ".." and symlinks along the way. Meanwhile, gcc can make an effort not to pass a monstrous path in the first place, by canonizing it after every #include.