components/make/patches/30612.patch
author Rich Burridge <rich.burridge@oracle.com>
Mon, 18 Mar 2013 14:10:55 -0700
changeset 1219 cdd8157bab31
parent 1050 dd6b3aa7a925
permissions -rw-r--r--
PSARC 2012/095 pbzip2 version 1.1.6 - parallel bzip2 15636394 SUNBT6943710 Parallel bzip2 - pbzip2 - should be part of the Solaris distro
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
1050
dd6b3aa7a925 15856019 Archive library support broken in gmake 3.82
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff changeset
     1
This patch is taken from:
dd6b3aa7a925 15856019 Archive library support broken in gmake 3.82
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff changeset
     2
http://cvs.savannah.gnu.org/viewvc/make/read.c?root=make&r1=1.193&r2=1.194
dd6b3aa7a925 15856019 Archive library support broken in gmake 3.82
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff changeset
     3
dd6b3aa7a925 15856019 Archive library support broken in gmake 3.82
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff changeset
     4
Fix various errors parsing archives with multiple objects in the parenthesis,
dd6b3aa7a925 15856019 Archive library support broken in gmake 3.82
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff changeset
     5
as well as wildcards. Fixes Savannah bug #30612.
dd6b3aa7a925 15856019 Archive library support broken in gmake 3.82
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff changeset
     6
dd6b3aa7a925 15856019 Archive library support broken in gmake 3.82
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff changeset
     7
https://savannah.gnu.org/bugs/?30612
dd6b3aa7a925 15856019 Archive library support broken in gmake 3.82
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff changeset
     8
dd6b3aa7a925 15856019 Archive library support broken in gmake 3.82
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff changeset
     9
Second patch is a followup for that bug as well:
dd6b3aa7a925 15856019 Archive library support broken in gmake 3.82
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff changeset
    10
http://cvs.savannah.gnu.org/viewvc/make/read.c?root=make&r1=1.200&r2=1.201
dd6b3aa7a925 15856019 Archive library support broken in gmake 3.82
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff changeset
    11
dd6b3aa7a925 15856019 Archive library support broken in gmake 3.82
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff changeset
    12
--- a/read.c	2010/07/13 01:20:42	1.193
dd6b3aa7a925 15856019 Archive library support broken in gmake 3.82
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff changeset
    13
+++ b/read.c	2010/08/14 02:50:14	1.194
dd6b3aa7a925 15856019 Archive library support broken in gmake 3.82
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff changeset
    14
@@ -3028,7 +3028,7 @@
dd6b3aa7a925 15856019 Archive library support broken in gmake 3.82
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff changeset
    15
             {
dd6b3aa7a925 15856019 Archive library support broken in gmake 3.82
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff changeset
    16
               /* This looks like the first element in an open archive group.
dd6b3aa7a925 15856019 Archive library support broken in gmake 3.82
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff changeset
    17
                  A valid group MUST have ')' as the last character.  */
dd6b3aa7a925 15856019 Archive library support broken in gmake 3.82
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff changeset
    18
-              const char *e = p + nlen;
dd6b3aa7a925 15856019 Archive library support broken in gmake 3.82
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff changeset
    19
+              const char *e = p;
dd6b3aa7a925 15856019 Archive library support broken in gmake 3.82
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff changeset
    20
               do
dd6b3aa7a925 15856019 Archive library support broken in gmake 3.82
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff changeset
    21
                 {
dd6b3aa7a925 15856019 Archive library support broken in gmake 3.82
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff changeset
    22
                   e = next_token (e);
dd6b3aa7a925 15856019 Archive library support broken in gmake 3.82
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff changeset
    23
@@ -3084,19 +3084,19 @@
dd6b3aa7a925 15856019 Archive library support broken in gmake 3.82
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff changeset
    24
          Go to the next item in the string.  */
dd6b3aa7a925 15856019 Archive library support broken in gmake 3.82
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff changeset
    25
       if (flags & PARSEFS_NOGLOB)
dd6b3aa7a925 15856019 Archive library support broken in gmake 3.82
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff changeset
    26
         {
dd6b3aa7a925 15856019 Archive library support broken in gmake 3.82
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff changeset
    27
-          NEWELT (concat (2, prefix, tp));
dd6b3aa7a925 15856019 Archive library support broken in gmake 3.82
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff changeset
    28
+          NEWELT (concat (2, prefix, tmpbuf));
dd6b3aa7a925 15856019 Archive library support broken in gmake 3.82
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff changeset
    29
           continue;
dd6b3aa7a925 15856019 Archive library support broken in gmake 3.82
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff changeset
    30
         }
dd6b3aa7a925 15856019 Archive library support broken in gmake 3.82
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff changeset
    31
 
dd6b3aa7a925 15856019 Archive library support broken in gmake 3.82
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff changeset
    32
       /* If we get here we know we're doing glob expansion.
dd6b3aa7a925 15856019 Archive library support broken in gmake 3.82
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff changeset
    33
          TP is a string in tmpbuf.  NLEN is no longer used.
dd6b3aa7a925 15856019 Archive library support broken in gmake 3.82
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff changeset
    34
          We may need to do more work: after this NAME will be set.  */
dd6b3aa7a925 15856019 Archive library support broken in gmake 3.82
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff changeset
    35
-      name = tp;
dd6b3aa7a925 15856019 Archive library support broken in gmake 3.82
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff changeset
    36
+      name = tmpbuf;
dd6b3aa7a925 15856019 Archive library support broken in gmake 3.82
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff changeset
    37
 
dd6b3aa7a925 15856019 Archive library support broken in gmake 3.82
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff changeset
    38
       /* Expand tilde if applicable.  */
dd6b3aa7a925 15856019 Archive library support broken in gmake 3.82
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff changeset
    39
-      if (tp[0] == '~')
dd6b3aa7a925 15856019 Archive library support broken in gmake 3.82
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff changeset
    40
+      if (tmpbuf[0] == '~')
dd6b3aa7a925 15856019 Archive library support broken in gmake 3.82
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff changeset
    41
 	{
dd6b3aa7a925 15856019 Archive library support broken in gmake 3.82
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff changeset
    42
-	  tildep = tilde_expand (tp);
dd6b3aa7a925 15856019 Archive library support broken in gmake 3.82
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff changeset
    43
+	  tildep = tilde_expand (tmpbuf);
dd6b3aa7a925 15856019 Archive library support broken in gmake 3.82
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff changeset
    44
 	  if (tildep != 0)
dd6b3aa7a925 15856019 Archive library support broken in gmake 3.82
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff changeset
    45
             name = tildep;
dd6b3aa7a925 15856019 Archive library support broken in gmake 3.82
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff changeset
    46
 	}
dd6b3aa7a925 15856019 Archive library support broken in gmake 3.82
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff changeset
    47
@@ -3152,7 +3152,10 @@
dd6b3aa7a925 15856019 Archive library support broken in gmake 3.82
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff changeset
    48
             else
dd6b3aa7a925 15856019 Archive library support broken in gmake 3.82
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff changeset
    49
               {
dd6b3aa7a925 15856019 Archive library support broken in gmake 3.82
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff changeset
    50
                 /* We got a chain of items.  Attach them.  */
dd6b3aa7a925 15856019 Archive library support broken in gmake 3.82
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff changeset
    51
-                (*newp)->next = found;
dd6b3aa7a925 15856019 Archive library support broken in gmake 3.82
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff changeset
    52
+                if (*newp)
dd6b3aa7a925 15856019 Archive library support broken in gmake 3.82
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff changeset
    53
+                  (*newp)->next = found;
dd6b3aa7a925 15856019 Archive library support broken in gmake 3.82
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff changeset
    54
+                else
dd6b3aa7a925 15856019 Archive library support broken in gmake 3.82
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff changeset
    55
+                  *newp = found;
dd6b3aa7a925 15856019 Archive library support broken in gmake 3.82
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff changeset
    56
 
dd6b3aa7a925 15856019 Archive library support broken in gmake 3.82
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff changeset
    57
                 /* Find and set the new end.  Massage names if necessary.  */
dd6b3aa7a925 15856019 Archive library support broken in gmake 3.82
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff changeset
    58
                 while (1)
dd6b3aa7a925 15856019 Archive library support broken in gmake 3.82
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff changeset
    59
dd6b3aa7a925 15856019 Archive library support broken in gmake 3.82
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff changeset
    60
--- a/read.c	2011/05/07 14:36:12	1.200
dd6b3aa7a925 15856019 Archive library support broken in gmake 3.82
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff changeset
    61
+++ b/read.c	2011/06/12 16:22:04	1.201
dd6b3aa7a925 15856019 Archive library support broken in gmake 3.82
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff changeset
    62
@@ -3044,16 +3044,16 @@
dd6b3aa7a925 15856019 Archive library support broken in gmake 3.82
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff changeset
    63
                       nlen -= (n + 1) - tp;
dd6b3aa7a925 15856019 Archive library support broken in gmake 3.82
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff changeset
    64
                       tp = n + 1;
dd6b3aa7a925 15856019 Archive library support broken in gmake 3.82
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff changeset
    65
 
dd6b3aa7a925 15856019 Archive library support broken in gmake 3.82
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff changeset
    66
-                      /* If we have just "lib(", part of something like
dd6b3aa7a925 15856019 Archive library support broken in gmake 3.82
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff changeset
    67
-                         "lib( a b)", go to the next item.  */
dd6b3aa7a925 15856019 Archive library support broken in gmake 3.82
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff changeset
    68
-                      if (! nlen)
dd6b3aa7a925 15856019 Archive library support broken in gmake 3.82
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff changeset
    69
-                        continue;
dd6b3aa7a925 15856019 Archive library support broken in gmake 3.82
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff changeset
    70
-
dd6b3aa7a925 15856019 Archive library support broken in gmake 3.82
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff changeset
    71
                       /* We can stop looking now.  */
dd6b3aa7a925 15856019 Archive library support broken in gmake 3.82
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff changeset
    72
                       break;
dd6b3aa7a925 15856019 Archive library support broken in gmake 3.82
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff changeset
    73
                     }
dd6b3aa7a925 15856019 Archive library support broken in gmake 3.82
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff changeset
    74
                 }
dd6b3aa7a925 15856019 Archive library support broken in gmake 3.82
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff changeset
    75
               while (*e != '\0');
dd6b3aa7a925 15856019 Archive library support broken in gmake 3.82
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff changeset
    76
+
dd6b3aa7a925 15856019 Archive library support broken in gmake 3.82
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff changeset
    77
+              /* If we have just "lib(", part of something like "lib( a b)",
dd6b3aa7a925 15856019 Archive library support broken in gmake 3.82
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff changeset
    78
+                 go to the next item.  */
dd6b3aa7a925 15856019 Archive library support broken in gmake 3.82
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff changeset
    79
+              if (! nlen)
dd6b3aa7a925 15856019 Archive library support broken in gmake 3.82
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff changeset
    80
+                continue;
dd6b3aa7a925 15856019 Archive library support broken in gmake 3.82
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff changeset
    81
             }
dd6b3aa7a925 15856019 Archive library support broken in gmake 3.82
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff changeset
    82
         }
dd6b3aa7a925 15856019 Archive library support broken in gmake 3.82
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff changeset
    83