[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-commits
Subject:    icecream/client
From:       Michael Matz <matz () kde ! org>
Date:       2008-08-11 13:46:41
Message-ID: 1218462401.446666.2753.nullmailer () svn ! kde ! org
[Download RAW message or body]

SVN commit 845331 by matz:

Only localize job if we find -Wa,.*-a[a-z]*= in an argument.  Otherwise
we would also force local on things like -Wa,-mtune=something.
Thanks Dmitry Baryshkov for the report and initial patch.
CCMAIL: dbaryshkov@gmail.com


 M  +19 -5     arg.cpp  


--- trunk/icecream/client/arg.cpp #845330:845331
@@ -153,11 +153,25 @@
             } else if (str_startswith("-Wa,", a)) {
                 /* Options passed through to the assembler.  The only one we
                  * need to handle so far is -al=output, which directs the
-                 * listing to the named file and cannot be remote.  Parsing
-                 * all the options would be complex since you can give several
-                 * comma-separated assembler options after -Wa, but looking
-                 * for '=' should be safe. */
-                if (strchr(a, '=')) {
+                 * listing to the named file and cannot be remote.  There are
+		 * some other options which also refer to local files,
+		 * but most of them make no sense when called via the compiler,
+		 * hence we only look for -a[a-z]*= and localize the job if we
+		 * find it. */
+                const char *pos = a;
+                bool local = false;
+                while ((pos = strstr(pos+1, "-a"))) {
+                    pos += 2;
+                    while (*pos >= 'a' && *pos <= 'z')
+                        pos++;
+                    if (*pos == '=') {
+                        local = true;
+                        break;
+                    }
+		    if (!*pos)
+		        break;
+		}
+                if (local) {
                     always_local = true;
                     args.append(a, Arg_Local);
                 } else
[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic