diff options
author | Iain Sandoe <iain@sandoe.co.uk> | 2018-08-22 12:12:46 +0000 |
---|---|---|
committer | Iain Sandoe <iains@gcc.gnu.org> | 2018-08-22 12:12:46 +0000 |
commit | 26e0e97b71007a5950bce61cf48bbc67afe784a1 (patch) | |
tree | a84d5da57f63db3d36ad9f2a406b099faa9a399a /gcc/gcc-ar.c | |
parent | 7c1dcf501277503dc2983e9257c7779279ae0ca8 (diff) |
Make the gcc-ar,nm, strip tools respond correctly to --help and --version
when there's no plugin built.
gcc/
PR other/704
* gcc-ar.c (main): Don’t try to invoke the plug-in if we’re not
building it.
From-SVN: r263768
Diffstat (limited to 'gcc/gcc-ar.c')
-rw-r--r-- | gcc/gcc-ar.c | 16 |
1 files changed, 14 insertions, 2 deletions
diff --git a/gcc/gcc-ar.c b/gcc/gcc-ar.c index 83a9e34b7af..82e0e69ab76 100644 --- a/gcc/gcc-ar.c +++ b/gcc/gcc-ar.c @@ -126,7 +126,9 @@ int main (int ac, char **av) { const char *exe_name; +#if HAVE_LTO_PLUGIN > 0 char *plugin; +#endif int k, status, err; const char *err_msg; const char **nargv; @@ -177,7 +179,7 @@ main (int ac, char **av) break; } - +#if HAVE_LTO_PLUGIN > 0 /* Find the GCC LTO plugin */ plugin = find_a_file (&target_path, LTOPLUGINSONAME, R_OK); if (!plugin) @@ -185,6 +187,7 @@ main (int ac, char **av) fprintf (stderr, "%s: Cannot find plugin '%s'\n", av[0], LTOPLUGINSONAME); exit (1); } +#endif /* Find the wrapped binutils program. */ exe_name = find_a_file (&target_path, PERSONALITY, X_OK); @@ -203,9 +206,11 @@ main (int ac, char **av) } } - /* Create new command line with plugin */ + /* Create new command line with plugin - if we have one, otherwise just + copy the command through. */ nargv = XCNEWVEC (const char *, ac + 4); nargv[0] = exe_name; +#if HAVE_LTO_PLUGIN > 0 nargv[1] = "--plugin"; nargv[2] = plugin; if (is_ar && av[1] && av[1][0] != '-') @@ -213,6 +218,13 @@ main (int ac, char **av) for (k = 1; k < ac; k++) nargv[2 + k] = av[k]; nargv[2 + k] = NULL; +#else + if (is_ar && av[1] && av[1][0] != '-') + av[1] = concat ("-", av[1], NULL); + for (k = 1; k < ac; k++) + nargv[k] = av[k]; + nargv[k] = NULL; +#endif /* Run utility */ /* ??? the const is misplaced in pex_one's argv? */ |