Ping

> -----Original Message-----
> From: Joey Ye [mailto:joey...@arm.com]
> Sent: Tuesday, April 01, 2014 6:18 PM
> To: 'Ian Lance Taylor'
> Cc: gcc-patches
> Subject: RE: [patch] Shorten Windows path
> 
> Ian, thanks for your comments. Please find answers and new version below:
> 
> > -----Original Message-----
> > From: Ian Lance Taylor [mailto:i...@google.com]
> > Sent: 25 March 2014 21:09
> > To: Joey Ye
> > Cc: gcc-patches
> > Subject: Re: [patch] Shorten Windows path
> >
> > 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.
> Fixed
> >
> > This patch does not respect the configure option --disable-canonical-
> system-
> > headers.
> Solved by put is under the control of default
> ENABLE_CANONICAL_SYSTEM_HEADERS
> >
> > Also I personally don't actually know what the consequences would be.
> > Are there any downsides to canonicalizing header names?
> Since 4.8 system headers are by default canonicalized. This version only
> additionally canonical non-system headers. I can't think of any downsides.
> 
> >
> > Ian
> 
> ChangeLog.libcpp:
> 
>     * files.c (find_file_in_dir): Always try to shorten for DOS non-system
> headers.
>     * init.c (ENABLE_CANONICAL_SYSTEM_HEADERS): Default enabled for DOS.
> 
> diff --git a/libcpp/files.c b/libcpp/files.c
> index 7e88778..ad68682 100644
> --- a/libcpp/files.c
> +++ b/libcpp/files.c
> @@ -387,8 +387,14 @@ find_file_in_dir (cpp_reader *pfile, _cpp_file *file,
> bool *invalid_pch)
>        char *copy;
>        void **pp;
> 
> -      /* We try to canonicalize system headers.  */
> -      if (CPP_OPTION (pfile, canonical_system_headers) && file->dir->sysp)
> +      /* We try to canonicalize system headers.  For DOS based file
> +       * system, we always try to shorten non-system headers, as DOS
> +       * has a tighter constraint on max path length.  */
> +      if (CPP_OPTION (pfile, canonical_system_headers) && file->dir->sysp
> +#ifdef HAVE_DOS_BASED_FILE_SYSTEM
> +       || !file->dir->sysp
> +#endif
> +      )
>       {
>         char * canonical_path = maybe_shorter_path (path);
>         if (canonical_path)
> diff --git a/libcpp/init.c b/libcpp/init.c
> index f10413a..b809515 100644
> --- a/libcpp/init.c
> +++ b/libcpp/init.c
> @@ -27,8 +27,12 @@ along with this program; see the file COPYING3.  If not
> see
>  #include "filenames.h"
> 
>  #ifndef ENABLE_CANONICAL_SYSTEM_HEADERS
> +#ifdef HAVE_DOS_BASED_FILE_SYSTEM
> +#define ENABLE_CANONICAL_SYSTEM_HEADERS 1
> +#else
>  #define ENABLE_CANONICAL_SYSTEM_HEADERS 0
>  #endif
> +#endif
> 
>  static void init_library (void);
>  static void mark_named_operators (cpp_reader *, int);


Reply via email to