https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91244
Bug ID: 91244
Summary: gcc-ar prepends --plugin option thus triggers binutils
getopt_long bug 13256
Product: gcc
Version: 9.1.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: driver
Assignee: unassigned at gcc dot gnu.org
Reporter: szotsaki at gmail dot com
Target Milestone: ---
"ar" seemingly doesn't accept options after a longopt (in our case "--plugin")
which makes it impossible to read instructions from command line or from a file
if "--plugin" is the first parameter. See
https://sourceware.org/bugzilla/show_bug.cgi?id=13256 for details.
Therefore I suggest appending the "--plugin" parameter to the command line
arguments.
Here is a quick patch against 9.1.0 to show what I thought of:
--- gcc/gcc-ar.c 2019-07-22 17:03:21.267931991 +0200
+++ gcc/gcc-ar.c 2019-07-24 09:41:27.168851170 +0200
@@ -211,13 +211,13 @@
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] != '-')
av[1] = concat ("-", av[1], NULL);
for (k = 1; k < ac; k++)
- nargv[2 + k] = av[k];
- nargv[2 + k] = NULL;
+ nargv[k] = av[k];
+ nargv[k + 0] = "--plugin";
+ nargv[k + 1] = plugin;
+ nargv[k + 2] = NULL;
#else
if (is_ar && av[1] && av[1][0] != '-')
av[1] = concat ("-", av[1], NULL);
A somehow related ticket for @file reading: Bug 77576