/* Wrapper for ar/ranlib/nm to pass the LTO plugin.
- Copyright (C) 2011-2016 Free Software Foundation, Inc.
+ Copyright (C) 2011-2019 Free Software Foundation, Inc.
Contributed by Andi Kleen.
This file is part of GCC.
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;
len = strlen (arg);
if (len > 0)
- len--;
+ len--;
end = arg + len;
/* Always add a dir separator for the prefix list. */
break;
}
-
+#if HAVE_LTO_PLUGIN > 0
/* Find the GCC LTO plugin */
plugin = find_a_file (&target_path, LTOPLUGINSONAME, R_OK);
if (!plugin)
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);
}
}
- /* 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] != '-')
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? */