Hi,

This is for google-4_6 branch only.

It fixed a few issues:
(1) not passing pedantic flag from primary module to aux;
(2) not using pipe to generate iro file even -pipe specified;
(3) fix the case like -D"foo bar" option in auxiliary module.

Tested google internal benchmarks.

2012-06-06  Rong Xu  <x...@google.com>

        * gcc.c (RIPA_AUX_MOD_SPEC):not passing pedantic flag to aux
          modules.
          (ripa_invoke_as):not using pipe for iro file.
          (ripa_build_aux_mod_func):-D define can have space.
         

Index: gcc.c
===================================================================
--- gcc.c       (revision 188282)
+++ gcc.c       (working copy)
@@ -708,7 +708,7 @@ proper position among the other output files.  */
 #ifndef RIPA_AUX_MOD_SPEC
 # define RIPA_AUX_MOD_SPEC "\
  %{!Q:-quiet} %i -dumpbase %B_aux -auxbase %b\
- %{W*&pedantic*} %{w} %{fdump*} %{fopt-info*}\
+ %{w} %{fdump*} %{fopt-info*}\
  %{Qn:-fno-ident} %{Qy:} %{fripa*} %{fprofile*}\
  %{!fprofile-use*:-fprofile-use} -o %u.irs"
 #endif
@@ -759,7 +759,7 @@ static const char *ripa_asm_options =
 
 /* specs to call asm in streaming lipo.  */
 static const char *ripa_invoke_as =
-"|\n as %(ripa_asm_options) %U.irs %A\n ";
+"\n as %(ripa_asm_options) %U.irs %A\n ";
 
 /* specs to call asm in streaming lipo. This is for the primary ir assembly
    to ir object.  */
@@ -8619,7 +8619,7 @@ ripa_build_aux_mod_func (int argc, const char **ar
 
         case 'D': /* cpp defines */
           ++num_d;
-          str = strtok (buf+2, STR_DELIMITERS);
+          str = strtok (buf+2, "\n");
           strcpy (str_buf, "-");
           strcat (str_buf, str);
           store_arg (xstrdup (str_buf), 0, 0);

--
This patch is available for review at http://codereview.appspot.com/6297057

Reply via email to