On 1/21/20 4:15 PM, Andreas Schwab wrote:
On Jan 21 2020, Martin Liška wrote: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++)That's quadratic runtime. Andreas.
Thanks for heads up. Martin
>From 88b3817dc377ecf030300078514eb5749c361406 Mon Sep 17 00:00:00 2001 From: Martin Liska <[email protected]> Date: Tue, 21 Jan 2020 16:03:36 +0100 Subject: [PATCH] Prune invalid filename due to makefile syntax. gcc/ChangeLog: 2020-01-21 Martin Liska <[email protected]> PR driver/93057 * lto-wrapper.c (prune_filename_for_make): Prune characters like '#'. --- gcc/lto-wrapper.c | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/gcc/lto-wrapper.c b/gcc/lto-wrapper.c index fe8f292f877..81d0fdb2410 100644 --- a/gcc/lto-wrapper.c +++ b/gcc/lto-wrapper.c @@ -1241,6 +1241,17 @@ 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) +{ + unsigned length = strlen (filename); + for (unsigned i = 0; i < length; i++) + if (filename[i] == '#') + filename[i] = '_'; +} + /* Execute gcc. ARGC is the number of arguments. ARGV contains the arguments. */ static void @@ -1780,6 +1791,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) -- 2.24.1
