fprintf (file, "\n      First symbol: %ld",
fprintf (file, _("\n      First symbol: %ld"),
_bfd_ecoff_print_symbol (abfd, filep, symbol, how)     bfd *abfd;     PTR filep;     asymbol *symbol;     bfd_print_symbol_type how;{  const struct ecoff_debug_swap * const debug_swap    = &ecoff_backend (abfd)->debug_swap;  FILE *file = (FILE *)filep;  switch (how)    {    case bfd_print_symbol_name:      fprintf (file, "%s", symbol->name);      break;    case bfd_print_symbol_more:      if (ecoffsymbol (symbol)->local)	{	  SYMR ecoff_sym;		  (*debug_swap->swap_sym_in) (abfd, ecoffsymbol (symbol)->native,				      &ecoff_sym);	  fprintf (file, "ecoff local ");	  fprintf_vma (file, (bfd_vma) ecoff_sym.value);	  fprintf (file, " %x %x", (unsigned) ecoff_sym.st,		   (unsigned) ecoff_sym.sc);	}      else	{	  EXTR ecoff_ext;	  (*debug_swap->swap_ext_in) (abfd, ecoffsymbol (symbol)->native,				      &ecoff_ext);	  fprintf (file, "ecoff extern ");	  fprintf_vma (file, (bfd_vma) ecoff_ext.asym.value);	  fprintf (file, " %x %x", (unsigned) ecoff_ext.asym.st,		   (unsigned) ecoff_ext.asym.sc);	}      break;    case bfd_print_symbol_all:      /* Print out the symbols in a reasonable way */      {	char type;	int pos;	EXTR ecoff_ext;	char jmptbl;	char cobol_main;	char weakext;	if (ecoffsymbol (symbol)->local)	  {	    (*debug_swap->swap_sym_in) (abfd, ecoffsymbol (symbol)->native,					&ecoff_ext.asym);	    type = 'l';	    pos = ((((char *) ecoffsymbol (symbol)->native		     - (char *) ecoff_data (abfd)->debug_info.external_sym)		    / debug_swap->external_sym_size)		   + ecoff_data (abfd)->debug_info.symbolic_header.iextMax);	    jmptbl = ' ';	    cobol_main = ' ';	    weakext = ' ';	  }	else	  {	    (*debug_swap->swap_ext_in) (abfd, ecoffsymbol (symbol)->native,					&ecoff_ext);	    type = 'e';	    pos = (((char *) ecoffsymbol (symbol)->native		    - (char *) ecoff_data (abfd)->debug_info.external_ext)		   / debug_swap->external_ext_size);	    jmptbl = ecoff_ext.jmptbl ? 'j' : ' ';	    cobol_main = ecoff_ext.cobol_main ? 'c' : ' ';	    weakext = ecoff_ext.weakext ? 'w' : ' ';	  }	fprintf (file, "[%3d] %c ",		 pos, type);	fprintf_vma (file, (bfd_vma) ecoff_ext.asym.value);	fprintf (file, " st %x sc %x indx %x %c%c%c %s",		 (unsigned) ecoff_ext.asym.st,		 (unsigned) ecoff_ext.asym.sc,		 (unsigned) ecoff_ext.asym.index,		 jmptbl, cobol_main, weakext,		 symbol->name);	if (ecoffsymbol (symbol)->fdr != NULL	    && ecoff_ext.asym.index != indexNil)	  {	    FDR *fdr;	    unsigned int indx;	    int bigendian;	    bfd_size_type sym_base;	    union aux_ext *aux_base;	    fdr = ecoffsymbol (symbol)->fdr;	    indx = ecoff_ext.asym.index;	    /* sym_base is used to map the fdr relative indices which	       appear in the file to the position number which we are	       using.  */	    sym_base = fdr->isymBase;	    if (ecoffsymbol (symbol)->local)	      sym_base +=		ecoff_data (abfd)->debug_info.symbolic_header.iextMax;	    /* aux_base is the start of the aux entries for this file;	       asym.index is an offset from this.  */	    aux_base = (ecoff_data (abfd)->debug_info.external_aux			+ fdr->iauxBase);	    /* The aux entries are stored in host byte order; the	       order is indicated by a bit in the fdr.  */	    bigendian = fdr->fBigendian;	    /* This switch is basically from gcc/mips-tdump.c  */	    switch (ecoff_ext.asym.st)	      {	      case stNil:	      case stLabel:		break;	      case stFile:	      case stBlock:		fprintf (file, "\n      End+1 symbol: %ld",			 (long) (indx + sym_base));		break;	      case stEnd:		if (ecoff_ext.asym.sc == scText		    || ecoff_ext.asym.sc == scInfo)		  fprintf (file, "\n      First symbol: %ld",			   (long) (indx + sym_base));		else		  fprintf (file, "\n      First symbol: %ld", 			   ((long)			    (AUX_GET_ISYM (bigendian,					   &aux_base[ecoff_ext.asym.index])			     + sym_base)));		break;	      case stProc:	      case stStaticProc:		if (ECOFF_IS_STAB (&ecoff_ext.asym))		  ;		else if (ecoffsymbol (symbol)->local)		  fprintf (file, "\n      End+1 symbol: %-7ld   Type:  %s",			   ((long)			    (AUX_GET_ISYM (bigendian,					   &aux_base[ecoff_ext.asym.index])			     + sym_base)),			   ecoff_type_to_string (abfd, fdr, indx + 1));		else		  fprintf (file, "\n      Local symbol: %ld",			   ((long) indx			    + (long) sym_base			    + (ecoff_data (abfd)			       ->debug_info.symbolic_header.iextMax)));		break;	      case stStruct:		fprintf (file, "\n      struct; End+1 symbol: %ld",			 (long) (indx + sym_base));		break;	      case stUnion:		fprintf (file, "\n      union; End+1 symbol: %ld",			 (long) (indx + sym_base));		break;	      case stEnum:		fprintf (file, "\n      enum; End+1 symbol: %ld",			 (long) (indx + sym_base));		break;	      default:		if (! ECOFF_IS_STAB (&ecoff_ext.asym))		  fprintf (file, "\n      Type: %s",			   ecoff_type_to_string (abfd, fdr, indx));		break;	      }	  }      }      break;    }}