diff options
author | Martin Liska <mliska@suse.cz> | 2020-05-07 09:38:16 +0200 |
---|---|---|
committer | Martin Liska <mliska@suse.cz> | 2020-05-07 09:38:16 +0200 |
commit | b24fc8a692e3f2a8bd89d7ccb230ad3c72323e73 (patch) | |
tree | 2eecb5b396e6403de247cb8db9b614917f25b881 | |
parent | 6760cb478451203ca1213d157b93253f1d5013e4 (diff) | |
download | gcc-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/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/lto-wrapper.c | 27 |
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) |