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 <mli...@suse.cz>
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 <mli...@suse.cz>
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