This is the mail archive of the gdb-patches@sources.redhat.com mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

[RFA]: testsuite/gdb.base/miscexprs.*


Hi,

on my target I have the same problem with the very small (2K) stack
when running miscexprs.exp as I already had with call-ar-st.exp.

I would like to propose the following patch, which adds the ability
to extend miscexprs.exp for targets, which also suffer from the
small stack.  I added a compiler switch to define the preprocessor
symbol `STORAGE', which by default is set to empty. A target
specific conditional can be used for setting it to "static", to
allow running the tests with the datastructures allocated in the
global data area instead of on the stack.  Obviously, miscexprs.exp
in the below incarantion just contains such a conditional only for
the target I'm just working on...

Corinna


2001-10-31  Corinna Vinschen  <vinschen@redhat.com>

	* gdb.base/miscexprs.c (main): Add usage of preprocessor
	symbol `STORAGE' to allow to choose the storage class of
	the local datastructures.
	* gdb.base/miscexprs.exp: Handle setting a `-DSTORAGE=...'
	compiler directive.

Index: miscexprs.c
===================================================================
RCS file: /cvs/src/src/gdb/testsuite/gdb.base/miscexprs.c,v
retrieving revision 1.1.1.2
diff -u -p -r1.1.1.2 miscexprs.c
--- miscexprs.c	1999/04/26 18:27:11	1.1.1.2
+++ miscexprs.c	2001/10/31 16:43:01
@@ -7,27 +7,27 @@ marker1 ()
 int
 main ()
 {
-  struct {
+  STORAGE struct {
     char c[100];
   } cbig;
 
-  struct {
+  STORAGE struct {
     int i[800];
   } ibig;
 
-  struct {
+  STORAGE struct {
     long l[900];
   } lbig;
 
-  struct {
+  STORAGE struct {
     float f[200];
   } fbig;
 
-  struct {
+  STORAGE struct {
     double d[300];
   } dbig;
 
-  struct {
+  STORAGE struct {
     short s[400];
   } sbig;
 
Index: miscexprs.exp
===================================================================
RCS file: /cvs/src/src/gdb/testsuite/gdb.base/miscexprs.exp,v
retrieving revision 1.5
diff -u -p -r1.5 miscexprs.exp
--- miscexprs.exp	2001/03/06 08:21:50	1.5
+++ miscexprs.exp	2001/10/31 16:43:01
@@ -30,6 +30,17 @@ if $tracelevel then {
         strace $tracelevel
         }
 
+# By default, the datastructures are allocated on the stack.  For targets
+# with very small stack, that will not work.  In that case, just set
+# storage to `-DSTORAGE=static' which changes the datastructures to be
+# allocated in data segment.
+set storage "-DSTORAGE="
+if [istarget "stormy16-*-*"] then {
+    set storage "-DSTORAGE=static"
+}
+
+set additional_flags "additional_flags=-w ${storage}"
+
 #
 # test running programs
 #
@@ -40,7 +51,7 @@ set testfile "miscexprs"
 set srcfile ${testfile}.c
 set binfile ${objdir}/${subdir}/${testfile}
 
-if  { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable {debug additional_flags=-w}] != "" } {
+if  { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable [list debug ${additional_flags}]] != "" } {
     gdb_suppress_entire_file "Testcase compile failed, so all tests in this file will automatically fail."
 }
 


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]