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(-)
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
@@ -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
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