> 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) >