> Hi.
> 
> The patch strips '#' in filenames used for Makefile.
> 
> Ready to be installed?
> Thanks,
> Martin
> 
> gcc/ChangeLog:
> 
> 2020-01-21  Martin Liska  <mli...@suse.cz>
> 
>       PR driver/93057
>       * lto-wrapper.c (prune_filename_for_make): Prune
>       characters like '#'.

I think this is not enough - you need to take into consideration all
special characters used by make and bash, such as $ and others...

Honza
> ---
>  gcc/lto-wrapper.c | 11 +++++++++++
>  1 file changed, 11 insertions(+)
> 
> 

> diff --git a/gcc/lto-wrapper.c b/gcc/lto-wrapper.c
> index fe8f292f877..f2504cc5b4f 100644
> --- a/gcc/lto-wrapper.c
> +++ b/gcc/lto-wrapper.c
> @@ -1241,6 +1241,16 @@ jobserver_active_p (void)
>         && is_valid_fd (wfd));
>  }
>  
> +/* Prune invalid characters that can't be in name due to Makefile syntax.  */
> +
> +static void
> +prune_filename_for_make (char *filename)
> +{
> +  for (unsigned i = 0; i < strlen (filename); i++)
> +    if (filename[i] == '#')
> +      filename[i] = '_';
> +}
> +
>  /* Execute gcc. ARGC is the number of arguments. ARGV contains the 
> arguments. */
>  
>  static void
> @@ -1780,6 +1790,7 @@ cont:
>         obstack_grow (&env_obstack, input_name, strlen (input_name) - 2);
>         obstack_grow (&env_obstack, ".ltrans.o", sizeof (".ltrans.o"));
>         output_name = XOBFINISH (&env_obstack, char *);
> +       prune_filename_for_make (output_name);
>  
>         /* Adjust the dumpbase if the linker output file was seen.  */
>         if (linker_output)
> 

Reply via email to