James E Wilson wrote:

This revised patch does appear to fix the only complaint that Geoff had
with the original patch.  I think it is OK with the typo fixed and the
addition of a doc change.

OK, done.
Thank you.

Peter
2005-08-??  Peter O'Gorman  <[EMAIL PROTECTED]>

        PR 21366
        * gcc.c (process_command): Check the argument to -b has a dash.
        * doc/invoke.texi: Update -b and -V docs.

Index: gcc/gcc.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/gcc.c,v
retrieving revision 1.469
diff -u -3 -p -u -r1.469 gcc.c
--- gcc/gcc.c   3 Aug 2005 23:35:06 -0000       1.469
+++ gcc/gcc.c   5 Aug 2005 03:54:08 -0000
@@ -3175,9 +3175,12 @@ process_command (int argc, const char **
     }
 
   /* If there is a -V or -b option (or both), process it now, before
-     trying to interpret the rest of the command line.  */
+     trying to interpret the rest of the command line. 
+     Use heuristic that all configuration names must have at least
+     one dash '-'. This allows us to pass options starting with -b.  */
   if (argc > 1 && argv[1][0] == '-'
-      && (argv[1][1] == 'V' || argv[1][1] == 'b'))
+      && (argv[1][1] == 'V' || 
+        ((argv[1][1] == 'b') && (NULL != strchr(argv[1] + 2,'-')))))
     {
       const char *new_version = DEFAULT_TARGET_VERSION;
       const char *new_machine = DEFAULT_TARGET_MACHINE;
@@ -3187,7 +3190,8 @@ process_command (int argc, const char **
       int baselen;
 
       while (argc > 1 && argv[1][0] == '-'
-            && (argv[1][1] == 'V' || argv[1][1] == 'b'))
+            && (argv[1][1] == 'V' ||
+               ((argv[1][1] == 'b') && ( NULL != strchr(argv[1] + 2,'-')))))
        {
          char opt = argv[1][1];
          const char *arg;
@@ -3608,6 +3612,7 @@ warranty; not even for MERCHANTABILITY o
          switch (c)
            {
            case 'b':
+             if (NULL == strchr(argv[i] + 2, '-')) break;
            case 'V':
              fatal ("'-%c' must come at the start of the command line", c);
              break;
Index: gcc/doc/invoke.texi
===================================================================
RCS file: /cvs/gcc/gcc/gcc/doc/invoke.texi,v
retrieving revision 1.664
diff -u -3 -p -u -r1.664 invoke.texi
--- gcc/doc/invoke.texi 3 Aug 2005 16:35:10 -0000       1.664
+++ gcc/doc/invoke.texi 5 Aug 2005 03:54:14 -0000
@@ -6943,14 +6943,16 @@ The argument @var{machine} specifies the
 The value to use for @var{machine} is the same as was specified as the
 machine type when configuring GCC as a cross-compiler.  For
 example, if a cross-compiler was configured with @samp{configure
-i386v}, meaning to compile for an 80386 running System V, then you
-would specify @option{-b i386v} to run that cross compiler.
+arm-elf}, meaning to compile for an arm processor with elf binaries,
+then you would specify @option{-b arm-elf} to run that cross compiler.
+Because there are other options beginning with @option{-b}, the
+configuration must contain a hyphen. 
 
 @item -V @var{version}
 @opindex V
 The argument @var{version} specifies which version of GCC to run.
 This is useful when multiple versions are installed.  For example,
[EMAIL PROTECTED] might be @samp{2.0}, meaning to run GCC version 2.0.
[EMAIL PROTECTED] might be @samp{4.0}, meaning to run GCC version 4.0.
 @end table
 
 The @option{-V} and @option{-b} options work by running the

Reply via email to