Re: [patch/rfc] Obsolete i[3456]86-*-os9k target

Elena Zannoni
2002-07-16T20:41:49Z

Andrew Cagney writes:
> > > I started changing:
> > >
> > > if (os8k_stabs)
> > > <then>
> > > else
> > > <else>
> > >
> > > into:
> > >
> > > /* OBSOLETE if (os8k_stabs) */
> > > /* OBSOLETE <then> */
> > > /* OBSOLETE else */
> > > <else>
> > >
> > > but gave up. Some of those if() clauses got pretty weired. Not sure
> > > what the reader maintainers want to do.
> >
> > I'll try to come up a patch that to 'if 0' those bits. I think that
> > the indentation and extra curly braces can be fixed later, once we
> > pull the code out for good. We definitely need to deactivate these parts,
> > otherwise os9k_stabs would be undefined.
>
> Hmm, another way of disabling it it might be:
>
> if (os9k_stabs) /* OBSOLETE */
> ...
>
> The reason behind adding the word OBSOLETE is that it makes searching
> easier - just grep out any line with OBSOLETE in it.
>
> Andrew
>

Well, how about refining on the following patch, I think it should be
pretty easy from this starting point.

Elena

Index: stabsread.c
===================================================================
RCS file: /cvs/uberbaum/gdb/stabsread.c,v
retrieving revision 1.35
diff -u -p -r1.35 stabsread.c
--- stabsread.c 14 Jun 2002 14:34:25 -0000 1.35
+++ stabsread.c 16 Jul 2002 19:28:53 -0000
@@ -256,6 +256,7 @@ static struct symbol *current_symbol = N
*(pp) = next_symbol_text (objfile); \
} while (0)
\f
+#if 0 /* OBSOLETE OS9K */
/* FIXME: These probably should be our own types (like rs6000_builtin_type
has its own types) rather than builtin_type_*. */
static struct type **os9k_type_vector[] =
@@ -284,6 +285,7 @@ os9k_init_type_vector (struct type **tv)
for (i = 0; i < sizeof (os9k_type_vector) / sizeof (struct type **); i++)
tv[i] = (os9k_type_vector[i] == 0 ? 0 : *(os9k_type_vector[i]));
}
+#endif /* OBSOLETE OS9K */

/* Look up a dbx type-number pair. Return the address of the slot
where the type for that number-pair is stored.
@@ -351,9 +353,11 @@ Invalid symbol data: type number (%d,%d)
memset (&type_vector[old_len], 0,
(type_vector_length - old_len) * sizeof (struct type *));

+#if 0 /* OBSOLETE OS9K */
if (os9k_stabs)
/* Deal with OS9000 fundamental types. */
os9k_init_type_vector (type_vector);
+#endif /* OBSOLETE OS9K */
}
return (&type_vector[index]);
}
@@ -2052,9 +2056,11 @@ define_symbol (CORE_ADDR valu, char *str
}
#endif
SYMBOL_NAMESPACE (sym) = VAR_NAMESPACE;
+#if 0 /* OBSOLETE OS9K */
if (os9k_stabs)
add_symbol_to_list (sym, &global_symbols);
else
+#endif /* OBSOLETE OS9K */
add_symbol_to_list (sym, &local_symbols);
break;

@@ -2589,6 +2595,7 @@ again:
break;

case 'f': /* Function returning another type */
+#if 0 /* OBSOLETE OS9K */
if (os9k_stabs && **pp == '(')
{
/* Function prototype; parse it.
@@ -2604,6 +2611,8 @@ again:
++ * pp;
}
}
+#endif /* OBSOLETE OS9K */
+
type1 = read_type (pp, objfile);
type = make_function_type (type1, dbx_lookup_type (typenums));
break;
@@ -2684,22 +2693,36 @@ again:
}

case 'k': /* Const qualifier on some type (Sun) */
+#if 0 /* OBSOLETE OS9K */
+ /* ezannoni 2002-07-16: This can be safely deleted, because 'c'
+ means complex type in AIX stabs, while it means const qualifier
+ in os9k stabs. Obviously we were supporting only the os9k meaning.
+ We were erroring out if we were reading AIX stabs. Right now the
+ erroring out will happen in the default clause of the switch. */
case 'c': /* Const qualifier on some type (OS9000) */
/* Because 'c' means other things to AIX and 'k' is perfectly good,
only accept 'c' in the os9k_stabs case. */
if (type_descriptor == 'c' && !os9k_stabs)
return error_type (pp, objfile);
+#endif /* OBSOLETE OS9K */
type = read_type (pp, objfile);
type = make_cv_type (1, TYPE_VOLATILE (type), type,
dbx_lookup_type (typenums));
break;

case 'B': /* Volatile qual on some type (Sun) */
+#if 0 /* OBSOLETE OS9K */
+ /* ezannoni 2002-07-16: This can be safely deleted, because 'i'
+ means imported type in AIX stabs, while it means volatile qualifier
+ in os9k stabs. Obviously we were supporting only the os9k meaning.
+ We were erroring out if we were reading AIX stabs. Right now the
+ erroring out will happen in the default clause of the switch. */
case 'i': /* Volatile qual on some type (OS9000) */
/* Because 'i' means other things to AIX and 'B' is perfectly good,
only accept 'i' in the os9k_stabs case. */
if (type_descriptor == 'i' && !os9k_stabs)
return error_type (pp, objfile);
+#endif /* OBSOLETE OS9K */
type = read_type (pp, objfile);
type = make_cv_type (TYPE_CONST (type), 1, type,
dbx_lookup_type (typenums));
@@ -2804,10 +2827,12 @@ again:
break;

case 'b':
+#if 0 /* OBSOLETE OS9K */
if (os9k_stabs)
/* Const and volatile qualified type. */
type = read_type (pp, objfile);
else
+#endif /* OBSOLETE OS9K */
{
/* Sun ACC builtin int type */
type = read_sun_builtin_type (pp, typenums, objfile);
@@ -3666,8 +3691,10 @@ read_struct_fields (struct field_info *f

while (**pp != ';' && **pp != '\0')
{
+#if 0 /* OBSOLETE OS9K */
if (os9k_stabs && **pp == ',')
break;
+#endif /* OBSOLETE OS9K */
STABS_CONTINUE (pp, objfile);
/* Get space to record the next field's data. */
new = (struct nextfield *) xmalloc (sizeof (struct nextfield));
@@ -4329,9 +4356,11 @@ read_array_type (register char **pp, reg
Fortran adjustable arrays use Adigits or Tdigits for lower or upper;
for these, produce a type like float[][]. */

+#if 0 /* OBSOLETE OS9K */
if (os9k_stabs)
index_type = builtin_type_int;
else
+#endif /* OBSOLETE OS9K */
{
index_type = read_type (pp, objfile);
if (**pp != ';')
@@ -4345,7 +4374,12 @@ read_array_type (register char **pp, reg
(*pp)++;
adjustable = 1;
}
+#if 0 /* OBSOLETE OS9K */
lower = read_huge_number (pp, os9k_stabs ? ',' : ';', &nbits);
+#else /* OBSOLETE OS9K */
+ lower = read_huge_number (pp, ';', &nbits);
+#endif /* OBSOLETE OS9K */
+
if (nbits != 0)
return error_type (pp, objfile);

@@ -4405,6 +4439,7 @@ read_enum_type (register char **pp, regi
osyms = *symlist;
o_nsyms = osyms ? osyms->nsyms : 0;

+#if 0 /* OBSOLETE OS9K */
if (os9k_stabs)
{
/* Size. Perhaps this does not have to be conditionalized on
@@ -4414,6 +4449,7 @@ read_enum_type (register char **pp, regi
if (nbits != 0)
return error_type (pp, objfile);
}
+#endif /* OBSOLETE OS9K */

/* The aix4 compiler emits an extra field before the enum members;
my guess is it's a type of some sort. Just ignore it. */
@@ -4652,9 +4688,11 @@ read_huge_number (char **pp, int end, in
p++;
}

+#if 0 /* OBSOLETE OS9K */
if (os9k_stabs)
upper_limit = ULONG_MAX / radix;
else
+#endif /* OBSOLETE OS9K */
upper_limit = LONG_MAX / radix;

while ((c = *p++) >= '0' && c < ('0' + radix))
@@ -5366,7 +5404,9 @@ start_stabs (void)
/* FIXME: If common_block_name is not already NULL, we should complain(). */
common_block_name = NULL;

+#if 0 /* OBSOLETE OS9K */
os9k_stabs = 0;
+#endif /* OBSOLETE OS9K */
}

/* Call after end_symtab() */