On Tue, Mar 25, 2014 at 1:58 AM, Joey Ye <joey...@arm.com> wrote: > Ping
This code looks different on mainline. Writing "if ( do_canonical )" is not GCC style. This patch does not respect the configure option --disable-canonical-system-headers. Also I personally don't actually know what the consequences would be. Are there any downsides to canonicalizing header names? Ian >> -----Original Message----- >> From: Joey Ye [mailto:joey...@arm.com] >> Sent: 19 February 2014 15:45 >> To: gcc-patches@gcc.gnu.org; Ian Lance Taylor (i...@google.com) >> Subject: [patch] Shorten Windows path >> >> Max length of path on Windows is 255, which is easy to exceed in a >> complicated project. Ultimate solution may be complex but canonizing the >> path and skipping the ".."s in path is helpful. >> >> Relative discussion in gcc-patches: >> http://gcc.gnu.org/ml/gcc-patches/2013-11/msg00582.html >> >> OK to trunk stage 1? >> >> ChangeLog.libcpp: >> * files.c (find_file_in_dir): Always try to shorten for DOS. >> >> diff --git a/libcpp/files.c b/libcpp/files.c index 7e88778..9dcc71f 100644 >> --- a/libcpp/files.c >> +++ b/libcpp/files.c >> @@ -386,9 +386,18 @@ find_file_in_dir (cpp_reader *pfile, _cpp_file *file, >> bool *invalid_pch) >> hashval_t hv; >> char *copy; >> void **pp; >> + bool do_canonical; >> >> +#ifdef HAVE_DOS_BASED_FILE_SYSTEM >> + /* For DOS based file system, we always try to shorten file path >> + * to as it has a shorter constraint on max path length. */ >> + do_canonical = true; >> +#else >> /* We try to canonicalize system headers. */ >> - if (CPP_OPTION (pfile, canonical_system_headers) && > file->dir->sysp) >> + do_canonical = (CPP_OPTION (pfile, canonical_system_headers) >> + && file->dir->sysp); #endif >> + if ( do_canonical ) >> { >> char * canonical_path = maybe_shorter_path (path); >> if (canonical_path) > >