From 26e0e97b71007a5950bce61cf48bbc67afe784a1 Mon Sep 17 00:00:00 2001 From: Iain Sandoe Date: Wed, 22 Aug 2018 12:12:46 +0000 Subject: [PATCH] Make the gcc-ar,nm, strip tools respond correctly to --help and --version when there's no plugin built. MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit 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 --- gcc/ChangeLog | 6 ++++++ gcc/gcc-ar.c | 16 ++++++++++++++-- 2 files changed, 20 insertions(+), 2 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 0b8adf5..b53ed79 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,5 +1,11 @@ 2018-08-22 Iain Sandoe + PR other/704 + * gcc-ar.c (main): Don’t try to invoke the plug-in if we’re not + building it. + +2018-08-22 Iain Sandoe + * config/darwin10.h (LINK_GCC_C_SEQUENCE_SPEC): Adjust to use the Darwin10-specific unwinder-shim. * config/darwin12.h (LINK_GCC_C_SEQUENCE_SPEC): Remove. diff --git a/gcc/gcc-ar.c b/gcc/gcc-ar.c index 83a9e34..82e0e69 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? */ -- 2.7.4