From cd46ffad4ecefe7d91323f901882483e32ca2f71 Mon Sep 17 00:00:00 2001 From: Fred Fish Date: Sat, 1 Aug 1992 20:40:59 +0000 Subject: [PATCH] * dwarfread.c (struct dieinfo): Remove obsolete at_visibility, at_import, at_frame_base. * dwarfread.c (completedieinfo): Remove cases for obsolete AT_visibility, AT_import, and AT_frame_base attributes. * breakpoint.h (BREAKPOINT_MAX): Increase from 10 to 16 for i860, which can keep up to 4 shadow breakpoints. * tm-stratus.h (USG): Define. * tm-stratus.h (TARGET_BYTE_ORDER): Define to BIG_ENDIAN. * xm-stratus.h (HOST_BYTE_ORDER): Define to BIG_ENDIAN. * xm-stratus.h (xm-sysv4.h): Include, name changed from xm-svr4.h. * xm-stratus.h (NO_JOB_CONTROL): Remove define. * config/stratus.mt (TDEPFILES): Include files available from stratus that are not yet in release pending receipt of paperwork at FSF. * buildsym.c (finish_block): Minor code format change. * gdbtypes.h (struct field): Add to comments. * gdbtypes.h (virtual_field_bits): Add to comments. * objfiles.c (allocate_objfile): Change obstack interface to match FSF merging efforts. --- gdb/ChangeLog | 70 +++++++++++++++++++++++++++++++++++-------- gdb/buildsym.c | 4 ++- gdb/config/stratus.mt | 4 +-- gdb/dwarfread.c | 15 ---------- gdb/gdbtypes.h | 18 ++++++++--- gdb/objfiles.c | 28 +++++++++-------- gdb/tm-stratus.h | 6 ++++ gdb/xm-stratus.h | 9 ++++-- 8 files changed, 103 insertions(+), 51 deletions(-) diff --git a/gdb/ChangeLog b/gdb/ChangeLog index 56aac82d735..9edb02d7044 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,16 +1,50 @@ -<<<<<<< ChangeLog -Wed Jul 22 04:23:03 1992 D. V. Henkel-Wallace (gumby@cygnus.com) - - * es1800.c: use FREAD|FWRITE rather than _FREAD|_FWRITE. - include on USG. (from sef). - - * depend: es1800 dependency needed here. +Sat Aug 1 13:32:58 1992 Fred Fish (fnf@cygnus.com) + + * dwarfread.c (struct dieinfo): Remove obsolete at_visibility, + at_import, at_frame_base. + * dwarfread.c (completedieinfo): Remove cases for obsolete + AT_visibility, AT_import, and AT_frame_base attributes. + * breakpoint.h (BREAKPOINT_MAX): Increase from 10 to 16 for + i860, which can keep up to 4 shadow breakpoints. + * tm-stratus.h (USG): Define. + * tm-stratus.h (TARGET_BYTE_ORDER): Define to BIG_ENDIAN. + * xm-stratus.h (HOST_BYTE_ORDER): Define to BIG_ENDIAN. + * xm-stratus.h (xm-sysv4.h): Include, name changed from xm-svr4.h. + * xm-stratus.h (NO_JOB_CONTROL): Remove define. + * config/stratus.mt (TDEPFILES): Include files available from + stratus that are not yet in release pending receipt of paperwork + at FSF. + * buildsym.c (finish_block): Minor code format change. + * gdbtypes.h (struct field): Add to comments. + * gdbtypes.h (virtual_field_bits): Add to comments. + * objfiles.c (allocate_objfile): Change obstack interface to + match FSF merging efforts. + +Mon Jul 27 21:14:44 1992 Fred Fish (fnf@cygnus.com) + + * Makefile.in (VERSION): Bump to 4.6.2. + * Makefile.in (SFILES_MAINDIR): Add stabsread.c + * Makefile.in (OBS): Add stabsread.o + * Makefile.in (stabsread.o): Add build rule. + * stabsread.c, stabsread.h: New files. + * buildsym.c: Split out stabs specific support to stabsread.c. + * buildsym.h: Split out stabs specific support to stabsread.h. + * dbxread.c (stabsread.h): Include + * dbxread.c (dbx_new_init): Call stabsread_new_init. + * dbxread.c (dbx_psymtab_to_symtab_1): Call stabsread_init. + * dbxread.c (read_ofile_symtab): Call end_stabs. + * dbxread.c (process_one_symbol): Call end_stabs and start_stabs. + * dbxread.c (elfstab_build_psymtabs): Call stabsread_new_init. + * dwarfread.c (psymtab_to_symtab_1): Call buildsym_init, add + really_free_pendings to cleanups. + * elfread.c (elf_new_init): Call stabsread_new_init. + * gdbtypes.c: Small changes to maintenance commands. + * mipsread.c (stabsread.h): Include. + * mipsread.c (psymtab_to_symtab_1): Call end_stabs. + * xcoffread.c (stabsread.h): Include. + * xcoffread.c (global_stabs): Remove redundant def. + * xcoffread.c (read_xcoff_symtab): Call start_stabs and end_stabs. -Mon Jul 20 11:25:18 1992 D. V. Henkel-Wallace (gumby@cygnus.com) - - * configure.in: es1800 ok for 68000 too. - -======= Wed Jul 22 21:39:33 1992 Fred Fish (fnf@cygnus.com) * lmode_inferior_valid, lmode_ours_valid: New static vars. @@ -18,6 +52,13 @@ Wed Jul 22 21:39:33 1992 Fred Fish (fnf@cygnus.com) terminal_ours_1, initialize_inflow): Record and use state of lmode_inferior_valid and lmode_ours_valid. +Wed Jul 22 04:23:03 1992 D. V. Henkel-Wallace (gumby@cygnus.com) + + * es1800.c: use FREAD|FWRITE rather than _FREAD|_FWRITE. + include on USG. (from sef). + + * depend: es1800 dependency needed here. + Mon Jul 20 21:09:53 1992 Fred Fish (fnf@cygnus.com) * buildsym.c (read_struct_type): Initialize structs allocated @@ -38,7 +79,10 @@ Mon Jul 20 21:09:53 1992 Fred Fish (fnf@cygnus.com) messages for C++ classes with no data members. Also use new fprintfi_filtered function. ->>>>>>> 1.651 +Mon Jul 20 11:25:18 1992 D. V. Henkel-Wallace (gumby@cygnus.com) + + * configure.in: es1800 ok for 68000 too. + Sat Jul 18 15:48:58 1992 david d `zoo' zuhn (zoo at cirdan.cygnus.com) * configure.in: echo error messages to stderr, not stdout diff --git a/gdb/buildsym.c b/gdb/buildsym.c index 6e5c52bcbbb..90cbbe42f9d 100644 --- a/gdb/buildsym.c +++ b/gdb/buildsym.c @@ -189,7 +189,9 @@ finish_block (symbol, listhead, old_blocks, start, end, objfile) /* Count the length of the list of symbols. */ - for (next = *listhead, i = 0; next; i += next->nsyms, next = next->next) + for (next = *listhead, i = 0; + next; + i += next->nsyms, next = next->next) { /*EMPTY*/; } diff --git a/gdb/config/stratus.mt b/gdb/config/stratus.mt index e218e1c0b67..e8d288cdf28 100644 --- a/gdb/config/stratus.mt +++ b/gdb/config/stratus.mt @@ -1,5 +1,5 @@ # Target: Stratus machine running SVR4. # The i860 files are not yet released to FSF. -#TDEPFILES= i860-pinsn.o exec.o i860-tdep.o solib.o -TDEPFILES= exec.o solib.o +TDEPFILES= i860-pinsn.o exec.o i860-tdep.o solib.o +#TDEPFILES= exec.o solib.o TM_FILE= tm-stratus.h diff --git a/gdb/dwarfread.c b/gdb/dwarfread.c index 9e39f4ff95c..fde32e64527 100644 --- a/gdb/dwarfread.c +++ b/gdb/dwarfread.c @@ -195,12 +195,9 @@ struct dieinfo { unsigned long at_member; unsigned long at_discr; BLOCK * at_discr_value; - unsigned short at_visibility; - unsigned long at_import; BLOCK * at_string_length; char * at_comp_dir; char * at_producer; - unsigned long at_frame_base; unsigned long at_start_scope; unsigned long at_stride_size; unsigned long at_src_info; @@ -3196,10 +3193,6 @@ completedieinfo (dip, objfile) dip -> at_bit_offset = target_to_host (diep, nbytes, GET_UNSIGNED, objfile); break; - case AT_visibility: - dip -> at_visibility = target_to_host (diep, nbytes, GET_UNSIGNED, - objfile); - break; case AT_sibling: dip -> at_sibling = target_to_host (diep, nbytes, GET_UNSIGNED, objfile); @@ -3244,10 +3237,6 @@ completedieinfo (dip, objfile) dip -> at_discr = target_to_host (diep, nbytes, GET_UNSIGNED, objfile); break; - case AT_import: - dip -> at_import = target_to_host (diep, nbytes, GET_UNSIGNED, - objfile); - break; case AT_location: dip -> at_location = diep; break; @@ -3293,10 +3282,6 @@ completedieinfo (dip, objfile) case AT_producer: dip -> at_producer = diep; break; - case AT_frame_base: - dip -> at_frame_base = target_to_host (diep, nbytes, GET_UNSIGNED, - objfile); - break; case AT_start_scope: dip -> at_start_scope = target_to_host (diep, nbytes, GET_UNSIGNED, objfile); diff --git a/gdb/gdbtypes.h b/gdb/gdbtypes.h index fa1eb73bd9f..60a8225bb6a 100644 --- a/gdb/gdbtypes.h +++ b/gdb/gdbtypes.h @@ -171,6 +171,9 @@ struct type For range types, there are two "fields", the minimum and maximum values (both inclusive). For enum types, each possible value is described by one "field". + For C++ classes, there is one field for each base class (if it is + a derived class) plus one field for each class data member. Member + functions are recorded elsewhere. Using a pointer to a separate array of fields allows all types to have the same size, which is useful @@ -260,10 +263,17 @@ struct cplus_struct_type int nfn_fields_total; - /* For derived classes, the number of base classes is given by - n_baseclasses and virtual_field_bits is a bit vector containing one bit - per base class. - If the base class is virtual, the corresponding bit will be set. */ + /* For derived classes, the number of base classes is given by n_baseclasses + and virtual_field_bits is a bit vector containing one bit per base class. + If the base class is virtual, the corresponding bit will be set. + I.E, given: + + class A{}; + class B{}; + class C : public B, public virtual A {}; + + B is a baseclass of C; A is a virtual baseclass for C. + This is a C++ 2.0 language feature. */ B_TYPE *virtual_field_bits; diff --git a/gdb/objfiles.c b/gdb/objfiles.c index 5e22be95c97..4dae610bd5b 100644 --- a/gdb/objfiles.c +++ b/gdb/objfiles.c @@ -126,15 +126,15 @@ allocate_objfile (abfd, mapped) objfile -> mmfd = fd; objfile -> flags |= OBJF_MAPPED; mmalloc_setkey (objfile -> md, 0, objfile); - obstack_alloc_arg (&objfile -> psymbol_obstack, objfile -> md); - obstack_full_begin (&objfile -> psymbol_obstack, 0, 0, xmmalloc, - mfree); - obstack_alloc_arg (&objfile -> symbol_obstack, objfile -> md); - obstack_full_begin (&objfile -> symbol_obstack, 0, 0, xmmalloc, - mfree); - obstack_alloc_arg (&objfile -> type_obstack, objfile -> md); - obstack_full_begin (&objfile -> type_obstack, 0, 0, xmmalloc, - mfree); + obstack_specify_allocation_with_arg (&objfile -> psymbol_obstack, + 0, 0, xmmalloc, mfree, + objfile -> md); + obstack_specify_allocation_with_arg (&objfile -> symbol_obstack, + 0, 0, xmmalloc, mfree, + objfile -> md); + obstack_specify_allocation_with_arg (&objfile -> type_obstack, + 0, 0, xmmalloc, mfree, + objfile -> md); } } @@ -168,9 +168,12 @@ allocate_objfile (abfd, mapped) objfile = (struct objfile *) xmalloc (sizeof (struct objfile)); memset (objfile, 0, sizeof (struct objfile)); objfile -> md = NULL; - obstack_full_begin (&objfile -> psymbol_obstack, 0, 0, xmalloc, free); - obstack_full_begin (&objfile -> symbol_obstack, 0, 0, xmalloc, free); - obstack_full_begin (&objfile -> type_obstack, 0, 0, xmalloc, free); + obstack_specify_allocation (&objfile -> psymbol_obstack, 0, 0, xmalloc, + free); + obstack_specify_allocation (&objfile -> symbol_obstack, 0, 0, xmalloc, + free); + obstack_specify_allocation (&objfile -> type_obstack, 0, 0, xmalloc, + free); } /* Update the per-objfile information that comes from the bfd, ensuring @@ -565,4 +568,3 @@ map_to_address () } #endif /* !defined(NO_MMALLOC) && defined(HAVE_MMAP) */ - diff --git a/gdb/tm-stratus.h b/gdb/tm-stratus.h index 688d1a4cbb1..a2c5ef8a874 100644 --- a/gdb/tm-stratus.h +++ b/gdb/tm-stratus.h @@ -17,5 +17,11 @@ You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ +/* Normally, i860 is little endian. However, stratus uses the i860 in + big endian mode. */ +#define TARGET_BYTE_ORDER BIG_ENDIAN + +#define USG + #include "tm-sysv4.h" #include "tm-i860.h" diff --git a/gdb/xm-stratus.h b/gdb/xm-stratus.h index 11313b684b0..8898a6d50b8 100644 --- a/gdb/xm-stratus.h +++ b/gdb/xm-stratus.h @@ -18,13 +18,18 @@ You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ +/* Normally, i860 is little endian. However, stratus uses the i860 in + big endian mode. */ + +#define HOST_BYTE_ORDER BIG_ENDIAN + /* Pick up most of what we need from the generic i860 host include file. */ #include "xm-i860.h" /* Pick up more stuff from the generic SVR4 host include file. */ -#include "xm-svr4.h" +#include "xm-sysv4.h" /* The native compiler complains about using volatile to indicate functions that never return. So shut it up by simply defining away "NORETURN", which @@ -33,5 +38,3 @@ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ #ifndef __GNUC__ # define NORETURN /**/ #endif - -#define NO_JOB_CONTROL -- 2.30.2