From febdccc853317049322fbaa90bfd40fa04410cbb Mon Sep 17 00:00:00 2001 From: cagney Date: Tue, 30 Mar 2010 18:23:53 +0000 Subject: [PATCH] - for stack tests use a pragma to reduce optimization level - frysk-0.4-nooptimize - prefer a variable definition over its declaration - frysk-0.4-skipdecl --- frysk-0.4-nooptimize.patch | 56 ++++++++++++++++++++++++++++++++++++++ frysk-0.4-skipdecl.patch | 36 ++++++++++++++++++++++++ frysk.spec | 12 +++++++- 3 files changed, 103 insertions(+), 1 deletion(-) create mode 100644 frysk-0.4-nooptimize.patch create mode 100644 frysk-0.4-skipdecl.patch diff --git a/frysk-0.4-nooptimize.patch b/frysk-0.4-nooptimize.patch new file mode 100644 index 0000000..7b7be86 --- /dev/null +++ b/frysk-0.4-nooptimize.patch @@ -0,0 +1,56 @@ +diff -up frysk-0.4/frysk-core/frysk/pkglibdir/funit-long-stack.c.nooptimize frysk-0.4/frysk-core/frysk/pkglibdir/funit-long-stack.c +--- frysk-0.4/frysk-core/frysk/pkglibdir/funit-long-stack.c.nooptimize 2010-03-30 11:36:32.000000000 -0400 ++++ frysk-0.4/frysk-core/frysk/pkglibdir/funit-long-stack.c 2010-03-30 11:41:25.000000000 -0400 +@@ -1,4 +1,5 @@ + #include ++#pragma GCC optimize "O1" + + void crash(){ + char* c = 0; +diff -up frysk-0.4/frysk-core/frysk/pkglibdir/funit-stack-outlined.c.nooptimize frysk-0.4/frysk-core/frysk/pkglibdir/funit-stack-outlined.c +--- frysk-0.4/frysk-core/frysk/pkglibdir/funit-stack-outlined.c.nooptimize 2010-03-30 11:24:03.000000000 -0400 ++++ frysk-0.4/frysk-core/frysk/pkglibdir/funit-stack-outlined.c 2010-03-30 11:41:31.000000000 -0400 +@@ -38,6 +38,7 @@ + // exception. + + #include ++#pragma GCC optimize "O1" + + // See also funit-stack-inlined.c + +diff -up frysk-0.4/frysk-core/frysk/pkglibdir/funit-stacks.c.nooptimize frysk-0.4/frysk-core/frysk/pkglibdir/funit-stacks.c +--- frysk-0.4/frysk-core/frysk/pkglibdir/funit-stacks.c.nooptimize 2010-03-30 11:41:52.000000000 -0400 ++++ frysk-0.4/frysk-core/frysk/pkglibdir/funit-stacks.c 2010-03-30 11:44:10.000000000 -0400 +@@ -1,4 +1,5 @@ + #include ++#pragma GCC optimize "O1" + + void fourth(int param1, int param2, int param3, char* param4){ + char* c = 0; +diff -up frysk-0.4/frysk-core/frysk/pkglibdir/funit-stacks-exit.c.nooptimize frysk-0.4/frysk-core/frysk/pkglibdir/funit-stacks-exit.c +--- frysk-0.4/frysk-core/frysk/pkglibdir/funit-stacks-exit.c.nooptimize 2010-03-30 11:42:00.000000000 -0400 ++++ frysk-0.4/frysk-core/frysk/pkglibdir/funit-stacks-exit.c 2010-03-30 11:42:55.000000000 -0400 +@@ -1,4 +1,5 @@ + #include ++#pragma GCC optimize "O1" + + void fourth(){ + exit(1); +diff -up frysk-0.4/frysk-core/frysk/pkglibdir/funit-stacks-linenum.c.nooptimize frysk-0.4/frysk-core/frysk/pkglibdir/funit-stacks-linenum.c +--- frysk-0.4/frysk-core/frysk/pkglibdir/funit-stacks-linenum.c.nooptimize 2010-03-30 11:42:05.000000000 -0400 ++++ frysk-0.4/frysk-core/frysk/pkglibdir/funit-stacks-linenum.c 2010-03-30 11:43:10.000000000 -0400 +@@ -1,4 +1,5 @@ + #include ++#pragma GCC optimize "O1" + + void first(int param1, int param2){ + char* a = 0; +diff -up frysk-0.4/frysk-core/frysk/pkglibdir/funit-stacks-values.c.nooptimize frysk-0.4/frysk-core/frysk/pkglibdir/funit-stacks-values.c +--- frysk-0.4/frysk-core/frysk/pkglibdir/funit-stacks-values.c.nooptimize 2010-03-30 11:42:08.000000000 -0400 ++++ frysk-0.4/frysk-core/frysk/pkglibdir/funit-stacks-values.c 2010-03-30 11:59:03.000000000 -0400 +@@ -1,4 +1,5 @@ + #include ++#pragma GCC optimize "O1" + + void third(volatile int param3){ + int var4 = 4;asm volatile ("" : "+m" (var4)); diff --git a/frysk-0.4-skipdecl.patch b/frysk-0.4-skipdecl.patch new file mode 100644 index 0000000..1176655 --- /dev/null +++ b/frysk-0.4-skipdecl.patch @@ -0,0 +1,36 @@ +diff -up frysk-0.4/frysk-core/frysk/scopes/Scope.java.skipdecl frysk-0.4/frysk-core/frysk/scopes/Scope.java +--- frysk-0.4/frysk-core/frysk/scopes/Scope.java.skipdecl 2010-03-30 14:04:28.000000000 -0400 ++++ frysk-0.4/frysk-core/frysk/scopes/Scope.java 2010-03-30 14:02:55.000000000 -0400 +@@ -48,6 +48,7 @@ import lib.dwfl.DwarfDie; + import frysk.debuginfo.DebugInfoFrame; + import frysk.debuginfo.TypeFactory; + import frysk.value.ObjectDeclaration; ++import lib.dwfl.DwAt; + + /** + * A class to represent a Scope. +@@ -215,14 +216,24 @@ public class Scope + public ObjectDeclaration getDeclaredObjectByName(String name){ + + ObjectDeclaration objectDeclaration = null; ++ ObjectDeclaration declaration = null; + + Iterator iterator = this.getObjectDeclarations().iterator(); + while (iterator.hasNext()) { + objectDeclaration = (ObjectDeclaration) iterator.next(); + if(objectDeclaration.getName().equals(name)){ ++ if (objectDeclaration instanceof Variable ++ && ((Variable)objectDeclaration).getVariableDie().getAttrBoolean(DwAt.DECLARATION)) { ++ // If it is only a declaration keep searching; ++ // hopefully there's also a definition. ++ declaration = objectDeclaration; ++ continue; ++ } + return objectDeclaration; + } + } ++ if (declaration != null) ++ return declaration; + + iterator = this.getEnums().iterator(); + while (iterator.hasNext()) { diff --git a/frysk.spec b/frysk.spec index 035dc2e..625eb4d 100644 --- a/frysk.spec +++ b/frysk.spec @@ -1,7 +1,7 @@ Summary: Execution analysis and debugging tool-suite. Name: frysk Version: 0.4 -Release: 24%{?dist} +Release: 25%{?dist} # antlrv2 is Public Domain; antlrv3 is BSD. # getopt is GPLv2 with exception @@ -33,6 +33,8 @@ Patch10: frysk-0.4-noelfmem.patch Patch11: frysk-0.4-gccjint.patch Patch12: frysk-0.4-taskstoperr.patch Patch13: frysk-0.4-lostfork.patch +Patch14: frysk-0.4-nooptimize.patch +Patch15: frysk-0.4-skipdecl.patch Patch100: frysk-0.4-aclocaljavac.patch @@ -163,6 +165,8 @@ mv frysk-core/frysk/util/ProcStopUtil.java frysk-core/frysk/util/TaskStopUtil.ja %patch11 -p1 -z .gccjint %patch12 -p1 -z .taskstoperr %patch13 -p1 -z .lostfork +%patch14 -p1 -z .nooptimize +%patch15 -p1 -z .skipdecl %if %{fedora}0 >= 130 %patch100 -p1 -z .aclocaljavac @@ -354,6 +358,12 @@ rm -rf %{buildroot} %{_mandir}/man1/frysk.1.gz %changelog +* Tue Mar 30 2010 Andrew Cagney - 0.4-25 +- for stack tests use a pragma to reduce optimization level - + frysk-0.4-nooptimize +- prefer a variable definition over its declaration - + frysk-0.4-skipdecl + * Tue Mar 30 2010 Andrew Cagney - 0.4-24 - for fcatch et.al. don't exit when outstanding child events - frysk-0.4-lostfork.patch