aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMartin Liska <mliska@suse.cz>2020-05-07 09:38:16 +0200
committerMartin Liska <mliska@suse.cz>2020-05-07 09:38:16 +0200
commitb24fc8a692e3f2a8bd89d7ccb230ad3c72323e73 (patch)
tree2eecb5b396e6403de247cb8db9b614917f25b881
parent6760cb478451203ca1213d157b93253f1d5013e4 (diff)
downloadgcc-b24fc8a692e3f2a8bd89d7ccb230ad3c72323e73.zip
gcc-b24fc8a692e3f2a8bd89d7ccb230ad3c72323e73.tar.gz
gcc-b24fc8a692e3f2a8bd89d7ccb230ad3c72323e73.tar.bz2
lto-wrapper: split arguments of getenv ("MAKE").
* lto-wrapper.c: Split arguments of MAKE environment variable.
-rw-r--r--gcc/ChangeLog5
-rw-r--r--gcc/lto-wrapper.c27
2 files changed, 23 insertions, 9 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index e11bbce..89d4ea3 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,8 @@
+2020-05-07 Martin Liska <mliska@suse.cz>
+
+ * lto-wrapper.c: Split arguments of MAKE environment
+ variable.
+
2020-05-07 Uroš Bizjak <ubizjak@gmail.com>
* config/alpha/alpha.c (alpha_atomic_assign_expand_fenv): Use
diff --git a/gcc/lto-wrapper.c b/gcc/lto-wrapper.c
index 19d0c22..e34b697 100644
--- a/gcc/lto-wrapper.c
+++ b/gcc/lto-wrapper.c
@@ -1894,23 +1894,32 @@ cont:
putenv (xstrdup ("MAKEFLAGS="));
putenv (xstrdup ("MFLAGS="));
}
- new_argv[0] = getenv ("MAKE");
- if (!new_argv[0])
- new_argv[0] = "make";
- new_argv[1] = "-f";
- new_argv[2] = makefile;
- i = 3;
+
+ char **make_argv = buildargv (getenv ("MAKE"));
+ if (make_argv)
+ {
+ for (unsigned argc = 0; make_argv[argc]; argc++)
+ obstack_ptr_grow (&argv_obstack, make_argv[argc]);
+ }
+ else
+ obstack_ptr_grow (&argv_obstack, "make");
+
+ obstack_ptr_grow (&argv_obstack, "-f");
+ obstack_ptr_grow (&argv_obstack, makefile);
if (!jobserver)
{
snprintf (jobs, 31, "-j%ld",
auto_parallel ? nthreads_var : parallel);
- new_argv[i++] = jobs;
+ obstack_ptr_grow (&argv_obstack, jobs);
}
- new_argv[i++] = "all";
- new_argv[i++] = NULL;
+ obstack_ptr_grow (&argv_obstack, "all");
+ obstack_ptr_grow (&argv_obstack, NULL);
+ new_argv = XOBFINISH (&argv_obstack, const char **);
+
pex = collect_execute (new_argv[0], CONST_CAST (char **, new_argv),
NULL, NULL, PEX_SEARCH, false);
do_wait (new_argv[0], pex);
+ freeargv (make_argv);
maybe_unlink (makefile);
makefile = NULL;
for (i = 0; i < nr; ++i)