Andi Kleen <a...@firstfloor.org> writes:

PING!

> Andi Kleen <a...@firstfloor.org> writes:
>
> PING^2 !
>
> Would be nice to make slim bootstrap work, it really speeds it up quite
> a bit.
>
>> From: Andi Kleen <a...@linux.intel.com>
>>
>> To use gcc-{ar,ranlib} for boot strap we need to add a -B option
>> to the tool. Since ar has weird and unusual argument conventions
>> implement the code by hand instead of using any libraries.
>>
>> v2: Fix typo
>>
>> gcc/:
>>
>> 2014-08-04  Andi Kleen  <a...@linux.intel.com>
>>
>>      * gcc-ar.c (main): Support -B option.
>> ---
>>  gcc/gcc-ar.c | 41 +++++++++++++++++++++++++++++++++++++++++
>>  1 file changed, 41 insertions(+)
>>
>> diff --git a/gcc/gcc-ar.c b/gcc/gcc-ar.c
>> index aebaa92..70bf222 100644
>> --- a/gcc/gcc-ar.c
>> +++ b/gcc/gcc-ar.c
>> @@ -132,9 +132,50 @@ main (int ac, char **av)
>>    const char **nargv;
>>    bool is_ar = !strcmp (PERSONALITY, "ar");
>>    int exit_code = FATAL_EXIT_CODE;
>> +  int i;
>>  
>>    setup_prefixes (av[0]);
>>  
>> +  /* Not using getopt for now.  */
>> +  for (i = 0; i < ac; i++)
>> +      if (!strncmp (av[i], "-B", 2))
>> +    {
>> +      const char *arg = av[i] + 2;
>> +      const char *end;
>> +
>> +      memmove (av + i, av + i + 1, sizeof (char *) * ((ac + 1) - i));
>> +      ac--;
>> +      if (*arg == 0)
>> +        {
>> +          arg = av[i + 1];
>> +          if (!arg)
>> +            {
>> +              fprintf (stderr, "Usage: gcc-ar [-B prefix] ar arguments 
>> ...\n");
>> +              exit (EXIT_FAILURE);
>> +            }
>> +          memmove (av + i, av + i + 1, sizeof (char *) * ((ac + 1) - i));
>> +          ac--;
>> +          i++;
>> +        }
>> +
>> +      for (end = arg; *end; end++)
>> +        ;
>> +      end--;
>> +      if (end > arg && *end != '/')
>> +        {
>> +          char *newarg = (char *)xmalloc (strlen(arg) + 2);
>> +
>> +          strcpy (newarg, arg);
>> +          strcat (newarg, "/");
>> +          arg = newarg;
>> +        }
>> +
>> +      add_prefix (&path, arg);
>> +      add_prefix (&target_path, arg);
>> +      break;
>> +    }
>> +
>> +
>>    /* Find the GCC LTO plugin */
>>    plugin = find_a_file (&target_path, LTOPLUGINSONAME, R_OK);
>>    if (!plugin)

-- 
a...@linux.intel.com -- Speaking for myself only

Reply via email to