From mboxrd@z Thu Jan 1 00:00:00 1970 From: Corinna Vinschen To: gdb-patches Subject: [RFA]: testsuite/gdb.base/miscexprs.* Date: Wed, 31 Oct 2001 08:53:00 -0000 Message-id: <20011031175346.G32706@cygbert.vinschen.de> X-SW-Source: 2001-10/msg00393.html 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 * 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." }