[PATCH 1/4] engine.pl: Fix a recent breakage of the buildsystem generator

Subsystems: the rest

STALE3737d

5 messages, 3 authors, 2016-06-15 · open the first message on its own page

[PATCH 1/4] engine.pl: Fix a recent breakage of the buildsystem generator

From: Ramsay Jones <hidden>
Date: 2016-06-15 22:48:04

Commit ade2ca0c (Do not try to remove directories when removing
old links, 27-10-2009) added an expression to a 'test' using an
'-o' or connective. This resulted in the buildsystem generator
mistaking the conditional 'rm' for a linker command. In order
to fix the breakage, we filter the out the conditional 'rm'
commands before attempting to identify other commands.

Signed-off-by: Ramsay Jones <redacted>
---
 contrib/buildsystems/engine.pl |    5 +++++
 1 files changed, 5 insertions(+), 0 deletions(-)
diff --git a/contrib/buildsystems/engine.pl b/contrib/buildsystems/engine.pl
index d506717..245af73 100644
--- a/contrib/buildsystems/engine.pl
+++ b/contrib/buildsystems/engine.pl
@@ -135,6 +135,11 @@ sub parseMakeOutput
             }
         } while($ate_next);
 
+        if ($text =~ /^test / && $text =~ /|| rm -f /) {
+            # commands removing executables, if they exist
+            next;
+        }
+
         if($text =~ / -c /) {
             # compilation
             handleCompileLine($text, $line);
-- 
1.6.6

Re: [PATCH 1/4] engine.pl: Fix a recent breakage of the buildsystem generator

From: Pete Harlan <hidden>
Date: 2016-06-15 22:48:04

On 01/20/2010 11:23 AM, Ramsay Jones wrote:
quoted hunk
diff --git a/contrib/buildsystems/engine.pl b/contrib/buildsystems/engine.pl
index d506717..245af73 100644
--- a/contrib/buildsystems/engine.pl
+++ b/contrib/buildsystems/engine.pl
@@ -135,6 +135,11 @@ sub parseMakeOutput
             }
         } while($ate_next);
 
+        if ($text =~ /^test / && $text =~ /|| rm -f /) {
That test on the right needs to escape its pipes or it will always match.

--Pete
+            # commands removing executables, if they exist
+            next;
+        }
+
         if($text =~ / -c /) {
             # compilation
             handleCompileLine($text, $line);

Re: [PATCH 1/4] engine.pl: Fix a recent breakage of the buildsystem generator

From: Sebastian Schuberth <hidden>
Date: 2016-06-15 22:48:04

On 20.01.2010 20:23, Ramsay Jones wrote:

 > '-o' or connective. This resulted in the buildsystem generator
 > mistaking the conditional 'rm' for a linker command. In order

Thanks for spotting the cause of this! Some comments:

1. How about deleting lines 183-185 in same run? That commented out 
code, too, is missing the escapes for the pipes that Pete mentioned anyway.

-#        } elsif ($text =~ /^test / && $text =~ /|| rm -f /) {
-#            # commands removing executables, if they exist
-#


2. Couldn't we reduce the test to just

+        if ($text =~ /^test /) {
+            # options to test may be mistaken for linker options
+            next;
+        }
+

3. If the above won't do for some reason, I'd still prefer something like

+        if ($text =~ /^test / && $text =~ / -o /) {
+            # options to test may be mistaken for linker options
+            next;
+        }
+

as it makes more clear what's the problem in such lines.

-- 
Sebastian Schuberth

Re: [PATCH 1/4] engine.pl: Fix a recent breakage of the buildsystem generator

From: Ramsay Jones <hidden>
Date: 2016-06-15 22:48:05

Pete Harlan wrote:
On 01/20/2010 11:23 AM, Ramsay Jones wrote:
quoted
diff --git a/contrib/buildsystems/engine.pl b/contrib/buildsystems/engine.pl
index d506717..245af73 100644
--- a/contrib/buildsystems/engine.pl
+++ b/contrib/buildsystems/engine.pl
@@ -135,6 +135,11 @@ sub parseMakeOutput
             }
         } while($ate_next);
 
+        if ($text =~ /^test / && $text =~ /|| rm -f /) {
That test on the right needs to escape its pipes or it will always match.
Heh, well spotted!
As you may have already noticed, I copy/pasted the code from the comment
further down in this function, but didn't take enough care in doing so...
Oops! ;-)

The obvious solution, also suggested later by Sebastion, is to simply
remove the second regex from the test since it does not alter the
outcome (and still fixes the problem)...

ATB,
Ramsay Jones

Re: [PATCH 1/4] engine.pl: Fix a recent breakage of the buildsystem generator

From: Ramsay Jones <hidden>
Date: 2016-06-15 22:48:05

Sebastian Schuberth wrote:
On 20.01.2010 20:23, Ramsay Jones wrote:

 > '-o' or connective. This resulted in the buildsystem generator
 > mistaking the conditional 'rm' for a linker command. In order

Thanks for spotting the cause of this! Some comments:

1. How about deleting lines 183-185 in same run? That commented out 
code, too, is missing the escapes for the pipes that Pete mentioned anyway.

-#        } elsif ($text =~ /^test / && $text =~ /|| rm -f /) {
-#            # commands removing executables, if they exist
-#
OK, will do.
2. Couldn't we reduce the test to just

+        if ($text =~ /^test /) {
+            # options to test may be mistaken for linker options
+            next;
+        }
+
Yes, good idea.  I will send a new version of the patch soon.

Thanks!

ATB,
Ramsay Jones
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help