This is the mail archive of the binutils@sourceware.org mailing list for the binutils project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: Patch to remove the use of the c++ keyword class in binutil sources.


I have updated this patch, and also written one for the keyword new.

Build and ran "make check" without any new errors for the following targets:

alpha-freebsd
alpha-linux
arc-elf
arm-aout
arm-eabi
cr16-linux
cris-linux
crx-linux
d30v-linux
dlx-elf
hppa-linux
i370-linux
i686-linux
i960-elf
ia64-linux
iq2000-elf
m32c-elf
m32r-linux
m68hc11-linux
m68k-linux
mcore-elf
mep-elf
microblaze-elf
microblaze-elf
mips-linux
mmix-linux
mn10300-linux
moxie-elf
ns32k-netbsd
pdp11-aout
pj-linux
ppc-linux
rs6000-aix4
s390-linux
score-elf
sh-elf
sh-linux
sh64-linux
sparc-linux
spu-elf
tic4x-coff
vax-linux
x86_64-linux
x86_64-linux
xtensa-linux
z8k-coff

Thanks,
Martin

Attachment: class.changelog
Description: Binary data

diff -prc src.head/bfd/coff-arm.c src.class/bfd/coff-arm.c
*** src.head/bfd/coff-arm.c	Tue Jun 16 09:07:18 2009
--- src.class/bfd/coff-arm.c	Wed Aug 19 16:46:10 2009
*************** coff_arm_relocate_section (bfd *output_b
*** 1332,1339 ****
  
                if (howto->type == ARM_26)
                  {
!                   if (   h->class == C_THUMBSTATFUNC
! 		      || h->class == C_THUMBEXTFUNC)
  		    {
  		      /* Arm code calling a Thumb function.  */
  		      unsigned long int                 tmp;
--- 1332,1339 ----
  
                if (howto->type == ARM_26)
                  {
!                   if (   h->symbol_class == C_THUMBSTATFUNC
! 		      || h->symbol_class == C_THUMBEXTFUNC)
  		    {
  		      /* Arm code calling a Thumb function.  */
  		      unsigned long int                 tmp;
*************** coff_arm_relocate_section (bfd *output_b
*** 1419,1427 ****
  	      /* Note: We used to check for ARM_THUMB9 and ARM_THUMB12.  */
                else if (howto->type == ARM_THUMB23)
                  {
!                   if (   h->class == C_EXT
! 		      || h->class == C_STAT
! 		      || h->class == C_LABEL)
  		    {
  		      /* Thumb code calling an ARM function.  */
  		      asection *                         s = 0;
--- 1419,1427 ----
  	      /* Note: We used to check for ARM_THUMB9 and ARM_THUMB12.  */
                else if (howto->type == ARM_THUMB23)
                  {
!                   if (   h->symbol_class == C_EXT
! 		      || h->symbol_class == C_STAT
! 		      || h->symbol_class == C_LABEL)
  		    {
  		      /* Thumb code calling an ARM function.  */
  		      asection *                         s = 0;
*************** coff_arm_relocate_section (bfd *output_b
*** 1721,1728 ****
  	  int patchit = FALSE;
  
  	  if (h != NULL
! 	      && (   h->class == C_THUMBSTATFUNC
! 		  || h->class == C_THUMBEXTFUNC))
  	    {
  	      patchit = TRUE;
  	    }
--- 1721,1728 ----
  	  int patchit = FALSE;
  
  	  if (h != NULL
! 	      && (   h->symbol_class == C_THUMBSTATFUNC
! 		  || h->symbol_class == C_THUMBEXTFUNC))
  	    {
  	      patchit = TRUE;
  	    }
*************** record_thumb_to_arm_glue (struct bfd_lin
*** 1932,1938 ****
  
    /* If we mark it 'thumb', the disassembler will do a better job.  */
    myh = (struct coff_link_hash_entry *) bh;
!   myh->class = C_THUMBEXTFUNC;
  
    free (tmp_name);
  
--- 1932,1938 ----
  
    /* If we mark it 'thumb', the disassembler will do a better job.  */
    myh = (struct coff_link_hash_entry *) bh;
!   myh->symbol_class = C_THUMBEXTFUNC;
  
    free (tmp_name);
  
*************** bfd_arm_process_before_allocation (bfd *
*** 2096,2102 ****
  		 the target of the call. If it is a thumb target, we
  		 insert glue.  */
  
! 	      if (h->class == C_THUMBEXTFUNC)
  		record_arm_to_thumb_glue (info, h);
  	      break;
  
--- 2096,2102 ----
  		 the target of the call. If it is a thumb target, we
  		 insert glue.  */
  
! 	      if (h->symbol_class == C_THUMBEXTFUNC)
  		record_arm_to_thumb_glue (info, h);
  	      break;
  
*************** bfd_arm_process_before_allocation (bfd *
*** 2110,2116 ****
  		 for it.  This is not really a problem, since the link
  		 is doomed anyway.  */
  
! 	      switch (h->class)
  		{
  		case C_EXT:
  		case C_STAT:
--- 2110,2116 ----
  		 for it.  This is not really a problem, since the link
  		 is doomed anyway.  */
  
! 	      switch (h->symbol_class)
  		{
  		case C_EXT:
  		case C_STAT:
diff -prc src.head/bfd/coff-i960.c src.class/bfd/coff-i960.c
*** src.head/bfd/coff-i960.c	Tue Jun 16 09:07:18 2009
--- src.class/bfd/coff-i960.c	Sun Aug 16 14:10:35 2009
*************** coff_i960_relocate_section (output_bfd, 
*** 488,501 ****
  
        if (howto->type == R_OPTCALL && ! info->relocatable && symndx != -1)
  	{
! 	  int class;
  
  	  if (h != NULL)
! 	    class = h->class;
  	  else
! 	    class = sym->n_sclass;
  
! 	  switch (class)
  	    {
  	    case C_NULL:
  	      /* This symbol is apparently not from a COFF input file.
--- 488,501 ----
  
        if (howto->type == R_OPTCALL && ! info->relocatable && symndx != -1)
  	{
! 	  int class_val;
  
  	  if (h != NULL)
! 	    class_val = h->symbol_class;
  	  else
! 	    class_val = sym->n_sclass;
  
! 	  switch (class_val)
  	    {
  	    case C_NULL:
  	      /* This symbol is apparently not from a COFF input file.
diff -prc src.head/bfd/coff-rs6000.c src.class/bfd/coff-rs6000.c
*** src.head/bfd/coff-rs6000.c	Tue Jun 16 09:07:18 2009
--- src.class/bfd/coff-rs6000.c	Sun Aug 16 14:10:35 2009
*************** _bfd_xcoff_swap_sym_out (abfd, inp, extp
*** 495,505 ****
  }
  
  void
! _bfd_xcoff_swap_aux_in (abfd, ext1, type, class, indx, numaux, in1)
       bfd *abfd;
       PTR ext1;
       int type;
!      int class;
       int indx;
       int numaux;
       PTR in1;
--- 495,505 ----
  }
  
  void
! _bfd_xcoff_swap_aux_in (abfd, ext1, type, in_class, indx, numaux, in1)
       bfd *abfd;
       PTR ext1;
       int type;
!      int in_class;
       int indx;
       int numaux;
       PTR in1;
*************** _bfd_xcoff_swap_aux_in (abfd, ext1, type
*** 507,513 ****
    AUXENT * ext = (AUXENT *)ext1;
    union internal_auxent *in = (union internal_auxent *)in1;
  
!   switch (class)
      {
      case C_FILE:
        if (ext->x_file.x_fname[0] == 0)
--- 507,513 ----
    AUXENT * ext = (AUXENT *)ext1;
    union internal_auxent *in = (union internal_auxent *)in1;
  
!   switch (in_class)
      {
      case C_FILE:
        if (ext->x_file.x_fname[0] == 0)
*************** _bfd_xcoff_swap_aux_in (abfd, ext1, type
*** 573,579 ****
    in->x_sym.x_tagndx.l = H_GET_32 (abfd, ext->x_sym.x_tagndx);
    in->x_sym.x_tvndx = H_GET_16 (abfd, ext->x_sym.x_tvndx);
  
!   if (class == C_BLOCK || class == C_FCN || ISFCN (type) || ISTAG (class))
      {
        in->x_sym.x_fcnary.x_fcn.x_lnnoptr =
  	H_GET_32 (abfd, ext->x_sym.x_fcnary.x_fcn.x_lnnoptr);
--- 573,580 ----
    in->x_sym.x_tagndx.l = H_GET_32 (abfd, ext->x_sym.x_tagndx);
    in->x_sym.x_tvndx = H_GET_16 (abfd, ext->x_sym.x_tvndx);
  
!   if (in_class == C_BLOCK || in_class == C_FCN || ISFCN (type)
!       || ISTAG (in_class))
      {
        in->x_sym.x_fcnary.x_fcn.x_lnnoptr =
  	H_GET_32 (abfd, ext->x_sym.x_fcnary.x_fcn.x_lnnoptr);
*************** unsigned int _bfd_xcoff_swap_aux_out
*** 614,624 ****
    PARAMS ((bfd *, PTR, int, int, int, int, PTR));
  
  unsigned int
! _bfd_xcoff_swap_aux_out (abfd, inp, type, class, indx, numaux, extp)
       bfd * abfd;
       PTR   inp;
       int   type;
!      int   class;
       int   indx ATTRIBUTE_UNUSED;
       int   numaux ATTRIBUTE_UNUSED;
       PTR   extp;
--- 615,625 ----
    PARAMS ((bfd *, PTR, int, int, int, int, PTR));
  
  unsigned int
! _bfd_xcoff_swap_aux_out (abfd, inp, type, in_class, indx, numaux, extp)
       bfd * abfd;
       PTR   inp;
       int   type;
!      int   in_class;
       int   indx ATTRIBUTE_UNUSED;
       int   numaux ATTRIBUTE_UNUSED;
       PTR   extp;
*************** _bfd_xcoff_swap_aux_out (abfd, inp, type
*** 627,633 ****
    AUXENT *ext = (AUXENT *)extp;
  
    memset ((PTR)ext, 0, bfd_coff_auxesz (abfd));
!   switch (class)
      {
      case C_FILE:
        if (in->x_file.x_fname[0] == 0)
--- 628,634 ----
    AUXENT *ext = (AUXENT *)extp;
  
    memset ((PTR)ext, 0, bfd_coff_auxesz (abfd));
!   switch (in_class)
      {
      case C_FILE:
        if (in->x_file.x_fname[0] == 0)
*************** _bfd_xcoff_swap_aux_out (abfd, inp, type
*** 677,683 ****
    H_PUT_32 (abfd, in->x_sym.x_tagndx.l, ext->x_sym.x_tagndx);
    H_PUT_16 (abfd, in->x_sym.x_tvndx, ext->x_sym.x_tvndx);
  
!   if (class == C_BLOCK || class == C_FCN || ISFCN (type) || ISTAG (class))
      {
        H_PUT_32 (abfd, in->x_sym.x_fcnary.x_fcn.x_lnnoptr,
  		ext->x_sym.x_fcnary.x_fcn.x_lnnoptr);
--- 678,685 ----
    H_PUT_32 (abfd, in->x_sym.x_tagndx.l, ext->x_sym.x_tagndx);
    H_PUT_16 (abfd, in->x_sym.x_tvndx, ext->x_sym.x_tvndx);
  
!   if (in_class == C_BLOCK || in_class == C_FCN || ISFCN (type)
!       || ISTAG (in_class))
      {
        H_PUT_32 (abfd, in->x_sym.x_fcnary.x_fcn.x_lnnoptr,
  		ext->x_sym.x_fcnary.x_fcn.x_lnnoptr);
diff -prc src.head/bfd/coff-stgo32.c src.class/bfd/coff-stgo32.c
*** src.head/bfd/coff-stgo32.c	Fri Aug 14 10:58:55 2009
--- src.class/bfd/coff-stgo32.c	Wed Aug 19 16:52:03 2009
*************** adjust_scnhdr_out_post (abfd, in, out)
*** 218,271 ****
  }
  
  static void
! adjust_aux_in_post  (abfd, ext1, type, class, indx, numaux, in1)
       bfd *abfd ATTRIBUTE_UNUSED;
       PTR ext1 ATTRIBUTE_UNUSED;
       int type;
!      int class;
       int indx ATTRIBUTE_UNUSED;
       int numaux ATTRIBUTE_UNUSED;
       PTR in1;
  {
    union internal_auxent *in = (union internal_auxent *) in1;
  
!   if (class == C_BLOCK || class == C_FCN || ISFCN (type) || ISTAG (class))
      {
        ADJUST_VAL (in->x_sym.x_fcnary.x_fcn.x_lnnoptr, GO32_STUBSIZE);
      }
  }
  
  static void
! adjust_aux_out_pre  (abfd, inp, type, class, indx, numaux, extp)
       bfd *abfd ATTRIBUTE_UNUSED;
       PTR inp;
       int type;
!      int class;
       int indx ATTRIBUTE_UNUSED;
       int numaux ATTRIBUTE_UNUSED;
       PTR extp ATTRIBUTE_UNUSED;
  {
    union internal_auxent *in = (union internal_auxent *) inp;
  
!   if (class == C_BLOCK || class == C_FCN || ISFCN (type) || ISTAG (class))
      {
        ADJUST_VAL (in->x_sym.x_fcnary.x_fcn.x_lnnoptr, -GO32_STUBSIZE);
      }
  }
  
  static void
! adjust_aux_out_post (abfd, inp, type, class, indx, numaux, extp)
       bfd *abfd ATTRIBUTE_UNUSED;
       PTR inp;
       int type;
!      int class;
       int indx ATTRIBUTE_UNUSED;
       int numaux ATTRIBUTE_UNUSED;
       PTR extp ATTRIBUTE_UNUSED;
  {
    union internal_auxent *in = (union internal_auxent *) inp;
  
!   if (class == C_BLOCK || class == C_FCN || ISFCN (type) || ISTAG (class))
      {
        ADJUST_VAL (in->x_sym.x_fcnary.x_fcn.x_lnnoptr, GO32_STUBSIZE);
      }
--- 218,274 ----
  }
  
  static void
! adjust_aux_in_post  (abfd, ext1, type, in_class, indx, numaux, in1)
       bfd *abfd ATTRIBUTE_UNUSED;
       PTR ext1 ATTRIBUTE_UNUSED;
       int type;
!      int in_class;
       int indx ATTRIBUTE_UNUSED;
       int numaux ATTRIBUTE_UNUSED;
       PTR in1;
  {
    union internal_auxent *in = (union internal_auxent *) in1;
  
!   if (in_class == C_BLOCK || in_class == C_FCN || ISFCN (type)
!       || ISTAG (in_class))
      {
        ADJUST_VAL (in->x_sym.x_fcnary.x_fcn.x_lnnoptr, GO32_STUBSIZE);
      }
  }
  
  static void
! adjust_aux_out_pre  (abfd, inp, type, in_class, indx, numaux, extp)
       bfd *abfd ATTRIBUTE_UNUSED;
       PTR inp;
       int type;
!      int in_class;
       int indx ATTRIBUTE_UNUSED;
       int numaux ATTRIBUTE_UNUSED;
       PTR extp ATTRIBUTE_UNUSED;
  {
    union internal_auxent *in = (union internal_auxent *) inp;
  
!   if (in_class == C_BLOCK || in_class == C_FCN || ISFCN (type)
!       || ISTAG (in_class))
      {
        ADJUST_VAL (in->x_sym.x_fcnary.x_fcn.x_lnnoptr, -GO32_STUBSIZE);
      }
  }
  
  static void
! adjust_aux_out_post (abfd, inp, type, in_class, indx, numaux, extp)
       bfd *abfd ATTRIBUTE_UNUSED;
       PTR inp;
       int type;
!      int in_class;
       int indx ATTRIBUTE_UNUSED;
       int numaux ATTRIBUTE_UNUSED;
       PTR extp ATTRIBUTE_UNUSED;
  {
    union internal_auxent *in = (union internal_auxent *) inp;
  
!   if (in_class == C_BLOCK || in_class == C_FCN || ISFCN (type)
!       || ISTAG (in_class))
      {
        ADJUST_VAL (in->x_sym.x_fcnary.x_fcn.x_lnnoptr, GO32_STUBSIZE);
      }
diff -prc src.head/bfd/coff64-rs6000.c src.class/bfd/coff64-rs6000.c
*** src.head/bfd/coff64-rs6000.c	Tue Jun 16 09:07:18 2009
--- src.class/bfd/coff64-rs6000.c	Wed Aug 26 10:21:30 2009
*************** _bfd_xcoff64_swap_sym_out (abfd, inp, ex
*** 353,363 ****
  }
  
  static void
! _bfd_xcoff64_swap_aux_in (abfd, ext1, type, class, indx, numaux, in1)
       bfd *abfd;
       PTR ext1;
       int type;
!      int class;
       int indx;
       int numaux;
       PTR in1;
--- 353,363 ----
  }
  
  static void
! _bfd_xcoff64_swap_aux_in (abfd, ext1, type, in_class, indx, numaux, in1)
       bfd *abfd;
       PTR ext1;
       int type;
!      int in_class;
       int indx;
       int numaux;
       PTR in1;
*************** _bfd_xcoff64_swap_aux_in (abfd, ext1, ty
*** 365,371 ****
    union external_auxent *ext = (union external_auxent *) ext1;
    union internal_auxent *in = (union internal_auxent *) in1;
  
!   switch (class)
      {
      case C_FILE:
        if (ext->x_file.x_n.x_zeroes[0] == 0)
--- 365,371 ----
    union external_auxent *ext = (union external_auxent *) ext1;
    union internal_auxent *in = (union internal_auxent *) in1;
  
!   switch (in_class)
      {
      case C_FILE:
        if (ext->x_file.x_n.x_zeroes[0] == 0)
*************** _bfd_xcoff64_swap_aux_in (abfd, ext1, ty
*** 420,426 ****
        break;
      }
  
!   if (class == C_BLOCK || class == C_FCN || ISFCN (type) || ISTAG (class))
      {
        in->x_sym.x_fcnary.x_fcn.x_lnnoptr
  	= H_GET_64 (abfd, ext->x_sym.x_fcnary.x_fcn.x_lnnoptr);
--- 420,427 ----
        break;
      }
  
!   if (in_class == C_BLOCK || in_class == C_FCN || ISFCN (type)
!       || ISTAG (in_class))
      {
        in->x_sym.x_fcnary.x_fcn.x_lnnoptr
  	= H_GET_64 (abfd, ext->x_sym.x_fcnary.x_fcn.x_lnnoptr);
*************** _bfd_xcoff64_swap_aux_in (abfd, ext1, ty
*** 444,454 ****
  }
  
  static unsigned int
! _bfd_xcoff64_swap_aux_out (abfd, inp, type, class, indx, numaux, extp)
       bfd *abfd;
       PTR inp;
       int type;
!      int class;
       int indx ATTRIBUTE_UNUSED;
       int numaux ATTRIBUTE_UNUSED;
       PTR extp;
--- 445,455 ----
  }
  
  static unsigned int
! _bfd_xcoff64_swap_aux_out (abfd, inp, type, in_class, indx, numaux, extp)
       bfd *abfd;
       PTR inp;
       int type;
!      int in_class;
       int indx ATTRIBUTE_UNUSED;
       int numaux ATTRIBUTE_UNUSED;
       PTR extp;
*************** _bfd_xcoff64_swap_aux_out (abfd, inp, ty
*** 457,463 ****
    union external_auxent *ext = (union external_auxent *) extp;
  
    memset ((PTR) ext, 0, bfd_coff_auxesz (abfd));
!   switch (class)
      {
      case C_FILE:
        if (in->x_file.x_n.x_zeroes == 0)
--- 458,464 ----
    union external_auxent *ext = (union external_auxent *) extp;
  
    memset ((PTR) ext, 0, bfd_coff_auxesz (abfd));
!   switch (in_class)
      {
      case C_FILE:
        if (in->x_file.x_n.x_zeroes == 0)
*************** _bfd_xcoff64_swap_aux_out (abfd, inp, ty
*** 506,512 ****
        break;
      }
  
!   if (class == C_BLOCK || class == C_FCN || ISFCN (type) || ISTAG (class))
      {
        H_PUT_64 (abfd, in->x_sym.x_fcnary.x_fcn.x_lnnoptr,
  	       ext->x_sym.x_fcnary.x_fcn.x_lnnoptr);
--- 507,514 ----
        break;
      }
  
!   if (in_class == C_BLOCK || in_class == C_FCN || ISFCN (type)
!       || ISTAG (in_class))
      {
        H_PUT_64 (abfd, in->x_sym.x_fcnary.x_fcn.x_lnnoptr,
  	       ext->x_sym.x_fcnary.x_fcn.x_lnnoptr);
diff -prc src.head/bfd/coffcode.h src.class/bfd/coffcode.h
*** src.head/bfd/coffcode.h	Fri Aug 14 10:58:55 2009
--- src.class/bfd/coffcode.h	Sun Aug 16 14:10:35 2009
*************** coff_pointerize_aux_hook (bfd *abfd ATTR
*** 2443,2451 ****
  			  unsigned int indaux,
  			  combined_entry_type *aux)
  {
!   int class = symbol->u.syment.n_sclass;
  
!   if (CSECT_SYM_P (class)
        && indaux + 1 == symbol->u.syment.n_numaux)
      {
        if (SMTYP_SMTYP (aux->u.auxent.x_csect.x_smtyp) == XTY_LD)
--- 2443,2451 ----
  			  unsigned int indaux,
  			  combined_entry_type *aux)
  {
!   int n_sclass = symbol->u.syment.n_sclass;
  
!   if (CSECT_SYM_P (n_sclass)
        && indaux + 1 == symbol->u.syment.n_numaux)
      {
        if (SMTYP_SMTYP (aux->u.auxent.x_csect.x_smtyp) == XTY_LD)
Only in src.class/bfd: coffcode.h.orig
diff -prc src.head/bfd/coffgen.c src.class/bfd/coffgen.c
*** src.head/bfd/coffgen.c	Tue Jun 16 09:07:18 2009
--- src.class/bfd/coffgen.c	Sun Aug 16 15:00:09 2009
*************** coff_write_symbol (bfd *abfd,
*** 912,918 ****
  {
    unsigned int numaux = native->u.syment.n_numaux;
    int type = native->u.syment.n_type;
!   int class = native->u.syment.n_sclass;
    void * buf;
    bfd_size_type symesz;
  
--- 912,918 ----
  {
    unsigned int numaux = native->u.syment.n_numaux;
    int type = native->u.syment.n_type;
!   int n_sclass = native->u.syment.n_sclass;
    void * buf;
    bfd_size_type symesz;
  
*************** coff_write_symbol (bfd *abfd,
*** 958,964 ****
  	{
  	  bfd_coff_swap_aux_out (abfd,
  				 &((native + j + 1)->u.auxent),
! 				 type, class, (int) j,
  				 native->u.syment.n_numaux,
  				 buf);
  	  if (bfd_bwrite (buf, auxesz, abfd) != auxesz)
--- 958,964 ----
  	{
  	  bfd_coff_swap_aux_out (abfd,
  				 &((native + j + 1)->u.auxent),
! 				 type, n_sclass, (int) j,
  				 native->u.syment.n_numaux,
  				 buf);
  	  if (bfd_bwrite (buf, auxesz, abfd) != auxesz)
*************** coff_write_symbols (bfd *abfd)
*** 1156,1162 ****
  	  if (coff_backend_info (abfd)->_bfd_coff_classify_symbol != NULL)
  	    {
  	      bfd_error_handler_type current_error_handler;
! 	      enum coff_symbol_classification class;
  	      unsigned char *n_sclass;
  
  	      /* Suppress error reporting by bfd_coff_classify_symbol.
--- 1156,1162 ----
  	  if (coff_backend_info (abfd)->_bfd_coff_classify_symbol != NULL)
  	    {
  	      bfd_error_handler_type current_error_handler;
! 	      enum coff_symbol_classification sym_class;
  	      unsigned char *n_sclass;
  
  	      /* Suppress error reporting by bfd_coff_classify_symbol.
*************** coff_write_symbols (bfd *abfd)
*** 1164,1172 ****
  		 symbol which has no associated section and we do not have to
  		 worry about this, all we need to know is that it is local.  */
  	      current_error_handler = bfd_set_error_handler (null_error_handler);
! 	      class = bfd_coff_classify_symbol (abfd, &c_symbol->native->u.syment);
  	      (void) bfd_set_error_handler (current_error_handler);
! 	  
  	      n_sclass = &c_symbol->native->u.syment.n_sclass;
  
  	      /* If the symbol class has been changed (eg objcopy/ld script/etc)
--- 1164,1173 ----
  		 symbol which has no associated section and we do not have to
  		 worry about this, all we need to know is that it is local.  */
  	      current_error_handler = bfd_set_error_handler (null_error_handler);
! 	      sym_class = bfd_coff_classify_symbol (abfd,
!                                                    &c_symbol->native->u.syment);
  	      (void) bfd_set_error_handler (current_error_handler);
! 
  	      n_sclass = &c_symbol->native->u.syment.n_sclass;
  
  	      /* If the symbol class has been changed (eg objcopy/ld script/etc)
*************** coff_write_symbols (bfd *abfd)
*** 1178,1187 ****
  
  	      if (symbol->flags & BSF_WEAK)
  		*n_sclass = obj_pe (abfd) ? C_NT_WEAK : C_WEAKEXT;
! 	      else if (symbol->flags & BSF_LOCAL && class != COFF_SYMBOL_LOCAL)
  		*n_sclass = C_STAT;
  	      else if (symbol->flags & BSF_GLOBAL
! 		       && (class != COFF_SYMBOL_GLOBAL
  #ifdef COFF_WITH_PE
  			   || *n_sclass == C_NT_WEAK
  #endif
--- 1179,1188 ----
  
  	      if (symbol->flags & BSF_WEAK)
  		*n_sclass = obj_pe (abfd) ? C_NT_WEAK : C_WEAKEXT;
! 	      else if (symbol->flags & BSF_LOCAL && sym_class != COFF_SYMBOL_LOCAL)
  		*n_sclass = C_STAT;
  	      else if (symbol->flags & BSF_GLOBAL
! 		       && (sym_class != COFF_SYMBOL_GLOBAL
  #ifdef COFF_WITH_PE
  			   || *n_sclass == C_NT_WEAK
  #endif
*************** coff_pointerize_aux (bfd *abfd,
*** 1390,1396 ****
  		     combined_entry_type *auxent)
  {
    unsigned int type = symbol->u.syment.n_type;
!   unsigned int class = symbol->u.syment.n_sclass;
  
    if (coff_backend_info (abfd)->_bfd_coff_pointerize_aux_hook)
      {
--- 1391,1397 ----
  		     combined_entry_type *auxent)
  {
    unsigned int type = symbol->u.syment.n_type;
!   unsigned int n_sclass = symbol->u.syment.n_sclass;
  
    if (coff_backend_info (abfd)->_bfd_coff_pointerize_aux_hook)
      {
*************** coff_pointerize_aux (bfd *abfd,
*** 1400,1415 ****
      }
  
    /* Don't bother if this is a file or a section.  */
!   if (class == C_STAT && type == T_NULL)
      return;
!   if (class == C_FILE)
      return;
  
    /* Otherwise patch up.  */
  #define N_TMASK coff_data  (abfd)->local_n_tmask
  #define N_BTSHFT coff_data (abfd)->local_n_btshft
    
!   if ((ISFCN (type) || ISTAG (class) || class == C_BLOCK || class == C_FCN)
        && auxent->u.auxent.x_sym.x_fcnary.x_fcn.x_endndx.l > 0)
      {
        auxent->u.auxent.x_sym.x_fcnary.x_fcn.x_endndx.p =
--- 1401,1417 ----
      }
  
    /* Don't bother if this is a file or a section.  */
!   if (n_sclass == C_STAT && type == T_NULL)
      return;
!   if (n_sclass == C_FILE)
      return;
  
    /* Otherwise patch up.  */
  #define N_TMASK coff_data  (abfd)->local_n_tmask
  #define N_BTSHFT coff_data (abfd)->local_n_btshft
    
!   if ((ISFCN (type) || ISTAG (n_sclass) || n_sclass == C_BLOCK
!        || n_sclass == C_FCN)
        && auxent->u.auxent.x_sym.x_fcnary.x_fcn.x_endndx.l > 0)
      {
        auxent->u.auxent.x_sym.x_fcnary.x_fcn.x_endndx.p =
*************** coff_sizeof_headers (bfd *abfd, struct b
*** 2316,2322 ****
  bfd_boolean
  bfd_coff_set_symbol_class (bfd *         abfd,
  			   asymbol *     symbol,
! 			   unsigned int  class)
  {
    coff_symbol_type * csym;
  
--- 2318,2324 ----
  bfd_boolean
  bfd_coff_set_symbol_class (bfd *         abfd,
  			   asymbol *     symbol,
! 			   unsigned int  symbol_class)
  {
    coff_symbol_type * csym;
  
*************** bfd_coff_set_symbol_class (bfd *        
*** 2341,2347 ****
  	return FALSE;
  
        native->u.syment.n_type   = T_NULL;
!       native->u.syment.n_sclass = class;
  
        if (bfd_is_und_section (symbol->section))
  	{
--- 2343,2349 ----
  	return FALSE;
  
        native->u.syment.n_type   = T_NULL;
!       native->u.syment.n_sclass = symbol_class;
  
        if (bfd_is_und_section (symbol->section))
  	{
*************** bfd_coff_set_symbol_class (bfd *        
*** 2370,2376 ****
        csym->native = native;
      }
    else
!     csym->native->u.syment.n_sclass = class;
  
    return TRUE;
  }
--- 2372,2378 ----
        csym->native = native;
      }
    else
!     csym->native->u.syment.n_sclass = symbol_class;
  
    return TRUE;
  }
diff -prc src.head/bfd/cofflink.c src.class/bfd/cofflink.c
*** src.head/bfd/cofflink.c	Tue Jun 16 09:07:18 2009
--- src.class/bfd/cofflink.c	Sun Aug 16 14:10:35 2009
*************** _bfd_coff_link_hash_newfunc (struct bfd_
*** 79,85 ****
        /* Set local fields.  */
        ret->indx = -1;
        ret->type = T_NULL;
!       ret->class = C_NULL;
        ret->numaux = 0;
        ret->auxbfd = NULL;
        ret->aux = NULL;
--- 79,85 ----
        /* Set local fields.  */
        ret->indx = -1;
        ret->type = T_NULL;
!       ret->symbol_class = C_NULL;
        ret->numaux = 0;
        ret->auxbfd = NULL;
        ret->aux = NULL;
*************** coff_link_add_symbols (bfd *abfd,
*** 488,501 ****
                   the hash table, or if we are looking at a symbol
                   definition, then update the symbol class and type in
                   the hash table.  */
!   	      if (((*sym_hash)->class == C_NULL
    		   && (*sym_hash)->type == T_NULL)
    		  || sym.n_scnum != 0
    		  || (sym.n_value != 0
    		      && (*sym_hash)->root.type != bfd_link_hash_defined
    		      && (*sym_hash)->root.type != bfd_link_hash_defweak))
    		{
!   		  (*sym_hash)->class = sym.n_sclass;
    		  if (sym.n_type != T_NULL)
    		    {
    		      /* We want to warn if the type changed, but not
--- 488,501 ----
                   the hash table, or if we are looking at a symbol
                   definition, then update the symbol class and type in
                   the hash table.  */
!   	      if (((*sym_hash)->symbol_class == C_NULL
    		   && (*sym_hash)->type == T_NULL)
    		  || sym.n_scnum != 0
    		  || (sym.n_value != 0
    		      && (*sym_hash)->root.type != bfd_link_hash_defined
    		      && (*sym_hash)->root.type != bfd_link_hash_defweak))
    		{
!   		  (*sym_hash)->symbol_class = sym.n_sclass;
    		  if (sym.n_type != T_NULL)
    		    {
    		      /* We want to warn if the type changed, but not
*************** _bfd_coff_link_input_bfd (struct coff_fi
*** 1605,1611 ****
  	  mt = bfd_alloc (input_bfd, amt);
  	  if (mt == NULL)
  	    return FALSE;
! 	  mt->class = isym.n_sclass;
  
  	  /* Pick up the aux entry, which points to the end of the tag
               entries.  */
--- 1605,1611 ----
  	  mt = bfd_alloc (input_bfd, amt);
  	  if (mt == NULL)
  	    return FALSE;
! 	  mt->type_class = isym.n_sclass;
  
  	  /* Pick up the aux entry, which points to the end of the tag
               entries.  */
*************** _bfd_coff_link_input_bfd (struct coff_fi
*** 1694,1700 ****
  		{
  		  struct coff_debug_merge_element *me, *mel;
  
! 		  if (mtl->class != mt->class)
  		    continue;
  
  		  for (me = mt->elements, mel = mtl->elements;
--- 1694,1700 ----
  		{
  		  struct coff_debug_merge_element *me, *mel;
  
! 		  if (mtl->type_class != mt->type_class)
  		    continue;
  
  		  for (me = mt->elements, mel = mtl->elements;
*************** _bfd_coff_write_global_sym (struct coff_
*** 2556,2562 ****
        isym._n._n_n._n_offset = STRING_SIZE_SIZE + indx;
      }
  
!   isym.n_sclass = h->class;
    isym.n_type = h->type;
  
    if (isym.n_sclass == C_NULL)
--- 2556,2562 ----
        isym._n._n_n._n_offset = STRING_SIZE_SIZE + indx;
      }
  
!   isym.n_sclass = h->symbol_class;
    isym.n_type = h->type;
  
    if (isym.n_sclass == C_NULL)
*************** _bfd_coff_generic_relocate_section (bfd 
*** 2942,2948 ****
  
  	  else if (h->root.type == bfd_link_hash_undefweak)
  	    {
!               if (h->class == C_NT_WEAK && h->numaux == 1)
  		{
  		  /* See _Microsoft Portable Executable and Common Object
                       File Format Specification_, section 5.5.3.
--- 2942,2948 ----
  
  	  else if (h->root.type == bfd_link_hash_undefweak)
  	    {
!               if (h->symbol_class == C_NT_WEAK && h->numaux == 1)
  		{
  		  /* See _Microsoft Portable Executable and Common Object
                       File Format Specification_, section 5.5.3.
diff -prc src.head/bfd/coffswap.h src.class/bfd/coffswap.h
*** src.head/bfd/coffswap.h	Tue Jun 16 09:07:18 2009
--- src.class/bfd/coffswap.h	Thu Aug 27 09:16:28 2009
*************** static void
*** 382,388 ****
  coff_swap_aux_in (bfd *abfd,
  		  void * ext1,
  		  int type,
! 		  int class,
  		  int indx,
  		  int numaux,
  		  void * in1)
--- 382,388 ----
  coff_swap_aux_in (bfd *abfd,
  		  void * ext1,
  		  int type,
! 		  int in_class,
  		  int indx,
  		  int numaux,
  		  void * in1)
*************** coff_swap_aux_in (bfd *abfd,
*** 391,400 ****
    union internal_auxent *in = (union internal_auxent *) in1;
  
  #ifdef COFF_ADJUST_AUX_IN_PRE
!   COFF_ADJUST_AUX_IN_PRE (abfd, ext1, type, class, indx, numaux, in1);
  #endif
  
!   switch (class)
      {
      case C_FILE:
        if (ext->x_file.x_fname[0] == 0)
--- 391,400 ----
    union internal_auxent *in = (union internal_auxent *) in1;
  
  #ifdef COFF_ADJUST_AUX_IN_PRE
!   COFF_ADJUST_AUX_IN_PRE (abfd, ext1, type, in_class, indx, numaux, in1);
  #endif
  
!   switch (in_class)
      {
      case C_FILE:
        if (ext->x_file.x_fname[0] == 0)
*************** coff_swap_aux_in (bfd *abfd,
*** 446,452 ****
    in->x_sym.x_tvndx = H_GET_16 (abfd, ext->x_sym.x_tvndx);
  #endif
  
!   if (class == C_BLOCK || class == C_FCN || ISFCN (type) || ISTAG (class))
      {
        in->x_sym.x_fcnary.x_fcn.x_lnnoptr = GET_FCN_LNNOPTR (abfd, ext);
        in->x_sym.x_fcnary.x_fcn.x_endndx.l = GET_FCN_ENDNDX (abfd, ext);
--- 446,453 ----
    in->x_sym.x_tvndx = H_GET_16 (abfd, ext->x_sym.x_tvndx);
  #endif
  
!   if (in_class == C_BLOCK || in_class == C_FCN || ISFCN (type)
!       || ISTAG (in_class))
      {
        in->x_sym.x_fcnary.x_fcn.x_lnnoptr = GET_FCN_LNNOPTR (abfd, ext);
        in->x_sym.x_fcnary.x_fcn.x_endndx.l = GET_FCN_ENDNDX (abfd, ext);
*************** coff_swap_aux_in (bfd *abfd,
*** 477,483 ****
   end: ;
  
  #ifdef COFF_ADJUST_AUX_IN_POST
!   COFF_ADJUST_AUX_IN_POST (abfd, ext1, type, class, indx, numaux, in1);
  #endif
  }
  
--- 478,484 ----
   end: ;
  
  #ifdef COFF_ADJUST_AUX_IN_POST
!   COFF_ADJUST_AUX_IN_POST (abfd, ext1, type, in_class, indx, numaux, in1);
  #endif
  }
  
*************** static unsigned int
*** 485,491 ****
  coff_swap_aux_out (bfd * abfd,
  		   void * inp,
  		   int type,
! 		   int class,
  		   int indx ATTRIBUTE_UNUSED,
  		   int numaux ATTRIBUTE_UNUSED,
  		   void * extp)
--- 486,492 ----
  coff_swap_aux_out (bfd * abfd,
  		   void * inp,
  		   int type,
! 		   int in_class,
  		   int indx ATTRIBUTE_UNUSED,
  		   int numaux ATTRIBUTE_UNUSED,
  		   void * extp)
*************** coff_swap_aux_out (bfd * abfd,
*** 494,505 ****
    AUXENT *ext = (AUXENT *) extp;
  
  #ifdef COFF_ADJUST_AUX_OUT_PRE
!   COFF_ADJUST_AUX_OUT_PRE (abfd, inp, type, class, indx, numaux, extp);
  #endif
  
    memset (ext, 0, AUXESZ);
  
!   switch (class)
      {
      case C_FILE:
        if (in->x_file.x_fname[0] == 0)
--- 495,506 ----
    AUXENT *ext = (AUXENT *) extp;
  
  #ifdef COFF_ADJUST_AUX_OUT_PRE
!   COFF_ADJUST_AUX_OUT_PRE (abfd, inp, type, in_class, indx, numaux, extp);
  #endif
  
    memset (ext, 0, AUXESZ);
  
!   switch (in_class)
      {
      case C_FILE:
        if (in->x_file.x_fname[0] == 0)
*************** coff_swap_aux_out (bfd * abfd,
*** 537,543 ****
    H_PUT_16 (abfd, in->x_sym.x_tvndx, ext->x_sym.x_tvndx);
  #endif
  
!   if (class == C_BLOCK || class == C_FCN || ISFCN (type) || ISTAG (class))
      {
        PUT_FCN_LNNOPTR (abfd, in->x_sym.x_fcnary.x_fcn.x_lnnoptr, ext);
        PUT_FCN_ENDNDX (abfd, in->x_sym.x_fcnary.x_fcn.x_endndx.l, ext);
--- 538,545 ----
    H_PUT_16 (abfd, in->x_sym.x_tvndx, ext->x_sym.x_tvndx);
  #endif
  
!   if (in_class == C_BLOCK || in_class == C_FCN || ISFCN (type)
!       || ISTAG (in_class))
      {
        PUT_FCN_LNNOPTR (abfd, in->x_sym.x_fcnary.x_fcn.x_lnnoptr, ext);
        PUT_FCN_ENDNDX (abfd, in->x_sym.x_fcnary.x_fcn.x_endndx.l, ext);
*************** coff_swap_aux_out (bfd * abfd,
*** 567,573 ****
  
   end:
  #ifdef COFF_ADJUST_AUX_OUT_POST
!   COFF_ADJUST_AUX_OUT_POST (abfd, inp, type, class, indx, numaux, extp);
  #endif
    return AUXESZ;
  }
--- 569,575 ----
  
   end:
  #ifdef COFF_ADJUST_AUX_OUT_POST
!   COFF_ADJUST_AUX_OUT_POST (abfd, inp, type, in_class, indx, numaux, extp);
  #endif
    return AUXESZ;
  }
diff -prc src.head/bfd/libcoff-in.h src.class/bfd/libcoff-in.h
*** src.head/bfd/libcoff-in.h	Fri Aug 14 10:59:08 2009
--- src.class/bfd/libcoff-in.h	Wed Aug 19 10:35:53 2009
*************** struct coff_link_hash_entry
*** 254,260 ****
    unsigned short type;
  
    /* Symbol class.  */
!   unsigned char class;
  
    /* Number of auxiliary entries.  */
    char numaux;
--- 254,260 ----
    unsigned short type;
  
    /* Symbol class.  */
!   unsigned char symbol_class;
  
    /* Number of auxiliary entries.  */
    char numaux;
*************** struct coff_debug_merge_type
*** 394,400 ****
    struct coff_debug_merge_type *next;
  
    /* Class of type.  */
!   int class;
  
    /* Symbol index where this type is defined.  */
    long indx;
--- 394,400 ----
    struct coff_debug_merge_type *next;
  
    /* Class of type.  */
!   int type_class;
  
    /* Symbol index where this type is defined.  */
    long indx;
*************** extern bfd_boolean ppc_allocate_toc_sect
*** 603,606 ****
    (struct bfd_link_info *);
  extern bfd_boolean ppc_process_before_allocation
    (bfd *, struct bfd_link_info *);
- 
--- 603,605 ----
Only in src.class/bfd: libcoff-in.h.orig
diff -prc src.head/bfd/libcoff.h src.class/bfd/libcoff.h
*** src.head/bfd/libcoff.h	Fri Aug 14 10:59:08 2009
--- src.class/bfd/libcoff.h	Wed Aug 19 10:35:59 2009
*************** struct coff_link_hash_entry
*** 258,264 ****
    unsigned short type;
  
    /* Symbol class.  */
!   unsigned char class;
  
    /* Number of auxiliary entries.  */
    char numaux;
--- 258,264 ----
    unsigned short type;
  
    /* Symbol class.  */
!   unsigned char symbol_class;
  
    /* Number of auxiliary entries.  */
    char numaux;
*************** struct coff_debug_merge_type
*** 398,404 ****
    struct coff_debug_merge_type *next;
  
    /* Class of type.  */
!   int class;
  
    /* Symbol index where this type is defined.  */
    long indx;
--- 398,404 ----
    struct coff_debug_merge_type *next;
  
    /* Class of type.  */
!   int type_class;
  
    /* Symbol index where this type is defined.  */
    long indx;
*************** extern bfd_boolean ppc_allocate_toc_sect
*** 607,613 ****
    (struct bfd_link_info *);
  extern bfd_boolean ppc_process_before_allocation
    (bfd *, struct bfd_link_info *);
- 
  /* Extracted from coffcode.h.  */
  typedef struct coff_ptr_struct
  {
--- 607,612 ----
Only in src.class/bfd: libcoff.h.old
Only in src.class/bfd: libcoff.h.orig
diff -prc src.head/bfd/peXXigen.c src.class/bfd/peXXigen.c
*** src.head/bfd/peXXigen.c	Tue Jun 16 09:07:20 2009
--- src.class/bfd/peXXigen.c	Sun Aug 16 14:10:36 2009
*************** void
*** 231,237 ****
  _bfd_XXi_swap_aux_in (bfd *	abfd,
  		      void *	ext1,
  		      int       type,
! 		      int       class,
  		      int	indx ATTRIBUTE_UNUSED,
  		      int	numaux ATTRIBUTE_UNUSED,
  		      void * 	in1)
--- 231,237 ----
  _bfd_XXi_swap_aux_in (bfd *	abfd,
  		      void *	ext1,
  		      int       type,
! 		      int       in_class,
  		      int	indx ATTRIBUTE_UNUSED,
  		      int	numaux ATTRIBUTE_UNUSED,
  		      void * 	in1)
*************** _bfd_XXi_swap_aux_in (bfd *	abfd,
*** 239,245 ****
    AUXENT *ext = (AUXENT *) ext1;
    union internal_auxent *in = (union internal_auxent *) in1;
  
!   switch (class)
      {
      case C_FILE:
        if (ext->x_file.x_fname[0] == 0)
--- 239,245 ----
    AUXENT *ext = (AUXENT *) ext1;
    union internal_auxent *in = (union internal_auxent *) in1;
  
!   switch (in_class)
      {
      case C_FILE:
        if (ext->x_file.x_fname[0] == 0)
*************** _bfd_XXi_swap_aux_in (bfd *	abfd,
*** 270,276 ****
    in->x_sym.x_tagndx.l = H_GET_32 (abfd, ext->x_sym.x_tagndx);
    in->x_sym.x_tvndx = H_GET_16 (abfd, ext->x_sym.x_tvndx);
  
!   if (class == C_BLOCK || class == C_FCN || ISFCN (type) || ISTAG (class))
      {
        in->x_sym.x_fcnary.x_fcn.x_lnnoptr = GET_FCN_LNNOPTR (abfd, ext);
        in->x_sym.x_fcnary.x_fcn.x_endndx.l = GET_FCN_ENDNDX (abfd, ext);
--- 270,277 ----
    in->x_sym.x_tagndx.l = H_GET_32 (abfd, ext->x_sym.x_tagndx);
    in->x_sym.x_tvndx = H_GET_16 (abfd, ext->x_sym.x_tvndx);
  
!   if (in_class == C_BLOCK || in_class == C_FCN || ISFCN (type)
!       || ISTAG (in_class))
      {
        in->x_sym.x_fcnary.x_fcn.x_lnnoptr = GET_FCN_LNNOPTR (abfd, ext);
        in->x_sym.x_fcnary.x_fcn.x_endndx.l = GET_FCN_ENDNDX (abfd, ext);
*************** unsigned int
*** 302,308 ****
  _bfd_XXi_swap_aux_out (bfd *  abfd,
  		       void * inp,
  		       int    type,
! 		       int    class,
  		       int    indx ATTRIBUTE_UNUSED,
  		       int    numaux ATTRIBUTE_UNUSED,
  		       void * extp)
--- 303,309 ----
  _bfd_XXi_swap_aux_out (bfd *  abfd,
  		       void * inp,
  		       int    type,
! 		       int    in_class,
  		       int    indx ATTRIBUTE_UNUSED,
  		       int    numaux ATTRIBUTE_UNUSED,
  		       void * extp)
*************** _bfd_XXi_swap_aux_out (bfd *  abfd,
*** 312,318 ****
  
    memset (ext, 0, AUXESZ);
  
!   switch (class)
      {
      case C_FILE:
        if (in->x_file.x_fname[0] == 0)
--- 313,319 ----
  
    memset (ext, 0, AUXESZ);
  
!   switch (in_class)
      {
      case C_FILE:
        if (in->x_file.x_fname[0] == 0)
*************** _bfd_XXi_swap_aux_out (bfd *  abfd,
*** 344,350 ****
    H_PUT_32 (abfd, in->x_sym.x_tagndx.l, ext->x_sym.x_tagndx);
    H_PUT_16 (abfd, in->x_sym.x_tvndx, ext->x_sym.x_tvndx);
  
!   if (class == C_BLOCK || class == C_FCN || ISFCN (type) || ISTAG (class))
      {
        PUT_FCN_LNNOPTR (abfd, in->x_sym.x_fcnary.x_fcn.x_lnnoptr,  ext);
        PUT_FCN_ENDNDX  (abfd, in->x_sym.x_fcnary.x_fcn.x_endndx.l, ext);
--- 345,352 ----
    H_PUT_32 (abfd, in->x_sym.x_tagndx.l, ext->x_sym.x_tagndx);
    H_PUT_16 (abfd, in->x_sym.x_tvndx, ext->x_sym.x_tvndx);
  
!   if (in_class == C_BLOCK || in_class == C_FCN || ISFCN (type)
!       || ISTAG (in_class))
      {
        PUT_FCN_LNNOPTR (abfd, in->x_sym.x_fcnary.x_fcn.x_lnnoptr,  ext);
        PUT_FCN_ENDNDX  (abfd, in->x_sym.x_fcnary.x_fcn.x_endndx.l, ext);
diff -prc src.head/bfd/pef.c src.class/bfd/pef.c
*** src.head/bfd/pef.c	Tue Jun 16 09:07:20 2009
--- src.class/bfd/pef.c	Wed Aug 19 17:01:26 2009
*************** bfd_pef_parse_imported_symbol (bfd *abfd
*** 361,367 ****
    BFD_ASSERT (len == 4);
  
    value = bfd_getb32 (buf);
!   symbol->class = value >> 24;
    symbol->name = value & 0x00ffffff;
  
    return 0;
--- 361,367 ----
    BFD_ASSERT (len == 4);
  
    value = bfd_getb32 (buf);
!   symbol->symbol_class = value >> 24;
    symbol->name = value & 0x00ffffff;
  
    return 0;
diff -prc src.head/bfd/pef.h src.class/bfd/pef.h
*** src.head/bfd/pef.h	Tue Jun 16 09:07:21 2009
--- src.class/bfd/pef.h	Wed Aug 19 17:01:27 2009
*************** enum bfd_pef_imported_library_options
*** 79,85 ****
  
  struct bfd_pef_imported_symbol
  {
!   unsigned char class;
    unsigned long name;
  };
  typedef struct bfd_pef_imported_symbol bfd_pef_imported_symbol;
--- 79,85 ----
  
  struct bfd_pef_imported_symbol
  {
!   unsigned char symbol_class;
    unsigned long name;
  };
  typedef struct bfd_pef_imported_symbol bfd_pef_imported_symbol;
diff -prc src.head/binutils/ieee.c src.class/binutils/ieee.c
*** src.head/binutils/ieee.c	Tue Jun 16 09:07:12 2009
--- src.class/binutils/ieee.c	Sun Aug 16 14:10:36 2009
*************** ieee_read_cxx_misc (struct ieee_info *in
*** 2500,2506 ****
  
      case 'z':
        {
! 	const char *name, *mangled, *class;
  	unsigned long namlen, mangledlen, classlen;
  	bfd_vma control;
  
--- 2500,2506 ----
  
      case 'z':
        {
! 	const char *name, *mangled, *cxx_class;
  	unsigned long namlen, mangledlen, classlen;
  	bfd_vma control;
  
*************** ieee_read_cxx_misc (struct ieee_info *in
*** 2508,2514 ****
  
  	if (! ieee_require_atn65 (info, pp, &name, &namlen)
  	    || ! ieee_require_atn65 (info, pp, &mangled, &mangledlen)
! 	    || ! ieee_require_atn65 (info, pp, &class, &classlen)
  	    || ! ieee_require_asn (info, pp, &control))
  	  return FALSE;
  
--- 2508,2514 ----
  
  	if (! ieee_require_atn65 (info, pp, &name, &namlen)
  	    || ! ieee_require_atn65 (info, pp, &mangled, &mangledlen)
! 	    || ! ieee_require_atn65 (info, pp, &cxx_class, &classlen)
  	    || ! ieee_require_asn (info, pp, &control))
  	  return FALSE;
  
*************** ieee_read_cxx_class (struct ieee_info *i
*** 2533,2539 ****
  		     unsigned long count)
  {
    const bfd_byte *start;
!   bfd_vma class;
    const char *tag;
    unsigned long taglen;
    struct ieee_tag *it;
--- 2533,2539 ----
  		     unsigned long count)
  {
    const bfd_byte *start;
!   bfd_vma cxx_class;
    const char *tag;
    unsigned long taglen;
    struct ieee_tag *it;
*************** ieee_read_cxx_class (struct ieee_info *i
*** 2558,2564 ****
  
    start = *pp;
  
!   if (! ieee_require_asn (info, pp, &class))
      return FALSE;
    --count;
  
--- 2558,2564 ----
  
    start = *pp;
  
!   if (! ieee_require_asn (info, pp, &cxx_class))
      return FALSE;
    --count;
  
*************** ieee_read_cxx_class (struct ieee_info *i
*** 3180,3186 ****
       it->slot.  We update it->slot to automatically update all
       references to this struct.  */
    it->slot = debug_make_object_type (dhandle,
! 				     class != 'u',
  				     debug_get_type_size (dhandle,
  							  it->slot),
  				     fields, baseclasses, dmethods,
--- 3180,3186 ----
       it->slot.  We update it->slot to automatically update all
       references to this struct.  */
    it->slot = debug_make_object_type (dhandle,
! 				     cxx_class != 'u',
  				     debug_get_type_size (dhandle,
  							  it->slot),
  				     fields, baseclasses, dmethods,
*************** ieee_read_reference (struct ieee_info *i
*** 3303,3309 ****
  {
    const bfd_byte *start;
    bfd_vma flags;
!   const char *class, *name;
    unsigned long classlen, namlen;
    debug_type *pslot;
    debug_type target;
--- 3303,3309 ----
  {
    const bfd_byte *start;
    bfd_vma flags;
!   const char *cxx_class, *name;
    unsigned long classlen, namlen;
    debug_type *pslot;
    debug_type target;
*************** ieee_read_reference (struct ieee_info *i
*** 3317,3323 ****
       the spec.  */
    if (flags == 3)
      {
!       if (! ieee_require_atn65 (info, pp, &class, &classlen))
  	return FALSE;
      }
  
--- 3317,3323 ----
       the spec.  */
    if (flags == 3)
      {
!       if (! ieee_require_atn65 (info, pp, &cxx_class, &classlen))
  	return FALSE;
      }
  
*************** ieee_read_reference (struct ieee_info *i
*** 3407,3414 ****
  
        for (it = info->tags; it != NULL; it = it->next)
  	{
! 	  if (it->name[0] == class[0]
! 	      && strncmp (it->name, class, classlen) == 0
  	      && strlen (it->name) == classlen)
  	    {
  	      if (it->fslots != NULL)
--- 3407,3414 ----
  
        for (it = info->tags; it != NULL; it = it->next)
  	{
! 	  if (it->name[0] == cxx_class[0]
! 	      && strncmp (it->name, cxx_class, classlen) == 0
  	      && strlen (it->name) == classlen)
  	    {
  	      if (it->fslots != NULL)
Only in src.head: cvs.diff
diff -prc src.head/gas/config/tc-arc.c src.class/gas/config/tc-arc.c
*** src.head/gas/config/tc-arc.c	Fri Aug 14 10:59:49 2009
--- src.class/gas/config/tc-arc.c	Sun Aug 16 14:10:36 2009
*************** const struct syntax_classes
*** 47,53 ****
  {
    char *name;
    int  len;
!   int  class;
  } syntaxclass[] =
  {
    { "SYNTAX_3OP|OP1_MUST_BE_IMM", 26, SYNTAX_3OP|OP1_MUST_BE_IMM|SYNTAX_VALID },
--- 47,53 ----
  {
    char *name;
    int  len;
!   int  s_class;
  } syntaxclass[] =
  {
    { "SYNTAX_3OP|OP1_MUST_BE_IMM", 26, SYNTAX_3OP|OP1_MUST_BE_IMM|SYNTAX_VALID },
*************** arc_extinst (int ignore ATTRIBUTE_UNUSED
*** 646,652 ****
    int suffixcode = -1;
    int opcode, subopcode;
    int i;
!   int class = 0;
    int name_len;
    struct arc_opcode *ext_op;
  
--- 646,652 ----
    int suffixcode = -1;
    int opcode, subopcode;
    int i;
!   int s_class = 0;
    int name_len;
    struct arc_opcode *ext_op;
  
*************** arc_extinst (int ignore ATTRIBUTE_UNUSED
*** 756,775 ****
      {
        if (!strncmp (syntaxclass[i].name,input_line_pointer, syntaxclass[i].len))
  	{
! 	  class = syntaxclass[i].class;
  	  input_line_pointer += syntaxclass[i].len;
  	  break;
  	}
      }
  
!   if (0 == (SYNTAX_VALID & class))
      {
        as_bad (_("invalid syntax class"));
        ignore_rest_of_line ();
        return;
      }
  
!   if ((0x3 == opcode) & (class & SYNTAX_3OP))
      {
        as_bad (_("opcode 0x3 and SYNTAX_3OP invalid"));
        ignore_rest_of_line ();
--- 756,775 ----
      {
        if (!strncmp (syntaxclass[i].name,input_line_pointer, syntaxclass[i].len))
  	{
! 	  s_class = syntaxclass[i].s_class;
  	  input_line_pointer += syntaxclass[i].len;
  	  break;
  	}
      }
  
!   if (0 == (SYNTAX_VALID & s_class))
      {
        as_bad (_("invalid syntax class"));
        ignore_rest_of_line ();
        return;
      }
  
!   if ((0x3 == opcode) & (s_class & SYNTAX_3OP))
      {
        as_bad (_("opcode 0x3 and SYNTAX_3OP invalid"));
        ignore_rest_of_line ();
*************** arc_extinst (int ignore ATTRIBUTE_UNUSED
*** 797,803 ****
        break;
      };
  
!   strcat (syntax, ((opcode == 0x3) ? "%a,%b" : ((class & SYNTAX_3OP) ? "%a,%b,%c" : "%b,%c")));
    if (suffixcode < 2)
      strcat (syntax, "%F");
    strcat (syntax, "%S%L");
--- 797,803 ----
        break;
      };
  
!   strcat (syntax, ((opcode == 0x3) ? "%a,%b" : ((s_class & SYNTAX_3OP) ? "%a,%b,%c" : "%b,%c")));
    if (suffixcode < 2)
      strcat (syntax, "%F");
    strcat (syntax, "%S%L");
*************** arc_extinst (int ignore ATTRIBUTE_UNUSED
*** 807,813 ****
  
    ext_op->mask  = I (-1) | ((0x3 == opcode) ? C (-1) : 0);
    ext_op->value = I (opcode) | ((0x3 == opcode) ? C (subopcode) : 0);
!   ext_op->flags = class;
    ext_op->next_asm = arc_ext_opcodes;
    ext_op->next_dis = arc_ext_opcodes;
    arc_ext_opcodes = ext_op;
--- 807,813 ----
  
    ext_op->mask  = I (-1) | ((0x3 == opcode) ? C (-1) : 0);
    ext_op->value = I (opcode) | ((0x3 == opcode) ? C (subopcode) : 0);
!   ext_op->flags = s_class;
    ext_op->next_asm = arc_ext_opcodes;
    ext_op->next_dis = arc_ext_opcodes;
    arc_ext_opcodes = ext_op;
*************** arc_extinst (int ignore ATTRIBUTE_UNUSED
*** 829,835 ****
    p = frag_more (1);
    *p = subopcode;
    p = frag_more (1);
!   *p = (class & (OP1_MUST_BE_IMM | OP1_IMM_IMPLIED) ? IGNORE_FIRST_OPD : 0);
    p = frag_more (name_len);
    strncpy (p, syntax, name_len);
    p = frag_more (1);
--- 829,835 ----
    p = frag_more (1);
    *p = subopcode;
    p = frag_more (1);
!   *p = (s_class & (OP1_MUST_BE_IMM | OP1_IMM_IMPLIED) ? IGNORE_FIRST_OPD : 0);
    p = frag_more (name_len);
    strncpy (p, syntax, name_len);
    p = frag_more (1);
diff -prc src.head/gas/config/tc-mips.c src.class/gas/config/tc-mips.c
*** src.head/gas/config/tc-mips.c	Fri Aug 14 10:59:53 2009
--- src.class/gas/config/tc-mips.c	Sun Aug 16 14:10:36 2009
*************** fixup_has_matching_lo_p (fixS *fixp)
*** 2221,2240 ****
  
  static int
  insn_uses_reg (const struct mips_cl_insn *ip, unsigned int reg,
! 	       enum mips_regclass class)
  {
!   if (class == MIPS16_REG)
      {
        gas_assert (mips_opts.mips16);
        reg = mips16_to_32_reg_map[reg];
!       class = MIPS_GR_REG;
      }
  
    /* Don't report on general register ZERO, since it never changes.  */
!   if (class == MIPS_GR_REG && reg == ZERO)
      return 0;
  
!   if (class == MIPS_FP_REG)
      {
        gas_assert (! mips_opts.mips16);
        /* If we are called with either $f0 or $f1, we must check $f0.
--- 2221,2240 ----
  
  static int
  insn_uses_reg (const struct mips_cl_insn *ip, unsigned int reg,
! 	       enum mips_regclass regclass)
  {
!   if (regclass == MIPS16_REG)
      {
        gas_assert (mips_opts.mips16);
        reg = mips16_to_32_reg_map[reg];
!       regclass = MIPS_GR_REG;
      }
  
    /* Don't report on general register ZERO, since it never changes.  */
!   if (regclass == MIPS_GR_REG && reg == ZERO)
      return 0;
  
!   if (regclass == MIPS_FP_REG)
      {
        gas_assert (! mips_opts.mips16);
        /* If we are called with either $f0 or $f1, we must check $f0.
Only in src.class/gas/config: tc-mips.c.orig
Only in src.head/gas/config: tc-moxie.c.~1.5.~
diff -prc src.head/gas/config/tc-ppc.c src.class/gas/config/tc-ppc.c
*** src.head/gas/config/tc-ppc.c	Fri Aug 14 10:59:54 2009
--- src.class/gas/config/tc-ppc.c	Wed Aug 19 17:09:55 2009
*************** ppc_csect (int ignore ATTRIBUTE_UNUSED)
*** 3338,3344 ****
    if (S_GET_NAME (sym)[0] == '\0')
      {
        /* An unnamed csect is assumed to be [PR].  */
!       symbol_get_tc (sym)->class = XMC_PR;
      }
  
    align = 2;
--- 3338,3344 ----
    if (S_GET_NAME (sym)[0] == '\0')
      {
        /* An unnamed csect is assumed to be [PR].  */
!       symbol_get_tc (sym)->symbol_class = XMC_PR;
      }
  
    align = 2;
*************** ppc_change_csect (symbolS *sym, offsetT 
*** 3374,3380 ****
  	 data section.  */
        after_toc = 0;
        is_code = 0;
!       switch (symbol_get_tc (sym)->class)
  	{
  	case XMC_PR:
  	case XMC_RO:
--- 3374,3380 ----
  	 data section.  */
        after_toc = 0;
        is_code = 0;
!       switch (symbol_get_tc (sym)->symbol_class)
  	{
  	case XMC_PR:
  	case XMC_RO:
*************** ppc_function (int ignore ATTRIBUTE_UNUSE
*** 3764,3771 ****
        symbol_set_value_expression (ext_sym, &exp);
      }
  
!   if (symbol_get_tc (ext_sym)->class == -1)
!     symbol_get_tc (ext_sym)->class = XMC_PR;
    symbol_get_tc (ext_sym)->output = 1;
  
    if (*input_line_pointer == ',')
--- 3764,3771 ----
        symbol_set_value_expression (ext_sym, &exp);
      }
  
!   if (symbol_get_tc (ext_sym)->symbol_class == -1)
!     symbol_get_tc (ext_sym)->symbol_class = XMC_PR;
    symbol_get_tc (ext_sym)->output = 1;
  
    if (*input_line_pointer == ',')
*************** ppc_tc (int ignore ATTRIBUTE_UNUSED)
*** 4198,4204 ****
  	symbolS *label;
  
  	label = symbol_get_tc (ppc_current_csect)->within;
! 	if (symbol_get_tc (label)->class != XMC_TC0)
  	  {
  	    as_bad (_(".tc with no label"));
  	    ignore_rest_of_line ();
--- 4198,4204 ----
  	symbolS *label;
  
  	label = symbol_get_tc (ppc_current_csect)->within;
! 	if (symbol_get_tc (label)->symbol_class != XMC_TC0)
  	  {
  	    as_bad (_(".tc with no label"));
  	    ignore_rest_of_line ();
*************** ppc_tc (int ignore ATTRIBUTE_UNUSED)
*** 4218,4224 ****
      S_SET_SEGMENT (sym, now_seg);
      symbol_set_frag (sym, frag_now);
      S_SET_VALUE (sym, (valueT) frag_now_fix ());
!     symbol_get_tc (sym)->class = XMC_TC;
      symbol_get_tc (sym)->output = 1;
  
      ppc_frob_label (sym);
--- 4218,4224 ----
      S_SET_SEGMENT (sym, now_seg);
      symbol_set_frag (sym, frag_now);
      S_SET_VALUE (sym, (valueT) frag_now_fix ());
!     symbol_get_tc (sym)->symbol_class = XMC_TC;
      symbol_get_tc (sym)->output = 1;
  
      ppc_frob_label (sym);
*************** static int
*** 4322,4328 ****
  ppc_is_toc_sym (symbolS *sym)
  {
  #ifdef OBJ_XCOFF
!   return symbol_get_tc (sym)->class == XMC_TC;
  #endif
  #ifdef OBJ_ELF
    const char *sname = segment_name (S_GET_SEGMENT (sym));
--- 4322,4328 ----
  ppc_is_toc_sym (symbolS *sym)
  {
  #ifdef OBJ_XCOFF
!   return symbol_get_tc (sym)->symbol_class == XMC_TC;
  #endif
  #ifdef OBJ_ELF
    const char *sname = segment_name (S_GET_SEGMENT (sym));
*************** ppc_symbol_new_hook (symbolS *sym)
*** 4972,4978 ****
    tc = symbol_get_tc (sym);
    tc->next = NULL;
    tc->output = 0;
!   tc->class = -1;
    tc->real_name = NULL;
    tc->subseg = 0;
    tc->align = 0;
--- 4972,4978 ----
    tc = symbol_get_tc (sym);
    tc->next = NULL;
    tc->output = 0;
!   tc->symbol_class = -1;
    tc->real_name = NULL;
    tc->subseg = 0;
    tc->align = 0;
*************** ppc_symbol_new_hook (symbolS *sym)
*** 4995,5049 ****
      {
      case 'B':
        if (strcmp (s, "BS]") == 0)
! 	tc->class = XMC_BS;
        break;
      case 'D':
        if (strcmp (s, "DB]") == 0)
! 	tc->class = XMC_DB;
        else if (strcmp (s, "DS]") == 0)
! 	tc->class = XMC_DS;
        break;
      case 'G':
        if (strcmp (s, "GL]") == 0)
! 	tc->class = XMC_GL;
        break;
      case 'P':
        if (strcmp (s, "PR]") == 0)
! 	tc->class = XMC_PR;
        break;
      case 'R':
        if (strcmp (s, "RO]") == 0)
! 	tc->class = XMC_RO;
        else if (strcmp (s, "RW]") == 0)
! 	tc->class = XMC_RW;
        break;
      case 'S':
        if (strcmp (s, "SV]") == 0)
! 	tc->class = XMC_SV;
        break;
      case 'T':
        if (strcmp (s, "TC]") == 0)
! 	tc->class = XMC_TC;
        else if (strcmp (s, "TI]") == 0)
! 	tc->class = XMC_TI;
        else if (strcmp (s, "TB]") == 0)
! 	tc->class = XMC_TB;
        else if (strcmp (s, "TC0]") == 0 || strcmp (s, "T0]") == 0)
! 	tc->class = XMC_TC0;
        break;
      case 'U':
        if (strcmp (s, "UA]") == 0)
! 	tc->class = XMC_UA;
        else if (strcmp (s, "UC]") == 0)
! 	tc->class = XMC_UC;
        break;
      case 'X':
        if (strcmp (s, "XO]") == 0)
! 	tc->class = XMC_XO;
        break;
      }
  
!   if (tc->class == -1)
      as_bad (_("Unrecognized symbol suffix"));
  }
  
--- 4995,5049 ----
      {
      case 'B':
        if (strcmp (s, "BS]") == 0)
! 	tc->symbol_class = XMC_BS;
        break;
      case 'D':
        if (strcmp (s, "DB]") == 0)
! 	tc->symbol_class = XMC_DB;
        else if (strcmp (s, "DS]") == 0)
! 	tc->symbol_class = XMC_DS;
        break;
      case 'G':
        if (strcmp (s, "GL]") == 0)
! 	tc->symbol_class = XMC_GL;
        break;
      case 'P':
        if (strcmp (s, "PR]") == 0)
! 	tc->symbol_class = XMC_PR;
        break;
      case 'R':
        if (strcmp (s, "RO]") == 0)
! 	tc->symbol_class = XMC_RO;
        else if (strcmp (s, "RW]") == 0)
! 	tc->symbol_class = XMC_RW;
        break;
      case 'S':
        if (strcmp (s, "SV]") == 0)
! 	tc->symbol_class = XMC_SV;
        break;
      case 'T':
        if (strcmp (s, "TC]") == 0)
! 	tc->symbol_class = XMC_TC;
        else if (strcmp (s, "TI]") == 0)
! 	tc->symbol_class = XMC_TI;
        else if (strcmp (s, "TB]") == 0)
! 	tc->symbol_class = XMC_TB;
        else if (strcmp (s, "TC0]") == 0 || strcmp (s, "T0]") == 0)
! 	tc->symbol_class = XMC_TC0;
        break;
      case 'U':
        if (strcmp (s, "UA]") == 0)
! 	tc->symbol_class = XMC_UA;
        else if (strcmp (s, "UC]") == 0)
! 	tc->symbol_class = XMC_UC;
        break;
      case 'X':
        if (strcmp (s, "XO]") == 0)
! 	tc->symbol_class = XMC_XO;
        break;
      }
  
!   if (tc->symbol_class == -1)
      as_bad (_("Unrecognized symbol suffix"));
  }
  
*************** ppc_frob_label (symbolS *sym)
*** 5056,5063 ****
  {
    if (ppc_current_csect != (symbolS *) NULL)
      {
!       if (symbol_get_tc (sym)->class == -1)
! 	symbol_get_tc (sym)->class = symbol_get_tc (ppc_current_csect)->class;
  
        symbol_remove (sym, &symbol_rootP, &symbol_lastP);
        symbol_append (sym, symbol_get_tc (ppc_current_csect)->within,
--- 5056,5063 ----
  {
    if (ppc_current_csect != (symbolS *) NULL)
      {
!       if (symbol_get_tc (sym)->symbol_class == -1)
! 	symbol_get_tc (sym)->symbol_class = symbol_get_tc (ppc_current_csect)->symbol_class;
  
        symbol_remove (sym, &symbol_rootP, &symbol_lastP);
        symbol_append (sym, symbol_get_tc (ppc_current_csect)->within,
*************** ppc_frob_symbol (symbolS *sym)
*** 5180,5186 ****
        i = S_GET_NUMBER_AUXILIARY (sym);
        S_SET_NUMBER_AUXILIARY (sym, i + 1);
        a = &coffsymbol (symbol_get_bfdsym (sym))->native[i + 1].u.auxent;
!       if (symbol_get_tc (sym)->class == XMC_TC0)
  	{
  	  /* This is the TOC table.  */
  	  know (strcmp (S_GET_NAME (sym), "TOC") == 0);
--- 5180,5186 ----
        i = S_GET_NUMBER_AUXILIARY (sym);
        S_SET_NUMBER_AUXILIARY (sym, i + 1);
        a = &coffsymbol (symbol_get_bfdsym (sym))->native[i + 1].u.auxent;
!       if (symbol_get_tc (sym)->symbol_class == XMC_TC0)
  	{
  	  /* This is the TOC table.  */
  	  know (strcmp (S_GET_NAME (sym), "TOC") == 0);
*************** ppc_frob_symbol (symbolS *sym)
*** 5209,5217 ****
  	  a->x_csect.x_scnlen.l = symbol_get_frag (sym)->fr_offset;
  	  a->x_csect.x_smtyp = (symbol_get_tc (sym)->align << 3) | XTY_CM;
  	  if (S_IS_EXTERNAL (sym))
! 	    symbol_get_tc (sym)->class = XMC_RW;
  	  else
! 	    symbol_get_tc (sym)->class = XMC_BS;
  	}
        else if (S_GET_SEGMENT (sym) == absolute_section)
  	{
--- 5209,5217 ----
  	  a->x_csect.x_scnlen.l = symbol_get_frag (sym)->fr_offset;
  	  a->x_csect.x_smtyp = (symbol_get_tc (sym)->align << 3) | XTY_CM;
  	  if (S_IS_EXTERNAL (sym))
! 	    symbol_get_tc (sym)->symbol_class = XMC_RW;
  	  else
! 	    symbol_get_tc (sym)->symbol_class = XMC_BS;
  	}
        else if (S_GET_SEGMENT (sym) == absolute_section)
  	{
*************** ppc_frob_symbol (symbolS *sym)
*** 5219,5226 ****
  	     ppc_adjust_symtab.  */
  	  ppc_saw_abs = TRUE;
  	  a->x_csect.x_smtyp = XTY_LD;
! 	  if (symbol_get_tc (sym)->class == -1)
! 	    symbol_get_tc (sym)->class = XMC_XO;
  	}
        else if (! S_IS_DEFINED (sym))
  	{
--- 5219,5226 ----
  	     ppc_adjust_symtab.  */
  	  ppc_saw_abs = TRUE;
  	  a->x_csect.x_smtyp = XTY_LD;
! 	  if (symbol_get_tc (sym)->symbol_class == -1)
! 	    symbol_get_tc (sym)->symbol_class = XMC_XO;
  	}
        else if (! S_IS_DEFINED (sym))
  	{
*************** ppc_frob_symbol (symbolS *sym)
*** 5228,5244 ****
  	  a->x_csect.x_scnlen.l = 0;
  	  a->x_csect.x_smtyp = XTY_ER;
  	}
!       else if (symbol_get_tc (sym)->class == XMC_TC)
  	{
  	  symbolS *next;
  
  	  /* This is a TOC definition.  x_scnlen is the size of the
  	     TOC entry.  */
  	  next = symbol_next (sym);
! 	  while (symbol_get_tc (next)->class == XMC_TC0)
  	    next = symbol_next (next);
  	  if (next == (symbolS *) NULL
! 	      || symbol_get_tc (next)->class != XMC_TC)
  	    {
  	      if (ppc_after_toc_frag == (fragS *) NULL)
  		a->x_csect.x_scnlen.l = (bfd_section_size (stdoutput,
--- 5228,5244 ----
  	  a->x_csect.x_scnlen.l = 0;
  	  a->x_csect.x_smtyp = XTY_ER;
  	}
!       else if (symbol_get_tc (sym)->symbol_class == XMC_TC)
  	{
  	  symbolS *next;
  
  	  /* This is a TOC definition.  x_scnlen is the size of the
  	     TOC entry.  */
  	  next = symbol_next (sym);
! 	  while (symbol_get_tc (next)->symbol_class == XMC_TC0)
  	    next = symbol_next (next);
  	  if (next == (symbolS *) NULL
! 	      || symbol_get_tc (next)->symbol_class != XMC_TC)
  	    {
  	      if (ppc_after_toc_frag == (fragS *) NULL)
  		a->x_csect.x_scnlen.l = (bfd_section_size (stdoutput,
*************** ppc_frob_symbol (symbolS *sym)
*** 5298,5307 ****
  
        a->x_csect.x_parmhash = 0;
        a->x_csect.x_snhash = 0;
!       if (symbol_get_tc (sym)->class == -1)
  	a->x_csect.x_smclas = XMC_PR;
        else
! 	a->x_csect.x_smclas = symbol_get_tc (sym)->class;
        a->x_csect.x_stab = 0;
        a->x_csect.x_snstab = 0;
  
--- 5298,5307 ----
  
        a->x_csect.x_parmhash = 0;
        a->x_csect.x_snhash = 0;
!       if (symbol_get_tc (sym)->symbol_class == -1)
  	a->x_csect.x_smclas = XMC_PR;
        else
! 	a->x_csect.x_smclas = symbol_get_tc (sym)->symbol_class;
        a->x_csect.x_stab = 0;
        a->x_csect.x_snstab = 0;
  
*************** ppc_fix_adjustable (fixS *fix)
*** 5506,5514 ****
  	{
  	  TC_SYMFIELD_TYPE *sy_tc = symbol_get_tc (sy);
  
! 	  if (sy_tc->class == XMC_TC0)
  	    continue;
! 	  if (sy_tc->class != XMC_TC)
  	    break;
  	  if (val == resolve_symbol_value (sy))
  	    {
--- 5506,5514 ----
  	{
  	  TC_SYMFIELD_TYPE *sy_tc = symbol_get_tc (sy);
  
! 	  if (sy_tc->symbol_class == XMC_TC0)
  	    continue;
! 	  if (sy_tc->symbol_class != XMC_TC)
  	    break;
  	  if (val == resolve_symbol_value (sy))
  	    {
*************** ppc_fix_adjustable (fixS *fix)
*** 5525,5532 ****
    /* Possibly adjust the reloc to be against the csect.  */
    tc = symbol_get_tc (fix->fx_addsy);
    if (tc->subseg == 0
!       && tc->class != XMC_TC0
!       && tc->class != XMC_TC
        && symseg != bss_section
        /* Don't adjust if this is a reloc in the toc section.  */
        && (symseg != data_section
--- 5525,5532 ----
    /* Possibly adjust the reloc to be against the csect.  */
    tc = symbol_get_tc (fix->fx_addsy);
    if (tc->subseg == 0
!       && tc->symbol_class != XMC_TC0
!       && tc->symbol_class != XMC_TC
        && symseg != bss_section
        /* Don't adjust if this is a reloc in the toc section.  */
        && (symseg != data_section
*************** md_apply_fix (fixS *fixP, valueT *valP, 
*** 5791,5798 ****
  	  && (operand->insert == NULL || ppc_obj64)
  	  && fixP->fx_addsy != NULL
  	  && symbol_get_tc (fixP->fx_addsy)->subseg != 0
! 	  && symbol_get_tc (fixP->fx_addsy)->class != XMC_TC
! 	  && symbol_get_tc (fixP->fx_addsy)->class != XMC_TC0
  	  && S_GET_SEGMENT (fixP->fx_addsy) != bss_section)
  	{
  	  value = fixP->fx_offset;
--- 5791,5798 ----
  	  && (operand->insert == NULL || ppc_obj64)
  	  && fixP->fx_addsy != NULL
  	  && symbol_get_tc (fixP->fx_addsy)->subseg != 0
! 	  && symbol_get_tc (fixP->fx_addsy)->symbol_class != XMC_TC
! 	  && symbol_get_tc (fixP->fx_addsy)->symbol_class != XMC_TC0
  	  && S_GET_SEGMENT (fixP->fx_addsy) != bss_section)
  	{
  	  value = fixP->fx_offset;
diff -prc src.head/gas/config/tc-ppc.h src.class/gas/config/tc-ppc.h
*** src.head/gas/config/tc-ppc.h	Tue Jun 16 09:07:25 2009
--- src.class/gas/config/tc-ppc.h	Wed Aug 19 17:08:33 2009
*************** struct ppc_tc_sy
*** 134,140 ****
       .globl or .lglobl statement.  */
    int output;
    /* The symbol class.  */
!   int class;
    /* The real name, if the symbol was renamed.  */
    char *real_name;
    /* For a csect symbol, the subsegment we are using.  This is zero
--- 134,140 ----
       .globl or .lglobl statement.  */
    int output;
    /* The symbol class.  */
!   int symbol_class;
    /* The real name, if the symbol was renamed.  */
    char *real_name;
    /* For a csect symbol, the subsegment we are using.  This is zero
*************** do {								\
*** 195,201 ****
      S_SET_SEGMENT (dest, S_GET_SEGMENT (src));			\
    symbol_get_tc (dest)->size = symbol_get_tc (src)->size;	\
    symbol_get_tc (dest)->align = symbol_get_tc (src)->align;	\
!   symbol_get_tc (dest)->class = symbol_get_tc (src)->class;	\
    symbol_get_tc (dest)->within = symbol_get_tc (src)->within;	\
  } while (0)
  
--- 195,201 ----
      S_SET_SEGMENT (dest, S_GET_SEGMENT (src));			\
    symbol_get_tc (dest)->size = symbol_get_tc (src)->size;	\
    symbol_get_tc (dest)->align = symbol_get_tc (src)->align;	\
!   symbol_get_tc (dest)->symbol_class = symbol_get_tc (src)->symbol_class;	\
    symbol_get_tc (dest)->within = symbol_get_tc (src)->within;	\
  } while (0)
  
diff -prc src.head/gas/config/tc-score.c src.class/gas/config/tc-score.c
*** src.head/gas/config/tc-score.c	Fri Aug 14 10:59:54 2009
--- src.class/gas/config/tc-score.c	Sun Aug 16 14:10:36 2009
*************** s3_get_insn_class_from_type (enum score_
*** 2490,2496 ****
     32-bit instruction: 1, 0.
     16-bit instruction: 0.  */
  static bfd_vma
! s3_adjust_paritybit (bfd_vma m_code, enum insn_class class)
  {
    bfd_vma result = 0;
    bfd_vma m_code_high = 0;
--- 2490,2496 ----
     32-bit instruction: 1, 0.
     16-bit instruction: 0.  */
  static bfd_vma
! s3_adjust_paritybit (bfd_vma m_code, enum insn_class i_class)
  {
    bfd_vma result = 0;
    bfd_vma m_code_high = 0;
*************** s3_adjust_paritybit (bfd_vma m_code, enu
*** 2500,2506 ****
    unsigned long pb_middle = 0;
    unsigned long pb_low = 0;
  
!   if (class == INSN_CLASS_48)
      {
        pb_high = 0x800000000000LL;
        pb_middle = 0x80000000;
--- 2500,2506 ----
    unsigned long pb_middle = 0;
    unsigned long pb_low = 0;
  
!   if (i_class == INSN_CLASS_48)
      {
        pb_high = 0x800000000000LL;
        pb_middle = 0x80000000;
*************** s3_adjust_paritybit (bfd_vma m_code, enu
*** 2512,2518 ****
                 pb_middle | (m_code_middle << 1) |
                 pb_low | m_code_low;
      }
!   else if (class == INSN_CLASS_32 || class == INSN_CLASS_SYN)
      {
        pb_high = 0x80000000;
        pb_low = 0x00000000;
--- 2512,2518 ----
                 pb_middle | (m_code_middle << 1) |
                 pb_low | m_code_low;
      }
!   else if (i_class == INSN_CLASS_32 || i_class == INSN_CLASS_SYN)
      {
        pb_high = 0x80000000;
        pb_low = 0x00000000;
*************** s3_adjust_paritybit (bfd_vma m_code, enu
*** 2520,2526 ****
        m_code_low = m_code & 0x00007fff;
        result = pb_high | (m_code_high << 1) | pb_low | m_code_low;
      }
!   else if (class == INSN_CLASS_16)
      {
        pb_high = 0;
        pb_low = 0;
--- 2520,2526 ----
        m_code_low = m_code & 0x00007fff;
        result = pb_high | (m_code_high << 1) | pb_low | m_code_low;
      }
!   else if (i_class == INSN_CLASS_16)
      {
        pb_high = 0;
        pb_low = 0;
*************** s3_adjust_paritybit (bfd_vma m_code, enu
*** 2528,2534 ****
        m_code_low = m_code & 0x00007fff;
        result = pb_high | (m_code_high << 1) | pb_low | m_code_low;
      }
!   else if (class == INSN_CLASS_PCE)
      {
        /* Keep original.  */
        pb_high = 0;
--- 2528,2534 ----
        m_code_low = m_code & 0x00007fff;
        result = pb_high | (m_code_high << 1) | pb_low | m_code_low;
      }
!   else if (i_class == INSN_CLASS_PCE)
      {
        /* Keep original.  */
        pb_high = 0;
diff -prc src.head/gas/config/tc-score7.c src.class/gas/config/tc-score7.c
*** src.head/gas/config/tc-score7.c	Fri Aug 14 10:59:54 2009
--- src.class/gas/config/tc-score7.c	Sun Aug 16 14:10:36 2009
*************** s7_get_insn_class_from_type (enum score_
*** 2620,2626 ****
  }
  
  static unsigned long
! s7_adjust_paritybit (unsigned long m_code, enum insn_class class)
  {
    unsigned long result = 0;
    unsigned long m_code_high = 0;
--- 2620,2626 ----
  }
  
  static unsigned long
! s7_adjust_paritybit (unsigned long m_code, enum insn_class i_class)
  {
    unsigned long result = 0;
    unsigned long m_code_high = 0;
*************** s7_adjust_paritybit (unsigned long m_cod
*** 2628,2649 ****
    unsigned long pb_high = 0;
    unsigned long pb_low = 0;
  
!   if (class == INSN_CLASS_32)
      {
        pb_high = 0x80000000;
        pb_low = 0x00008000;
      }
!   else if (class == INSN_CLASS_16)
      {
        pb_high = 0;
        pb_low = 0;
      }
!   else if (class == INSN_CLASS_PCE)
      {
        pb_high = 0;
        pb_low = 0x00008000;
      }
!   else if (class == INSN_CLASS_SYN)
      {
        /* FIXME.  at this time, INSN_CLASS_SYN must be 32 bit, but, instruction type should
           be changed if macro instruction has been expanded.  */
--- 2628,2649 ----
    unsigned long pb_high = 0;
    unsigned long pb_low = 0;
  
!   if (i_class == INSN_CLASS_32)
      {
        pb_high = 0x80000000;
        pb_low = 0x00008000;
      }
!   else if (i_class == INSN_CLASS_16)
      {
        pb_high = 0;
        pb_low = 0;
      }
!   else if (i_class == INSN_CLASS_PCE)
      {
        pb_high = 0;
        pb_low = 0x00008000;
      }
!   else if (i_class == INSN_CLASS_SYN)
      {
        /* FIXME.  at this time, INSN_CLASS_SYN must be 32 bit, but, instruction type should
           be changed if macro instruction has been expanded.  */
diff -prc src.head/gprof/corefile.c src.class/gprof/corefile.c
*** src.head/gprof/corefile.c	Tue Jun 16 09:08:11 2009
--- src.class/gprof/corefile.c	Sun Aug 16 14:10:36 2009
*************** core_create_function_syms (void)
*** 562,568 ****
  {
    bfd_vma min_vma = ~ (bfd_vma) 0;
    bfd_vma max_vma = 0;
!   int class;
    long i;
    struct function_map * found;
  
--- 562,568 ----
  {
    bfd_vma min_vma = ~ (bfd_vma) 0;
    bfd_vma max_vma = 0;
!   int cxxclass;
    long i;
    struct function_map * found;
  
*************** core_create_function_syms (void)
*** 598,606 ****
      {
        asection *sym_sec;
  
!       class = core_sym_class (core_syms[i]);
  
!       if (!class)
  	{
  	  DBG (AOUTDEBUG,
  	       printf ("[core_create_function_syms] rejecting: 0x%lx %s\n",
--- 598,606 ----
      {
        asection *sym_sec;
  
!       cxxclass = core_sym_class (core_syms[i]);
  
!       if (!cxxclass)
  	{
  	  DBG (AOUTDEBUG,
  	       printf ("[core_create_function_syms] rejecting: 0x%lx %s\n",
*************** core_create_function_syms (void)
*** 670,676 ****
        symtab.limit->is_func = (core_syms[i]->flags & BSF_FUNCTION) != 0; 
        symtab.limit->is_bb_head = TRUE;
  
!       if (class == 't')
  	symtab.limit->is_static = TRUE;
  
        /* Keep track of the minimum and maximum vma addresses used by all
--- 670,676 ----
        symtab.limit->is_func = (core_syms[i]->flags & BSF_FUNCTION) != 0; 
        symtab.limit->is_bb_head = TRUE;
  
!       if (cxxclass == 't')
  	symtab.limit->is_static = TRUE;
  
        /* Keep track of the minimum and maximum vma addresses used by all
diff -prc src.head/include/coff/ti.h src.class/include/coff/ti.h
*** src.head/include/coff/ti.h	Fri Aug 14 11:06:19 2009
--- src.class/include/coff/ti.h	Thu Aug 27 09:19:49 2009
*************** union external_auxent {
*** 475,484 ****
  
  /* lnsz size is in bits in COFF file, in bytes in BFD */
  #define GET_LNSZ_SIZE(abfd, ext) \
!  (H_GET_16 (abfd, ext->x_sym.x_misc.x_lnsz.x_size) / (class != C_FIELD ? 8 : 1))
  
  #define PUT_LNSZ_SIZE(abfd, in, ext) \
!   H_PUT_16 (abfd, ((class != C_FIELD) ? (in) * 8 : (in)), \
  	   ext->x_sym.x_misc.x_lnsz.x_size)
   
  /* TI COFF stores offsets for MOS and MOU in bits; BFD expects bytes 
--- 475,484 ----
  
  /* lnsz size is in bits in COFF file, in bytes in BFD */
  #define GET_LNSZ_SIZE(abfd, ext) \
!  (H_GET_16 (abfd, ext->x_sym.x_misc.x_lnsz.x_size) / (in_class != C_FIELD ? 8 : 1))
  
  #define PUT_LNSZ_SIZE(abfd, in, ext) \
!   H_PUT_16 (abfd, ((in_class != C_FIELD) ? (in) * 8 : (in)), \
  	   ext->x_sym.x_misc.x_lnsz.x_size)
   
  /* TI COFF stores offsets for MOS and MOU in bits; BFD expects bytes 
diff -prc src.head/include/opcode/ia64.h src.class/include/opcode/ia64.h
*** src.head/include/opcode/ia64.h	Tue Jun 16 09:07:24 2009
--- src.class/include/opcode/ia64.h	Sun Aug 16 14:10:36 2009
*************** enum ia64_operand_class
*** 327,333 ****
  
  struct ia64_operand
  {
!   enum ia64_operand_class class;
  
    /* Set VALUE as the operand bits for the operand of type SELF in the
       instruction pointed to by CODE.  If an error occurs, *CODE is not
--- 327,333 ----
  
  struct ia64_operand
  {
!   enum ia64_operand_class op_class;
  
    /* Set VALUE as the operand bits for the operand of type SELF in the
       instruction pointed to by CODE.  If an error occurs, *CODE is not
diff -prc src.head/ld/emultempl/elf32.em src.class/ld/emultempl/elf32.em
*** src.head/ld/emultempl/elf32.em	Fri Aug 14 11:07:18 2009
--- src.class/ld/emultempl/elf32.em	Sun Aug 16 14:10:36 2009
*************** fragment <<EOF
*** 113,142 ****
  static bfd_boolean
  gld${EMULATION_NAME}_load_symbols (lang_input_statement_type *entry)
  {
!   int class = 0;
  
    /* Tell the ELF linker that we don't want the output file to have a
       DT_NEEDED entry for this file, unless it is used to resolve
       references in a regular object.  */
    if (entry->as_needed)
!     class = DYN_AS_NEEDED;
  
    /* Tell the ELF linker that we don't want the output file to have a
       DT_NEEDED entry for any dynamic library in DT_NEEDED tags from
       this file at all.  */
    if (!entry->add_needed)
!     class |= DYN_NO_ADD_NEEDED;
  
    if (entry->just_syms_flag
        && (bfd_get_file_flags (entry->the_bfd) & DYNAMIC) != 0)
      einfo (_("%P%F: --just-symbols may not be used on DSO: %B\n"),
  	   entry->the_bfd);
  
!   if (!class
        || (bfd_get_file_flags (entry->the_bfd) & DYNAMIC) == 0)
      return FALSE;
  
!   bfd_elf_set_dyn_lib_class (entry->the_bfd, class);
  
    /* Continue on with normal load_symbols processing.  */
    return FALSE;
--- 113,142 ----
  static bfd_boolean
  gld${EMULATION_NAME}_load_symbols (lang_input_statement_type *entry)
  {
!   int link_class = 0;
  
    /* Tell the ELF linker that we don't want the output file to have a
       DT_NEEDED entry for this file, unless it is used to resolve
       references in a regular object.  */
    if (entry->as_needed)
!     link_class = DYN_AS_NEEDED;
  
    /* Tell the ELF linker that we don't want the output file to have a
       DT_NEEDED entry for any dynamic library in DT_NEEDED tags from
       this file at all.  */
    if (!entry->add_needed)
!     link_class |= DYN_NO_ADD_NEEDED;
  
    if (entry->just_syms_flag
        && (bfd_get_file_flags (entry->the_bfd) & DYNAMIC) != 0)
      einfo (_("%P%F: --just-symbols may not be used on DSO: %B\n"),
  	   entry->the_bfd);
  
!   if (!link_class
        || (bfd_get_file_flags (entry->the_bfd) & DYNAMIC) == 0)
      return FALSE;
  
!   bfd_elf_set_dyn_lib_class (entry->the_bfd, link_class);
  
    /* Continue on with normal load_symbols processing.  */
    return FALSE;
*************** gld${EMULATION_NAME}_try_needed (struct 
*** 305,311 ****
    bfd *abfd;
    const char *name = needed->name;
    const char *soname;
!   int class;
  
    abfd = bfd_openr (name, bfd_get_target (link_info.output_bfd));
    if (abfd == NULL)
--- 305,311 ----
    bfd *abfd;
    const char *name = needed->name;
    const char *soname;
!   int link_class;
  
    abfd = bfd_openr (name, bfd_get_target (link_info.output_bfd));
    if (abfd == NULL)
*************** fragment <<EOF
*** 418,433 ****
    /* Tell the ELF linker that we don't want the output file to have a
       DT_NEEDED entry for this file, unless it is used to resolve
       references in a regular object.  */
!   class = DYN_DT_NEEDED;
  
    /* Tell the ELF linker that we don't want the output file to have a
       DT_NEEDED entry for this file at all if the entry is from a file
       with DYN_NO_ADD_NEEDED.  */
    if (needed->by != NULL
        && (bfd_elf_get_dyn_lib_class (needed->by) & DYN_NO_ADD_NEEDED) != 0)
!     class |= DYN_NO_NEEDED | DYN_NO_ADD_NEEDED;
  
!   bfd_elf_set_dyn_lib_class (abfd, class);
  
    /* Add this file into the symbol table.  */
    if (! bfd_link_add_symbols (abfd, &link_info))
--- 418,433 ----
    /* Tell the ELF linker that we don't want the output file to have a
       DT_NEEDED entry for this file, unless it is used to resolve
       references in a regular object.  */
!   link_class = DYN_DT_NEEDED;
  
    /* Tell the ELF linker that we don't want the output file to have a
       DT_NEEDED entry for this file at all if the entry is from a file
       with DYN_NO_ADD_NEEDED.  */
    if (needed->by != NULL
        && (bfd_elf_get_dyn_lib_class (needed->by) & DYN_NO_ADD_NEEDED) != 0)
!     link_class |= DYN_NO_NEEDED | DYN_NO_ADD_NEEDED;
  
!   bfd_elf_set_dyn_lib_class (abfd, link_class);
  
    /* Add this file into the symbol table.  */
    if (! bfd_link_add_symbols (abfd, &link_info))
Only in src.class/ld/emultempl: elf32.em.orig
diff -prc src.head/opcodes/ia64-dis.c src.class/opcodes/ia64-dis.c
*** src.head/opcodes/ia64-dis.c	Tue Jun 16 09:07:16 2009
--- src.class/opcodes/ia64-dis.c	Sun Aug 16 14:10:36 2009
*************** print_insn_ia64 (bfd_vma memaddr, struct
*** 182,188 ****
  	    }
  	}
  
! 	switch (odesc->class)
  	  {
  	  case IA64_OPND_CLASS_CST:
  	    (*info->fprintf_func) (info->stream, "%s", odesc->str);
--- 182,188 ----
  	    }
  	}
  
! 	switch (odesc->op_class)
  	  {
  	  case IA64_OPND_CLASS_CST:
  	    (*info->fprintf_func) (info->stream, "%s", odesc->str);
diff -prc src.head/opcodes/m88k-dis.c src.class/opcodes/m88k-dis.c
*** src.head/opcodes/m88k-dis.c	Tue Jun 16 09:07:17 2009
--- src.class/opcodes/m88k-dis.c	Wed Aug 19 16:51:33 2009
*************** m88kdis (bfd_vma pc,
*** 696,702 ****
    unsigned int opcode;
    const HASHTAB *entry_ptr;
    int opmask;
!   unsigned int class;
  
    if (! ihashtab_initialized)
      {
--- 696,702 ----
    unsigned int opcode;
    const HASHTAB *entry_ptr;
    int opmask;
!   unsigned int in_class;
  
    if (! ihashtab_initialized)
      {
*************** m88kdis (bfd_vma pc,
*** 706,722 ****
  
    /* Create the appropriate mask to isolate the opcode.  */
    opmask = DEFMASK;
!   class = instruction & DEFMASK;
!   if ((class >= SFU0) && (class <= SFU7))
      {
        if (instruction < SFU1)
  	opmask = CTRLMASK;
        else
  	opmask = SFUMASK;
      }
!   else if (class == RRR)
      opmask = RRRMASK;
!   else if (class == RRI10)
      opmask = RRI10MASK;
  
    /* Isolate the opcode.  */
--- 706,722 ----
  
    /* Create the appropriate mask to isolate the opcode.  */
    opmask = DEFMASK;
!   in_class = instruction & DEFMASK;
!   if ((in_class >= SFU0) && (in_class <= SFU7))
      {
        if (instruction < SFU1)
  	opmask = CTRLMASK;
        else
  	opmask = SFUMASK;
      }
!   else if (in_class == RRR)
      opmask = RRRMASK;
!   else if (in_class == RRI10)
      opmask = RRI10MASK;
  
    /* Isolate the opcode.  */
diff -prc src.head/opcodes/tic80-opc.c src.class/opcodes/tic80-opc.c
*** src.head/opcodes/tic80-opc.c	Tue Jun 16 09:07:17 2009
--- src.class/opcodes/tic80-opc.c	Wed Aug 19 16:37:13 2009
*************** const int tic80_num_predefined_symbols =
*** 219,225 ****
     in CLASS, and translates it to a numeric value, which it returns.
  
     If CLASS is zero, any symbol that matches NAME is translated.  If
!    CLASS is non-zero, then only a symbol that has class CLASS is
     matched.
  
     If no translation is possible, it returns -1, a value not used by
--- 219,225 ----
     in CLASS, and translates it to a numeric value, which it returns.
  
     If CLASS is zero, any symbol that matches NAME is translated.  If
!    CLASS is non-zero, then only a symbol that has symbol_class CLASS is
     matched.
  
     If no translation is possible, it returns -1, a value not used by
*************** const int tic80_num_predefined_symbols =
*** 233,241 ****
   */
  
  int
! tic80_symbol_to_value (name, class)
       char *name;
!      int class;
  {
    const struct predefined_symbol *pdsp;
    int low = 0;
--- 233,241 ----
   */
  
  int
! tic80_symbol_to_value (name, symbol_class)
       char *name;
!      int symbol_class;
  {
    const struct predefined_symbol *pdsp;
    int low = 0;
*************** tic80_symbol_to_value (name, class)
*** 259,265 ****
        else 
  	{
  	  pdsp = &tic80_predefined_symbols[middle];
! 	  if ((class == 0) || (class & PDS_VALUE (pdsp)))
  	    {
  	      rtnval = PDS_VALUE (pdsp);
  	    }
--- 259,265 ----
        else 
  	{
  	  pdsp = &tic80_predefined_symbols[middle];
! 	  if ((symbol_class == 0) || (symbol_class & PDS_VALUE (pdsp)))
  	    {
  	      rtnval = PDS_VALUE (pdsp);
  	    }
*************** tic80_symbol_to_value (name, class)
*** 271,283 ****
  }
  
  /* This function takes a value VAL and finds a matching predefined
!    symbol that is in the operand class specified by CLASS.  If CLASS
     is zero, the first matching symbol is returned. */
  
  const char *
! tic80_value_to_symbol (val, class)
       int val;
!      int class;
  {
    const struct predefined_symbol *pdsp;
    int ival;
--- 271,283 ----
  }
  
  /* This function takes a value VAL and finds a matching predefined
!    symbol that is in the operand symbol_class specified by CLASS.  If CLASS
     is zero, the first matching symbol is returned. */
  
  const char *
! tic80_value_to_symbol (val, symbol_class)
       int val;
!      int symbol_class;
  {
    const struct predefined_symbol *pdsp;
    int ival;
*************** tic80_value_to_symbol (val, class)
*** 291,297 ****
        ival = PDS_VALUE (pdsp) & ~TIC80_OPERAND_MASK;
        if (ival == val)
  	{
! 	  if ((class == 0) || (class & PDS_VALUE (pdsp)))
  	    {
  	      /* Found the desired match */
  	      name = PDS_NAME (pdsp);
--- 291,297 ----
        ival = PDS_VALUE (pdsp) & ~TIC80_OPERAND_MASK;
        if (ival == val)
  	{
! 	  if ((symbol_class == 0) || (symbol_class & PDS_VALUE (pdsp)))
  	    {
  	      /* Found the desired match */
  	      name = PDS_NAME (pdsp);
Only in src.class/sid/component/cfgroot/libltdl: config-h.in]

Attachment: new.changelog
Description: Binary data

diff -prc src.head/bfd/aoutx.h src.new/bfd/aoutx.h
*** src.head/bfd/aoutx.h	Fri Aug 14 10:58:53 2009
--- src.new/bfd/aoutx.h	Tue Aug 18 11:53:38 2009
*************** NAME (aout, make_empty_symbol) (bfd *abf
*** 1668,1679 ****
  {
    bfd_size_type amt = sizeof (aout_symbol_type);
  
!   aout_symbol_type *new = bfd_zalloc (abfd, amt);
!   if (!new)
      return NULL;
!   new->symbol.the_bfd = abfd;
  
!   return &new->symbol;
  }
  
  /* Translate a set of internal symbols into external symbols.  */
--- 1668,1679 ----
  {
    bfd_size_type amt = sizeof (aout_symbol_type);
  
!   aout_symbol_type *new_symbol = (aout_symbol_type *) bfd_zalloc (abfd, amt);
!   if (!new_symbol)
      return NULL;
!   new_symbol->symbol.the_bfd = abfd;
  
!   return &new_symbol->symbol;
  }
  
  /* Translate a set of internal symbols into external symbols.  */
diff -prc src.head/bfd/coffgen.c src.new/bfd/coffgen.c
*** src.head/bfd/coffgen.c	Tue Jun 16 09:07:18 2009
--- src.new/bfd/coffgen.c	Tue Aug 18 11:53:38 2009
*************** asymbol *
*** 1794,1810 ****
  coff_make_empty_symbol (bfd *abfd)
  {
    bfd_size_type amt = sizeof (coff_symbol_type);
!   coff_symbol_type *new = bfd_zalloc (abfd, amt);
  
!   if (new == NULL)
      return NULL;
!   new->symbol.section = 0;
!   new->native = 0;
!   new->lineno = NULL;
!   new->done_lineno = FALSE;
!   new->symbol.the_bfd = abfd;
  
!   return & new->symbol;
  }
  
  /* Make a debugging symbol.  */
--- 1794,1810 ----
  coff_make_empty_symbol (bfd *abfd)
  {
    bfd_size_type amt = sizeof (coff_symbol_type);
!   coff_symbol_type *new_symbol = (coff_symbol_type *) bfd_zalloc (abfd, amt);
  
!   if (new_symbol == NULL)
      return NULL;
!   new_symbol->symbol.section = 0;
!   new_symbol->native = 0;
!   new_symbol->lineno = NULL;
!   new_symbol->done_lineno = FALSE;
!   new_symbol->symbol.the_bfd = abfd;
  
!   return & new_symbol->symbol;
  }
  
  /* Make a debugging symbol.  */
*************** coff_bfd_make_debug_symbol (bfd *abfd,
*** 1815,1837 ****
  			    unsigned long sz ATTRIBUTE_UNUSED)
  {
    bfd_size_type amt = sizeof (coff_symbol_type);
!   coff_symbol_type *new = bfd_alloc (abfd, amt);
  
!   if (new == NULL)
      return NULL;
    /* @@ The 10 is a guess at a plausible maximum number of aux entries
       (but shouldn't be a constant).  */
    amt = sizeof (combined_entry_type) * 10;
!   new->native = bfd_zalloc (abfd, amt);
!   if (!new->native)
      return NULL;
!   new->symbol.section = bfd_abs_section_ptr;
!   new->symbol.flags = BSF_DEBUGGING;
!   new->lineno = NULL;
!   new->done_lineno = FALSE;
!   new->symbol.the_bfd = abfd;
    
!   return & new->symbol;
  }
  
  void
--- 1815,1837 ----
  			    unsigned long sz ATTRIBUTE_UNUSED)
  {
    bfd_size_type amt = sizeof (coff_symbol_type);
!   coff_symbol_type *new_symbol = (coff_symbol_type *) bfd_alloc (abfd, amt);
  
!   if (new_symbol == NULL)
      return NULL;
    /* @@ The 10 is a guess at a plausible maximum number of aux entries
       (but shouldn't be a constant).  */
    amt = sizeof (combined_entry_type) * 10;
!   new_symbol->native = (combined_entry_type *) bfd_zalloc (abfd, amt);
!   if (!new_symbol->native)
      return NULL;
!   new_symbol->symbol.section = bfd_abs_section_ptr;
!   new_symbol->symbol.flags = BSF_DEBUGGING;
!   new_symbol->lineno = NULL;
!   new_symbol->done_lineno = FALSE;
!   new_symbol->symbol.the_bfd = abfd;
    
!   return & new_symbol->symbol;
  }
  
  void
diff -prc src.head/bfd/cpu-ia64-opc.c src.new/bfd/cpu-ia64-opc.c
*** src.head/bfd/cpu-ia64-opc.c	Tue Jun 16 09:07:19 2009
--- src.new/bfd/cpu-ia64-opc.c	Tue Aug 18 11:53:38 2009
*************** ext_reg (const struct ia64_operand *self
*** 81,99 ****
  static const char*
  ins_immu (const struct ia64_operand *self, ia64_insn value, ia64_insn *code)
  {
!   ia64_insn new = 0;
    int i;
  
    for (i = 0; i < NELEMS (self->field) && self->field[i].bits; ++i)
      {
!       new |= ((value & ((((ia64_insn) 1) << self->field[i].bits) - 1))
! 	      << self->field[i].shift);
        value >>= self->field[i].bits;
      }
    if (value)
      return "integer operand out of range";
  
!   *code |= new;
    return 0;
  }
  
--- 81,99 ----
  static const char*
  ins_immu (const struct ia64_operand *self, ia64_insn value, ia64_insn *code)
  {
!   ia64_insn new_insn = 0;
    int i;
  
    for (i = 0; i < NELEMS (self->field) && self->field[i].bits; ++i)
      {
!       new_insn |= ((value & ((((ia64_insn) 1) << self->field[i].bits) - 1))
!                  << self->field[i].shift);
        value >>= self->field[i].bits;
      }
    if (value)
      return "integer operand out of range";
  
!   *code |= new_insn;
    return 0;
  }
  
*************** ins_imms_scaled (const struct ia64_opera
*** 163,184 ****
  		 ia64_insn *code, int scale)
  {
    BFD_HOST_64_BIT svalue = value, sign_bit = 0;
!   ia64_insn new = 0;
    int i;
  
    svalue >>= scale;
  
    for (i = 0; i < NELEMS (self->field) && self->field[i].bits; ++i)
      {
!       new |= ((svalue & ((((ia64_insn) 1) << self->field[i].bits) - 1))
! 	      << self->field[i].shift);
        sign_bit = (svalue >> (self->field[i].bits - 1)) & 1;
        svalue >>= self->field[i].bits;
      }
    if ((!sign_bit && svalue != 0) || (sign_bit && svalue != -1))
      return "integer operand out of range";
  
!   *code |= new;
    return 0;
  }
  
--- 163,184 ----
  		 ia64_insn *code, int scale)
  {
    BFD_HOST_64_BIT svalue = value, sign_bit = 0;
!   ia64_insn new_insn = 0;
    int i;
  
    svalue >>= scale;
  
    for (i = 0; i < NELEMS (self->field) && self->field[i].bits; ++i)
      {
!       new_insn |= ((svalue & ((((ia64_insn) 1) << self->field[i].bits) - 1))
!                  << self->field[i].shift);
        sign_bit = (svalue >> (self->field[i].bits - 1)) & 1;
        svalue >>= self->field[i].bits;
      }
    if ((!sign_bit && svalue != 0) || (sign_bit && svalue != -1))
      return "integer operand out of range";
  
!   *code |= new_insn;
    return 0;
  }
  
diff -prc src.head/bfd/doc/chew.c src.new/bfd/doc/chew.c
*** src.head/bfd/doc/chew.c	Tue Jun 16 09:07:18 2009
--- src.new/bfd/doc/chew.c	Tue Aug 18 11:53:38 2009
*************** dict_type *
*** 1267,1280 ****
  newentry (word)
       char *word;
  {
!   dict_type *new = (dict_type *) malloc (sizeof (dict_type));
!   new->word = word;
!   new->next = root;
!   root = new;
!   new->code = (stinst_type *) malloc (sizeof (stinst_type));
!   new->code_length = 1;
!   new->code_end = 0;
!   return new;
  }
  
  unsigned int
--- 1267,1280 ----
  newentry (word)
       char *word;
  {
!   dict_type *new_d = (dict_type *) malloc (sizeof (dict_type));
!   new_d->word = word;
!   new_d->next = root;
!   root = new_d;
!   new_d->code = (stinst_type *) malloc (sizeof (stinst_type));
!   new_d->code_length = 1;
!   new_d->code_end = 0;
!   return new_d;
  }
  
  unsigned int
*************** add_intrinsic (name, func)
*** 1299,1317 ****
       char *name;
       void (*func) ();
  {
!   dict_type *new = newentry (name);
!   add_to_definition (new, func);
!   add_to_definition (new, 0);
  }
  
  void
  add_var (name)
       char *name;
  {
!   dict_type *new = newentry (name);
!   add_to_definition (new, push_number);
!   add_to_definition (new, (stinst_type) (&(new->var)));
!   add_to_definition (new, 0);
  }
  
  void
--- 1299,1317 ----
       char *name;
       void (*func) ();
  {
!   dict_type *new_d = newentry (name);
!   add_to_definition (new_d, func);
!   add_to_definition (new_d, 0);
  }
  
  void
  add_var (name)
       char *name;
  {
!   dict_type *new_d = newentry (name);
!   add_to_definition (new_d, push_number);
!   add_to_definition (new_d, (stinst_type) (&(new_d->var)));
!   add_to_definition (new_d, 0);
  }
  
  void
diff -prc src.head/bfd/ecoff.c src.new/bfd/ecoff.c
*** src.head/bfd/ecoff.c	Fri Aug 14 10:59:00 2009
--- src.new/bfd/ecoff.c	Tue Aug 18 11:53:38 2009
*************** static asymbol *ecoff_scom_symbol_ptr;
*** 644,661 ****
  asymbol *
  _bfd_ecoff_make_empty_symbol (bfd *abfd)
  {
!   ecoff_symbol_type *new;
    bfd_size_type amt = sizeof (ecoff_symbol_type);
  
!   new = bfd_zalloc (abfd, amt);
!   if (new == NULL)
      return NULL;
!   new->symbol.section = NULL;
!   new->fdr = NULL;
!   new->local = FALSE;
!   new->native = NULL;
!   new->symbol.the_bfd = abfd;
!   return &new->symbol;
  }
  
  /* Set the BFD flags and section for an ECOFF symbol.  */
--- 644,661 ----
  asymbol *
  _bfd_ecoff_make_empty_symbol (bfd *abfd)
  {
!   ecoff_symbol_type *new_symbol;
    bfd_size_type amt = sizeof (ecoff_symbol_type);
  
!   new_symbol = (ecoff_symbol_type *) bfd_zalloc (abfd, amt);
!   if (new_symbol == NULL)
      return NULL;
!   new_symbol->symbol.section = NULL;
!   new_symbol->fdr = NULL;
!   new_symbol->local = FALSE;
!   new_symbol->native = NULL;
!   new_symbol->symbol.the_bfd = abfd;
!   return &new_symbol->symbol;
  }
  
  /* Set the BFD flags and section for an ECOFF symbol.  */
diff -prc src.head/bfd/elf32-m68k.c src.new/bfd/elf32-m68k.c
*** src.head/bfd/elf32-m68k.c	Fri Aug 14 10:59:03 2009
--- src.new/bfd/elf32-m68k.c	Tue Aug 18 11:53:38 2009
*************** elf_m68k_get_got_entry (struct elf_m68k_
*** 1531,1537 ****
  static enum elf_m68k_reloc_type
  elf_m68k_update_got_entry_type (struct elf_m68k_got *got,
  				enum elf_m68k_reloc_type was,
! 				enum elf_m68k_reloc_type new)
  {
    enum elf_m68k_got_offset_size was_size;
    enum elf_m68k_got_offset_size new_size;
--- 1531,1537 ----
  static enum elf_m68k_reloc_type
  elf_m68k_update_got_entry_type (struct elf_m68k_got *got,
  				enum elf_m68k_reloc_type was,
! 				enum elf_m68k_reloc_type new_reloc)
  {
    enum elf_m68k_got_offset_size was_size;
    enum elf_m68k_got_offset_size new_size;
*************** elf_m68k_update_got_entry_type (struct e
*** 1543,1562 ****
        /* Update all got->n_slots counters, including n_slots[R_32].  */
        was_size = R_LAST;
  
!       was = new;
      }
    else
      {
        /* !!! We, probably, should emit an error rather then fail on assert
  	 in such a case.  */
        BFD_ASSERT (elf_m68k_reloc_got_type (was)
! 		  == elf_m68k_reloc_got_type (new));
  
        was_size = elf_m68k_reloc_got_offset_size (was);
      }
  
!   new_size = elf_m68k_reloc_got_offset_size (new);
!   n_slots = elf_m68k_reloc_got_n_slots (new);
  
    while (was_size > new_size)
      {
--- 1543,1562 ----
        /* Update all got->n_slots counters, including n_slots[R_32].  */
        was_size = R_LAST;
  
!       was = new_reloc;
      }
    else
      {
        /* !!! We, probably, should emit an error rather then fail on assert
  	 in such a case.  */
        BFD_ASSERT (elf_m68k_reloc_got_type (was)
! 		  == elf_m68k_reloc_got_type (new_reloc));
  
        was_size = elf_m68k_reloc_got_offset_size (was);
      }
  
!   new_size = elf_m68k_reloc_got_offset_size (new_reloc);
!   n_slots = elf_m68k_reloc_got_n_slots (new_reloc);
  
    while (was_size > new_size)
      {
*************** elf_m68k_update_got_entry_type (struct e
*** 1564,1573 ****
        got->n_slots[was_size] += n_slots;
      }
  
!   if (new > was)
      /* Relocations are ordered from bigger got offset size to lesser,
         so choose the relocation type with lesser offset size.  */
!     was = new;
  
    return was;
  }
--- 1564,1573 ----
        got->n_slots[was_size] += n_slots;
      }
  
!   if (new_reloc > was)
      /* Relocations are ordered from bigger got offset size to lesser,
         so choose the relocation type with lesser offset size.  */
!     was = new_reloc;
  
    return was;
  }
diff -prc src.head/bfd/hash.c src.new/bfd/hash.c
*** src.head/bfd/hash.c	Tue Jun 16 09:07:20 2009
--- src.new/bfd/hash.c	Tue Aug 18 11:53:38 2009
*************** bfd_hash_lookup (struct bfd_hash_table *
*** 453,468 ****
  
    if (copy)
      {
!       char *new;
  
!       new = objalloc_alloc ((struct objalloc *) table->memory, len + 1);
!       if (!new)
  	{
  	  bfd_set_error (bfd_error_no_memory);
  	  return NULL;
  	}
!       memcpy (new, string, len + 1);
!       string = new;
      }
  
    return bfd_hash_insert (table, string, hash);
--- 453,469 ----
  
    if (copy)
      {
!       char *new_string;
  
!       new_string = (char *) objalloc_alloc ((struct objalloc *) table->memory,
!                                             len + 1);
!       if (!new_string)
  	{
  	  bfd_set_error (bfd_error_no_memory);
  	  return NULL;
  	}
!       memcpy (new_string, string, len + 1);
!       string = new_string;
      }
  
    return bfd_hash_insert (table, string, hash);
diff -prc src.head/bfd/ieee.c src.new/bfd/ieee.c
*** src.head/bfd/ieee.c	Tue Jun 16 09:07:20 2009
--- src.new/bfd/ieee.c	Tue Aug 18 11:53:38 2009
*************** static asymbol *
*** 3627,3638 ****
  ieee_make_empty_symbol (bfd *abfd)
  {
    bfd_size_type amt = sizeof (ieee_symbol_type);
!   ieee_symbol_type *new = bfd_zalloc (abfd, amt);
  
!   if (!new)
      return NULL;
!   new->symbol.the_bfd = abfd;
!   return &new->symbol;
  }
  
  static bfd *
--- 3627,3638 ----
  ieee_make_empty_symbol (bfd *abfd)
  {
    bfd_size_type amt = sizeof (ieee_symbol_type);
!   ieee_symbol_type *new_symbol = (ieee_symbol_type *) bfd_zalloc (abfd, amt);
  
!   if (!new_symbol)
      return NULL;
!   new_symbol->symbol.the_bfd = abfd;
!   return &new_symbol->symbol;
  }
  
  static bfd *
diff -prc src.head/bfd/linker.c src.new/bfd/linker.c
*** src.head/bfd/linker.c	Fri Aug 14 10:59:09 2009
--- src.new/bfd/linker.c	Tue Aug 18 11:53:38 2009
*************** struct bfd_link_order *
*** 2604,2624 ****
  bfd_new_link_order (bfd *abfd, asection *section)
  {
    bfd_size_type amt = sizeof (struct bfd_link_order);
!   struct bfd_link_order *new;
  
!   new = bfd_zalloc (abfd, amt);
!   if (!new)
      return NULL;
  
!   new->type = bfd_undefined_link_order;
  
    if (section->map_tail.link_order != NULL)
!     section->map_tail.link_order->next = new;
    else
!     section->map_head.link_order = new;
!   section->map_tail.link_order = new;
  
!   return new;
  }
  
  /* Default link order processing routine.  Note that we can not handle
--- 2604,2624 ----
  bfd_new_link_order (bfd *abfd, asection *section)
  {
    bfd_size_type amt = sizeof (struct bfd_link_order);
!   struct bfd_link_order *new_lo;
  
!   new_lo = (struct bfd_link_order *) bfd_zalloc (abfd, amt);
!   if (!new_lo)
      return NULL;
  
!   new_lo->type = bfd_undefined_link_order;
  
    if (section->map_tail.link_order != NULL)
!     section->map_tail.link_order->next = new_lo;
    else
!     section->map_head.link_order = new_lo;
!   section->map_tail.link_order = new_lo;
  
!   return new_lo;
  }
  
  /* Default link order processing routine.  Note that we can not handle
diff -prc src.head/bfd/mach-o.c src.new/bfd/mach-o.c
*** src.head/bfd/mach-o.c	Fri Aug 14 10:59:09 2009
--- src.new/bfd/mach-o.c	Wed Aug 19 18:30:03 2009
*************** bfd_mach_o_sizeof_headers (bfd *a ATTRIB
*** 1255,1268 ****
  asymbol *
  bfd_mach_o_make_empty_symbol (bfd *abfd)
  {
!   asymbol *new;
  
!   new = bfd_zalloc (abfd, sizeof (bfd_mach_o_asymbol));
!   if (new == NULL)
!     return new;
!   new->the_bfd = abfd;
!   new->udata.i = 0;
!   return new;
  }
  
  static bfd_boolean
--- 1255,1268 ----
  asymbol *
  bfd_mach_o_make_empty_symbol (bfd *abfd)
  {
!   asymbol *new_symbol;
  
!   new_symbol = bfd_zalloc (abfd, sizeof (bfd_mach_o_asymbol));
!   if (new_symbol == NULL)
!     return new_symbol;
!   new_symbol->the_bfd = abfd;
!   new_symbol->udata.i = 0;
!   return new_symbol;
  }
  
  static bfd_boolean
diff -prc src.head/bfd/oasys.c src.new/bfd/oasys.c
*** src.head/bfd/oasys.c	Tue Jun 16 09:07:20 2009
--- src.new/bfd/oasys.c	Wed Aug 19 18:30:42 2009
*************** static asymbol *
*** 1084,1095 ****
  oasys_make_empty_symbol (bfd *abfd)
  {
    bfd_size_type amt = sizeof (oasys_symbol_type);
!   oasys_symbol_type *new = bfd_zalloc (abfd, amt);
  
!   if (!new)
      return NULL;
!   new->symbol.the_bfd = abfd;
!   return &new->symbol;
  }
  
  /* User should have checked the file flags; perhaps we should return
--- 1084,1095 ----
  oasys_make_empty_symbol (bfd *abfd)
  {
    bfd_size_type amt = sizeof (oasys_symbol_type);
!   oasys_symbol_type *new_symbol_type = bfd_zalloc (abfd, amt);
  
!   if (!new_symbol_type)
      return NULL;
!   new_symbol_type->symbol.the_bfd = abfd;
!   return &new_symbol_type->symbol;
  }
  
  /* User should have checked the file flags; perhaps we should return
diff -prc src.head/bfd/pdp11.c src.new/bfd/pdp11.c
*** src.head/bfd/pdp11.c	Tue Jun 16 09:07:20 2009
--- src.new/bfd/pdp11.c	Wed Aug 19 18:31:26 2009
*************** asymbol *
*** 1433,1445 ****
  NAME (aout, make_empty_symbol) (bfd *abfd)
  {
    bfd_size_type amt = sizeof (aout_symbol_type);
!   aout_symbol_type *new = bfd_zalloc (abfd, amt);
  
!   if (!new)
      return NULL;
!   new->symbol.the_bfd = abfd;
  
!   return &new->symbol;
  }
  
  /* Translate a set of internal symbols into external symbols.  */
--- 1433,1445 ----
  NAME (aout, make_empty_symbol) (bfd *abfd)
  {
    bfd_size_type amt = sizeof (aout_symbol_type);
!   aout_symbol_type *new_symbol_type = bfd_zalloc (abfd, amt);
  
!   if (!new_symbol_type)
      return NULL;
!   new_symbol_type->symbol.the_bfd = abfd;
  
!   return &new_symbol_type->symbol;
  }
  
  /* Translate a set of internal symbols into external symbols.  */
diff -prc src.head/bfd/plugin.c src.new/bfd/plugin.c
*** src.head/bfd/plugin.c	Fri Aug 14 10:59:12 2009
--- src.new/bfd/plugin.c	Wed Aug 19 18:31:53 2009
*************** bfd_plugin_get_symbol_info (bfd *abfd AT
*** 415,425 ****
  static asymbol *
  bfd_plugin_make_empty_symbol (bfd *abfd)
  {
!   asymbol *new = bfd_zalloc (abfd, sizeof (asymbol));
!   if (new == NULL)
!     return new;
!   new->the_bfd = abfd;
!   return new;
  }
  
  static int
--- 415,425 ----
  static asymbol *
  bfd_plugin_make_empty_symbol (bfd *abfd)
  {
!   asymbol *new_symbol = bfd_zalloc (abfd, sizeof (asymbol));
!   if (new_symbol == NULL)
!     return new_symbol;
!   new_symbol->the_bfd = abfd;
!   return new_symbol;
  }
  
  static int
diff -prc src.head/bfd/rs6000-core.c src.new/bfd/rs6000-core.c
*** src.head/bfd/rs6000-core.c	Tue Jun 16 09:07:21 2009
--- src.new/bfd/rs6000-core.c	Wed Aug 19 18:34:41 2009
*************** typedef union {
*** 107,115 ****
  
  typedef union {
  #ifdef AIX_CORE_DUMPX_CORE
!   struct core_dumpx new;	/* new AIX 4.3+ core dump */
  #else
!   struct core_dump new;		/* for simpler coding */
  #endif
    struct core_dump old;		/* old AIX 4.2- core dump, still used on
  				   4.3+ with appropriate SMIT config */
--- 107,115 ----
  
  typedef union {
  #ifdef AIX_CORE_DUMPX_CORE
!   struct core_dumpx new_dump;	/* new AIX 4.3+ core dump */
  #else
!   struct core_dump new_dump;		/* for simpler coding */
  #endif
    struct core_dump old;		/* old AIX 4.2- core dump, still used on
  				   4.3+ with appropriate SMIT config */
*************** typedef union {
*** 120,128 ****
  #ifdef CORE_VERSION_1
  typedef union {
  #ifdef AIX_CORE_DUMPX_CORE
!   struct vm_infox new;
  #else
!   struct vm_info new;
  #endif
    struct vm_info old;
  } VmInfo;
--- 120,128 ----
  #ifdef CORE_VERSION_1
  typedef union {
  #ifdef AIX_CORE_DUMPX_CORE
!   struct vm_infox new_dump;
  #else
!   struct vm_info new_dump;
  #endif
    struct vm_info old;
  } VmInfo;
*************** typedef union {
*** 144,150 ****
  
  #ifdef AIX_5_CORE
  # define CORE_DUMPXX_VERSION  	267312562
! # define CNEW_IS_CORE_DUMPXX(c) ((c).new.c_version == CORE_DUMPXX_VERSION)
  #else
  # define CNEW_IS_CORE_DUMPXX(c) 0
  #endif
--- 144,150 ----
  
  #ifdef AIX_5_CORE
  # define CORE_DUMPXX_VERSION  	267312562
! # define CNEW_IS_CORE_DUMPXX(c) ((c).new_dump.c_version == CORE_DUMPXX_VERSION)
  #else
  # define CNEW_IS_CORE_DUMPXX(c) 0
  #endif
*************** read_hdr (bfd *abfd, CoreHdr *core)
*** 291,297 ****
  
    /* Read the trailing portion of the structure.  */
    if (CORE_NEW (*core))
!     size = sizeof (core->new);
    else
      size = sizeof (core->old);
    size -= CORE_COMMONSZ;
--- 291,297 ----
  
    /* Read the trailing portion of the structure.  */
    if (CORE_NEW (*core))
!     size = sizeof (core->new_core);
    else
      size = sizeof (core->old);
    size -= CORE_COMMONSZ;
*************** rs6000coff_core_p (bfd *abfd)
*** 352,364 ****
    /* Copy fields from new or old core structure.  */
    if (CORE_NEW (core))
      {
!       c_flag = core.new.c_flag;
!       c_stack = (file_ptr) core.new.c_stack;
!       c_size = core.new.c_size;
!       c_stackend = CNEW_STACKORG (core.new) + c_size;
!       c_lsize = CNEW_LSIZE (core.new);
!       c_loader = CNEW_LOADER (core.new);
!       proc64 = CNEW_PROC64 (core.new);
      }
    else
      {
--- 352,364 ----
    /* Copy fields from new or old core structure.  */
    if (CORE_NEW (core))
      {
!       c_flag = core.new_dump.c_flag;
!       c_stack = (file_ptr) core.new_dump.c_stack;
!       c_size = core.new_dump.c_size;
!       c_stackend = CNEW_STACKORG (core.new_dump) + c_size;
!       c_lsize = CNEW_LSIZE (core.new_dump);
!       c_loader = CNEW_LOADER (core.new_dump);
!       proc64 = CNEW_PROC64 (core.new_dump);
      }
    else
      {
*************** rs6000coff_core_p (bfd *abfd)
*** 373,385 ****
  
    if (proc64)
      {
!       c_regsize = sizeof (CNEW_CONTEXT64 (core.new));
!       c_regptr = &CNEW_CONTEXT64 (core.new);
      }
    else if (CORE_NEW (core))
      {
!       c_regsize = sizeof (CNEW_MSTSAVE (core.new));
!       c_regptr = &CNEW_MSTSAVE (core.new);
      }
    else
      {
--- 373,385 ----
  
    if (proc64)
      {
!       c_regsize = sizeof (CNEW_CONTEXT64 (core.new_dump));
!       c_regptr = &CNEW_CONTEXT64 (core.new_dump);
      }
    else if (CORE_NEW (core))
      {
!       c_regsize = sizeof (CNEW_MSTSAVE (core.new_dump));
!       c_regptr = &CNEW_MSTSAVE (core.new_dump);
      }
    else
      {
*************** rs6000coff_core_p (bfd *abfd)
*** 449,455 ****
  			   bfd_get_filename (abfd));
  
    /* Allocate core file header.  */
!   size = CORE_NEW (core) ? sizeof (core.new) : sizeof (core.old);
    tmpptr = (char *) bfd_zalloc (abfd, (bfd_size_type) size);
    if (!tmpptr)
      return NULL;
--- 449,455 ----
  			   bfd_get_filename (abfd));
  
    /* Allocate core file header.  */
!   size = CORE_NEW (core) ? sizeof (core.new_dump) : sizeof (core.old);
    tmpptr = (char *) bfd_zalloc (abfd, (bfd_size_type) size);
    if (!tmpptr)
      return NULL;
*************** rs6000coff_core_p (bfd *abfd)
*** 464,470 ****
        enum bfd_architecture arch;
        unsigned long mach;
  
!       switch (CNEW_IMPL (core.new))
  	{
  	case POWER_RS1:
  	case POWER_RSC:
--- 464,470 ----
        enum bfd_architecture arch;
        unsigned long mach;
  
!       switch (CNEW_IMPL (core.new_dump))
  	{
  	case POWER_RS1:
  	case POWER_RSC:
*************** rs6000coff_core_p (bfd *abfd)
*** 537,546 ****
  
      if (CORE_NEW (core))
        {
! 	c_datasize = CNEW_DATASIZE (core.new);
! 	c_data = (file_ptr) core.new.c_data;
! 	c_vmregions = core.new.c_vmregions;
! 	c_vmm = (file_ptr) core.new.c_vmm;
        }
      else
        {
--- 537,546 ----
  
      if (CORE_NEW (core))
        {
! 	c_datasize = CNEW_DATASIZE (core.new_dump);
! 	c_data = (file_ptr) core.new_dump.c_data;
! 	c_vmregions = core.new_dump.c_vmregions;
! 	c_vmm = (file_ptr) core.new_dump.c_vmm;
        }
      else
        {
*************** rs6000coff_core_p (bfd *abfd)
*** 615,629 ****
  	    file_ptr vminfo_offset;
  	    bfd_vma vminfo_addr;
  
! 	    size = CORE_NEW (core) ? sizeof (vminfo.new) : sizeof (vminfo.old);
  	    if (bfd_bread (&vminfo, size, abfd) != size)
  	      goto fail;
  
  	    if (CORE_NEW (core))
  	      {
! 		vminfo_addr = (bfd_vma) vminfo.new.vminfo_addr;
! 		vminfo_size = vminfo.new.vminfo_size;
! 		vminfo_offset = vminfo.new.vminfo_offset;
  	      }
  	    else
  	      {
--- 615,629 ----
  	    file_ptr vminfo_offset;
  	    bfd_vma vminfo_addr;
  
! 	    size = CORE_NEW (core) ? sizeof (vminfo.new_dump) : sizeof (vminfo.old);
  	    if (bfd_bread (&vminfo, size, abfd) != size)
  	      goto fail;
  
  	    if (CORE_NEW (core))
  	      {
! 		vminfo_addr = (bfd_vma) vminfo.new_dump.vminfo_addr;
! 		vminfo_size = vminfo.new_dump.vminfo_size;
! 		vminfo_offset = vminfo.new_dump.vminfo_offset;
  	      }
  	    else
  	      {
*************** rs6000coff_core_file_matches_executable_
*** 669,679 ****
      return FALSE;
  
    if (CORE_NEW (core))
!     c_loader = CNEW_LOADER (core.new);
    else
      c_loader = (file_ptr) (ptr_to_uint) COLD_LOADER (core.old);
  
!   if (CORE_NEW (core) && CNEW_PROC64 (core.new))
      size = (int) ((LdInfo *) 0)->l64.ldinfo_filename;
    else
      size = (int) ((LdInfo *) 0)->l32.ldinfo_filename;
--- 669,679 ----
      return FALSE;
  
    if (CORE_NEW (core))
!     c_loader = CNEW_LOADER (core.new_dump);
    else
      c_loader = (file_ptr) (ptr_to_uint) COLD_LOADER (core.old);
  
!   if (CORE_NEW (core) && CNEW_PROC64 (core.new_dump))
      size = (int) ((LdInfo *) 0)->l64.ldinfo_filename;
    else
      size = (int) ((LdInfo *) 0)->l32.ldinfo_filename;
*************** rs6000coff_core_file_failing_command (bf
*** 735,741 ****
  {
    CoreHdr *core = core_hdr (abfd);
    char *com = CORE_NEW (*core) ?
!     CNEW_COMM (core->new) : COLD_COMM (core->old);
  
    if (*com)
      return com;
--- 735,741 ----
  {
    CoreHdr *core = core_hdr (abfd);
    char *com = CORE_NEW (*core) ?
!     CNEW_COMM (core->new_dump) : COLD_COMM (core->old);
  
    if (*com)
      return com;
*************** int
*** 747,753 ****
  rs6000coff_core_file_failing_signal (bfd *abfd)
  {
    CoreHdr *core = core_hdr (abfd);
!   return CORE_NEW (*core) ? core->new.c_signo : core->old.c_signo;
  }
  
  #endif /* AIX_CORE */
--- 747,753 ----
  rs6000coff_core_file_failing_signal (bfd *abfd)
  {
    CoreHdr *core = core_hdr (abfd);
!   return CORE_NEW (*core) ? core->new_dump.c_signo : core->old.c_signo;
  }
  
  #endif /* AIX_CORE */
diff -prc src.head/bfd/som.c src.new/bfd/som.c
*** src.head/bfd/som.c	Tue Jun 16 09:07:21 2009
--- src.new/bfd/som.c	Wed Aug 19 18:35:41 2009
*************** static asymbol *
*** 4472,4484 ****
  som_make_empty_symbol (bfd *abfd)
  {
    bfd_size_type amt = sizeof (som_symbol_type);
!   som_symbol_type *new = bfd_zalloc (abfd, amt);
  
!   if (new == NULL)
      return NULL;
!   new->symbol.the_bfd = abfd;
  
!   return &new->symbol;
  }
  
  /* Print symbol information.  */
--- 4472,4484 ----
  som_make_empty_symbol (bfd *abfd)
  {
    bfd_size_type amt = sizeof (som_symbol_type);
!   som_symbol_type *new_symbol_type = bfd_zalloc (abfd, amt);
  
!   if (new_symbol_type == NULL)
      return NULL;
!   new_symbol_type->symbol.the_bfd = abfd;
  
!   return &new_symbol_type->symbol;
  }
  
  /* Print symbol information.  */
diff -prc src.head/bfd/syms.c src.new/bfd/syms.c
*** src.head/bfd/syms.c	Fri Aug 14 10:59:12 2009
--- src.new/bfd/syms.c	Tue Aug 18 11:53:38 2009
*************** asymbol *
*** 539,548 ****
  _bfd_generic_make_empty_symbol (bfd *abfd)
  {
    bfd_size_type amt = sizeof (asymbol);
!   asymbol *new = bfd_zalloc (abfd, amt);
!   if (new)
!     new->the_bfd = abfd;
!   return new;
  }
  
  /*
--- 539,548 ----
  _bfd_generic_make_empty_symbol (bfd *abfd)
  {
    bfd_size_type amt = sizeof (asymbol);
!   asymbol *new_symbol = (asymbol *) bfd_zalloc (abfd, amt);
!   if (new_symbol)
!     new_symbol->the_bfd = abfd;
!   return new_symbol;
  }
  
  /*
diff -prc src.head/bfd/tekhex.c src.new/bfd/tekhex.c
*** src.head/bfd/tekhex.c	Tue Jun 16 09:07:21 2009
--- src.new/bfd/tekhex.c	Tue Aug 18 11:53:38 2009
*************** first_phase (bfd *abfd, int type, char *
*** 415,445 ****
  	      /* Symbols, add to section.  */
  	      {
  		bfd_size_type amt = sizeof (tekhex_symbol_type);
! 		tekhex_symbol_type *new = bfd_alloc (abfd, amt);
  		char stype = (*src);
  
! 		if (!new)
  		  return FALSE;
! 		new->symbol.the_bfd = abfd;
  		src++;
  		abfd->symcount++;
  		abfd->flags |= HAS_SYMS;
! 		new->prev = abfd->tdata.tekhex_data->symbols;
! 		abfd->tdata.tekhex_data->symbols = new;
  		if (!getsym (sym, &src, &len))
  		  return FALSE;
! 		new->symbol.name = bfd_alloc (abfd, (bfd_size_type) len + 1);
! 		if (!new->symbol.name)
  		  return FALSE;
! 		memcpy ((char *) (new->symbol.name), sym, len + 1);
! 		new->symbol.section = section;
  		if (stype <= '4')
! 		  new->symbol.flags = (BSF_GLOBAL | BSF_EXPORT);
  		else
! 		  new->symbol.flags = BSF_LOCAL;
  		if (!getvalue (&src, &val))
  		  return FALSE;
! 		new->symbol.value = val - section->vma;
  		break;
  	      }
  	    default:
--- 415,447 ----
  	      /* Symbols, add to section.  */
  	      {
  		bfd_size_type amt = sizeof (tekhex_symbol_type);
! 		tekhex_symbol_type *new_symbol = (tekhex_symbol_type *)
!                     bfd_alloc (abfd, amt);
  		char stype = (*src);
  
! 		if (!new_symbol)
  		  return FALSE;
! 		new_symbol->symbol.the_bfd = abfd;
  		src++;
  		abfd->symcount++;
  		abfd->flags |= HAS_SYMS;
! 		new_symbol->prev = abfd->tdata.tekhex_data->symbols;
! 		abfd->tdata.tekhex_data->symbols = new_symbol;
  		if (!getsym (sym, &src, &len))
  		  return FALSE;
! 		new_symbol->symbol.name = (const char *)
!                     bfd_alloc (abfd, (bfd_size_type) len + 1);
! 		if (!new_symbol->symbol.name)
  		  return FALSE;
! 		memcpy ((char *) (new_symbol->symbol.name), sym, len + 1);
! 		new_symbol->symbol.section = section;
  		if (stype <= '4')
! 		  new_symbol->symbol.flags = (BSF_GLOBAL | BSF_EXPORT);
  		else
! 		  new_symbol->symbol.flags = BSF_LOCAL;
  		if (!getvalue (&src, &val))
  		  return FALSE;
! 		new_symbol->symbol.value = val - section->vma;
  		break;
  	      }
  	    default:
*************** static asymbol *
*** 880,892 ****
  tekhex_make_empty_symbol (bfd *abfd)
  {
    bfd_size_type amt = sizeof (struct tekhex_symbol_struct);
!   tekhex_symbol_type *new = bfd_zalloc (abfd, amt);
  
!   if (!new)
      return NULL;
!   new->symbol.the_bfd = abfd;
!   new->prev =  NULL;
!   return &(new->symbol);
  }
  
  static void
--- 882,895 ----
  tekhex_make_empty_symbol (bfd *abfd)
  {
    bfd_size_type amt = sizeof (struct tekhex_symbol_struct);
!   tekhex_symbol_type *new_symbol = (tekhex_symbol_type *) bfd_zalloc (abfd,
!                                                                       amt);
  
!   if (!new_symbol)
      return NULL;
!   new_symbol->symbol.the_bfd = abfd;
!   new_symbol->prev =  NULL;
!   return &(new_symbol->symbol);
  }
  
  static void
diff -prc src.head/binutils/nlmconv.c src.new/binutils/nlmconv.c
*** src.head/binutils/nlmconv.c	Tue Jun 16 09:07:12 2009
--- src.new/binutils/nlmconv.c	Wed Aug 19 18:20:53 2009
*************** main (int argc, char **argv)
*** 476,498 ****
  		    ++sym->name;
  		  else
  		    {
! 		      char *new;
  
! 		      new = xmalloc (strlen (bfd_asymbol_name (sym)) + 1);
! 		      new[0] = outlead;
! 		      strcpy (new + 1, bfd_asymbol_name (sym) + 1);
! 		      sym->name = new;
  		    }
  		}
  	    }
  	  else
  	    {
! 	      char *new;
  
! 	      new = xmalloc (strlen (bfd_asymbol_name (sym)) + 2);
! 	      new[0] = outlead;
! 	      strcpy (new + 1, bfd_asymbol_name (sym));
! 	      sym->name = new;
  	    }
  	}
  
--- 476,498 ----
  		    ++sym->name;
  		  else
  		    {
! 		      char *new_name;
  
! 		      new_name = xmalloc (strlen (bfd_asymbol_name (sym)) + 1);
! 		      new_name[0] = outlead;
! 		      strcpy (new_name + 1, bfd_asymbol_name (sym) + 1);
! 		      sym->name = new_name;
  		    }
  		}
  	    }
  	  else
  	    {
! 	      char *new_name;
  
! 	      new_name = xmalloc (strlen (bfd_asymbol_name (sym)) + 2);
! 	      new_name[0] = outlead;
! 	      strcpy (new_name + 1, bfd_asymbol_name (sym));
! 	      sym->name = new_name;
  	    }
  	}
  
Only in src.head: cvs.diff
diff -prc src.head/gas/config/tc-arm.c src.new/gas/config/tc-arm.c
*** src.head/gas/config/tc-arm.c	Fri Aug 14 10:59:49 2009
--- src.new/gas/config/tc-arm.c	Tue Aug 18 11:53:38 2009
*************** parse_reloc (char **str)
*** 2048,2082 ****
  static struct reg_entry *
  insert_reg_alias (char *str, int number, int type)
  {
!   struct reg_entry *new;
    const char *name;
  
!   if ((new = hash_find (arm_reg_hsh, str)) != 0)
      {
!       if (new->builtin)
  	as_warn (_("ignoring attempt to redefine built-in register '%s'"), str);
  
        /* Only warn about a redefinition if it's not defined as the
  	 same register.	 */
!       else if (new->number != number || new->type != type)
  	as_warn (_("ignoring redefinition of register alias '%s'"), str);
  
        return NULL;
      }
  
    name = xstrdup (str);
!   new = xmalloc (sizeof (struct reg_entry));
  
!   new->name = name;
!   new->number = number;
!   new->type = type;
!   new->builtin = FALSE;
!   new->neon = NULL;
  
!   if (hash_insert (arm_reg_hsh, name, (void *) new))
      abort ();
  
!   return new;
  }
  
  static void
--- 2048,2082 ----
  static struct reg_entry *
  insert_reg_alias (char *str, int number, int type)
  {
!   struct reg_entry *new_reg;
    const char *name;
  
!   if ((new_reg = (struct reg_entry *) hash_find (arm_reg_hsh, str)) != 0)
      {
!       if (new_reg->builtin)
  	as_warn (_("ignoring attempt to redefine built-in register '%s'"), str);
  
        /* Only warn about a redefinition if it's not defined as the
  	 same register.	 */
!       else if (new_reg->number != number || new_reg->type != type)
  	as_warn (_("ignoring redefinition of register alias '%s'"), str);
  
        return NULL;
      }
  
    name = xstrdup (str);
!   new_reg = (struct reg_entry *) xmalloc (sizeof (struct reg_entry));
  
!   new_reg->name = name;
!   new_reg->number = number;
!   new_reg->type = type;
!   new_reg->builtin = FALSE;
!   new_reg->neon = NULL;
  
!   if (hash_insert (arm_reg_hsh, name, (void *) new_reg))
      abort ();
  
!   return new_reg;
  }
  
  static void
diff -prc src.head/gas/config/tc-dlx.c src.new/gas/config/tc-dlx.c
*** src.head/gas/config/tc-dlx.c	Fri Aug 14 10:59:50 2009
--- src.new/gas/config/tc-dlx.c	Tue Aug 18 11:53:38 2009
*************** static char *
*** 594,600 ****
  parse_operand (char *s, expressionS *operandp)
  {
    char *save = input_line_pointer;
!   char *new;
  
    the_insn.HI = the_insn.LO = 0;
  
--- 594,600 ----
  parse_operand (char *s, expressionS *operandp)
  {
    char *save = input_line_pointer;
!   char *new_pos;
  
    the_insn.HI = the_insn.LO = 0;
  
*************** parse_operand (char *s, expressionS *ope
*** 641,649 ****
        (void) expression (operandp);
      }
  
!   new = input_line_pointer;
    input_line_pointer = save;
!   return new;
  }
  
  /* Instruction parsing.  Takes a string containing the opcode.
--- 641,649 ----
        (void) expression (operandp);
      }
  
!   new_pos = input_line_pointer;
    input_line_pointer = save;
!   return new_pos;
  }
  
  /* Instruction parsing.  Takes a string containing the opcode.
diff -prc src.head/gas/config/tc-ia64.c src.new/gas/config/tc-ia64.c
*** src.head/gas/config/tc-ia64.c	Fri Aug 14 10:59:51 2009
--- src.new/gas/config/tc-ia64.c	Tue Aug 18 11:53:38 2009
*************** ia64_cons_fix_new (fragS *f, int where, 
*** 10861,10867 ****
  static bfd_reloc_code_real_type
  ia64_gen_real_reloc_type (struct symbol *sym, bfd_reloc_code_real_type r_type)
  {
!   bfd_reloc_code_real_type new = 0;
    const char *type = NULL, *suffix = "";
  
    if (sym == NULL)
--- 10861,10867 ----
  static bfd_reloc_code_real_type
  ia64_gen_real_reloc_type (struct symbol *sym, bfd_reloc_code_real_type r_type)
  {
!   bfd_reloc_code_real_type newr = 0;
    const char *type = NULL, *suffix = "";
  
    if (sym == NULL)
*************** ia64_gen_real_reloc_type (struct symbol 
*** 10874,10884 ****
      case FUNC_FPTR_RELATIVE:
        switch (r_type)
  	{
! 	case BFD_RELOC_IA64_IMM64:	new = BFD_RELOC_IA64_FPTR64I; break;
! 	case BFD_RELOC_IA64_DIR32MSB:	new = BFD_RELOC_IA64_FPTR32MSB; break;
! 	case BFD_RELOC_IA64_DIR32LSB:	new = BFD_RELOC_IA64_FPTR32LSB; break;
! 	case BFD_RELOC_IA64_DIR64MSB:	new = BFD_RELOC_IA64_FPTR64MSB; break;
! 	case BFD_RELOC_IA64_DIR64LSB:	new = BFD_RELOC_IA64_FPTR64LSB; break;
  	default:			type = "FPTR"; break;
  	}
        break;
--- 10874,10884 ----
      case FUNC_FPTR_RELATIVE:
        switch (r_type)
  	{
! 	case BFD_RELOC_IA64_IMM64:	newr = BFD_RELOC_IA64_FPTR64I; break;
! 	case BFD_RELOC_IA64_DIR32MSB:	newr = BFD_RELOC_IA64_FPTR32MSB; break;
! 	case BFD_RELOC_IA64_DIR32LSB:	newr = BFD_RELOC_IA64_FPTR32LSB; break;
! 	case BFD_RELOC_IA64_DIR64MSB:	newr = BFD_RELOC_IA64_FPTR64MSB; break;
! 	case BFD_RELOC_IA64_DIR64LSB:	newr = BFD_RELOC_IA64_FPTR64LSB; break;
  	default:			type = "FPTR"; break;
  	}
        break;
*************** ia64_gen_real_reloc_type (struct symbol 
*** 10886,10897 ****
      case FUNC_GP_RELATIVE:
        switch (r_type)
  	{
! 	case BFD_RELOC_IA64_IMM22:	new = BFD_RELOC_IA64_GPREL22; break;
! 	case BFD_RELOC_IA64_IMM64:	new = BFD_RELOC_IA64_GPREL64I; break;
! 	case BFD_RELOC_IA64_DIR32MSB:	new = BFD_RELOC_IA64_GPREL32MSB; break;
! 	case BFD_RELOC_IA64_DIR32LSB:	new = BFD_RELOC_IA64_GPREL32LSB; break;
! 	case BFD_RELOC_IA64_DIR64MSB:	new = BFD_RELOC_IA64_GPREL64MSB; break;
! 	case BFD_RELOC_IA64_DIR64LSB:	new = BFD_RELOC_IA64_GPREL64LSB; break;
  	default:			type = "GPREL"; break;
  	}
        break;
--- 10886,10897 ----
      case FUNC_GP_RELATIVE:
        switch (r_type)
  	{
! 	case BFD_RELOC_IA64_IMM22:	newr = BFD_RELOC_IA64_GPREL22; break;
! 	case BFD_RELOC_IA64_IMM64:	newr = BFD_RELOC_IA64_GPREL64I; break;
! 	case BFD_RELOC_IA64_DIR32MSB:	newr = BFD_RELOC_IA64_GPREL32MSB; break;
! 	case BFD_RELOC_IA64_DIR32LSB:	newr = BFD_RELOC_IA64_GPREL32LSB; break;
! 	case BFD_RELOC_IA64_DIR64MSB:	newr = BFD_RELOC_IA64_GPREL64MSB; break;
! 	case BFD_RELOC_IA64_DIR64LSB:	newr = BFD_RELOC_IA64_GPREL64LSB; break;
  	default:			type = "GPREL"; break;
  	}
        break;
*************** ia64_gen_real_reloc_type (struct symbol 
*** 10899,10906 ****
      case FUNC_LT_RELATIVE:
        switch (r_type)
  	{
! 	case BFD_RELOC_IA64_IMM22:	new = BFD_RELOC_IA64_LTOFF22; break;
! 	case BFD_RELOC_IA64_IMM64:	new = BFD_RELOC_IA64_LTOFF64I; break;
  	default:			type = "LTOFF"; break;
  	}
        break;
--- 10899,10906 ----
      case FUNC_LT_RELATIVE:
        switch (r_type)
  	{
! 	case BFD_RELOC_IA64_IMM22:	newr = BFD_RELOC_IA64_LTOFF22; break;
! 	case BFD_RELOC_IA64_IMM64:	newr = BFD_RELOC_IA64_LTOFF64I; break;
  	default:			type = "LTOFF"; break;
  	}
        break;
*************** ia64_gen_real_reloc_type (struct symbol 
*** 10908,10914 ****
      case FUNC_LT_RELATIVE_X:
        switch (r_type)
  	{
! 	case BFD_RELOC_IA64_IMM22:	new = BFD_RELOC_IA64_LTOFF22X; break;
  	default:			type = "LTOFF"; suffix = "X"; break;
  	}
        break;
--- 10908,10914 ----
      case FUNC_LT_RELATIVE_X:
        switch (r_type)
  	{
! 	case BFD_RELOC_IA64_IMM22:	newr = BFD_RELOC_IA64_LTOFF22X; break;
  	default:			type = "LTOFF"; suffix = "X"; break;
  	}
        break;
*************** ia64_gen_real_reloc_type (struct symbol 
*** 10916,10927 ****
      case FUNC_PC_RELATIVE:
        switch (r_type)
  	{
! 	case BFD_RELOC_IA64_IMM22:	new = BFD_RELOC_IA64_PCREL22; break;
! 	case BFD_RELOC_IA64_IMM64:	new = BFD_RELOC_IA64_PCREL64I; break;
! 	case BFD_RELOC_IA64_DIR32MSB:	new = BFD_RELOC_IA64_PCREL32MSB; break;
! 	case BFD_RELOC_IA64_DIR32LSB:	new = BFD_RELOC_IA64_PCREL32LSB; break;
! 	case BFD_RELOC_IA64_DIR64MSB:	new = BFD_RELOC_IA64_PCREL64MSB; break;
! 	case BFD_RELOC_IA64_DIR64LSB:	new = BFD_RELOC_IA64_PCREL64LSB; break;
  	default:			type = "PCREL"; break;
  	}
        break;
--- 10916,10927 ----
      case FUNC_PC_RELATIVE:
        switch (r_type)
  	{
! 	case BFD_RELOC_IA64_IMM22:	newr = BFD_RELOC_IA64_PCREL22; break;
! 	case BFD_RELOC_IA64_IMM64:	newr = BFD_RELOC_IA64_PCREL64I; break;
! 	case BFD_RELOC_IA64_DIR32MSB:	newr = BFD_RELOC_IA64_PCREL32MSB; break;
! 	case BFD_RELOC_IA64_DIR32LSB:	newr = BFD_RELOC_IA64_PCREL32LSB; break;
! 	case BFD_RELOC_IA64_DIR64MSB:	newr = BFD_RELOC_IA64_PCREL64MSB; break;
! 	case BFD_RELOC_IA64_DIR64LSB:	newr = BFD_RELOC_IA64_PCREL64LSB; break;
  	default:			type = "PCREL"; break;
  	}
        break;
*************** ia64_gen_real_reloc_type (struct symbol 
*** 10929,10938 ****
      case FUNC_PLT_RELATIVE:
        switch (r_type)
  	{
! 	case BFD_RELOC_IA64_IMM22:	new = BFD_RELOC_IA64_PLTOFF22; break;
! 	case BFD_RELOC_IA64_IMM64:	new = BFD_RELOC_IA64_PLTOFF64I; break;
! 	case BFD_RELOC_IA64_DIR64MSB:	new = BFD_RELOC_IA64_PLTOFF64MSB;break;
! 	case BFD_RELOC_IA64_DIR64LSB:	new = BFD_RELOC_IA64_PLTOFF64LSB;break;
  	default:			type = "PLTOFF"; break;
  	}
        break;
--- 10929,10938 ----
      case FUNC_PLT_RELATIVE:
        switch (r_type)
  	{
! 	case BFD_RELOC_IA64_IMM22:	newr = BFD_RELOC_IA64_PLTOFF22; break;
! 	case BFD_RELOC_IA64_IMM64:	newr = BFD_RELOC_IA64_PLTOFF64I; break;
! 	case BFD_RELOC_IA64_DIR64MSB:	newr = BFD_RELOC_IA64_PLTOFF64MSB;break;
! 	case BFD_RELOC_IA64_DIR64LSB:	newr = BFD_RELOC_IA64_PLTOFF64LSB;break;
  	default:			type = "PLTOFF"; break;
  	}
        break;
*************** ia64_gen_real_reloc_type (struct symbol 
*** 10940,10949 ****
      case FUNC_SEC_RELATIVE:
        switch (r_type)
  	{
! 	case BFD_RELOC_IA64_DIR32MSB:	new = BFD_RELOC_IA64_SECREL32MSB;break;
! 	case BFD_RELOC_IA64_DIR32LSB:	new = BFD_RELOC_IA64_SECREL32LSB;break;
! 	case BFD_RELOC_IA64_DIR64MSB:	new = BFD_RELOC_IA64_SECREL64MSB;break;
! 	case BFD_RELOC_IA64_DIR64LSB:	new = BFD_RELOC_IA64_SECREL64LSB;break;
  	default:			type = "SECREL"; break;
  	}
        break;
--- 10940,10949 ----
      case FUNC_SEC_RELATIVE:
        switch (r_type)
  	{
! 	case BFD_RELOC_IA64_DIR32MSB:	newr = BFD_RELOC_IA64_SECREL32MSB;break;
! 	case BFD_RELOC_IA64_DIR32LSB:	newr = BFD_RELOC_IA64_SECREL32LSB;break;
! 	case BFD_RELOC_IA64_DIR64MSB:	newr = BFD_RELOC_IA64_SECREL64MSB;break;
! 	case BFD_RELOC_IA64_DIR64LSB:	newr = BFD_RELOC_IA64_SECREL64LSB;break;
  	default:			type = "SECREL"; break;
  	}
        break;
*************** ia64_gen_real_reloc_type (struct symbol 
*** 10951,10960 ****
      case FUNC_SEG_RELATIVE:
        switch (r_type)
  	{
! 	case BFD_RELOC_IA64_DIR32MSB:	new = BFD_RELOC_IA64_SEGREL32MSB;break;
! 	case BFD_RELOC_IA64_DIR32LSB:	new = BFD_RELOC_IA64_SEGREL32LSB;break;
! 	case BFD_RELOC_IA64_DIR64MSB:	new = BFD_RELOC_IA64_SEGREL64MSB;break;
! 	case BFD_RELOC_IA64_DIR64LSB:	new = BFD_RELOC_IA64_SEGREL64LSB;break;
  	default:			type = "SEGREL"; break;
  	}
        break;
--- 10951,10960 ----
      case FUNC_SEG_RELATIVE:
        switch (r_type)
  	{
! 	case BFD_RELOC_IA64_DIR32MSB:	newr = BFD_RELOC_IA64_SEGREL32MSB;break;
! 	case BFD_RELOC_IA64_DIR32LSB:	newr = BFD_RELOC_IA64_SEGREL32LSB;break;
! 	case BFD_RELOC_IA64_DIR64MSB:	newr = BFD_RELOC_IA64_SEGREL64MSB;break;
! 	case BFD_RELOC_IA64_DIR64LSB:	newr = BFD_RELOC_IA64_SEGREL64LSB;break;
  	default:			type = "SEGREL"; break;
  	}
        break;
*************** ia64_gen_real_reloc_type (struct symbol 
*** 10962,10971 ****
      case FUNC_LTV_RELATIVE:
        switch (r_type)
  	{
! 	case BFD_RELOC_IA64_DIR32MSB:	new = BFD_RELOC_IA64_LTV32MSB; break;
! 	case BFD_RELOC_IA64_DIR32LSB:	new = BFD_RELOC_IA64_LTV32LSB; break;
! 	case BFD_RELOC_IA64_DIR64MSB:	new = BFD_RELOC_IA64_LTV64MSB; break;
! 	case BFD_RELOC_IA64_DIR64LSB:	new = BFD_RELOC_IA64_LTV64LSB; break;
  	default:			type = "LTV"; break;
  	}
        break;
--- 10962,10971 ----
      case FUNC_LTV_RELATIVE:
        switch (r_type)
  	{
! 	case BFD_RELOC_IA64_DIR32MSB:	newr = BFD_RELOC_IA64_LTV32MSB; break;
! 	case BFD_RELOC_IA64_DIR32LSB:	newr = BFD_RELOC_IA64_LTV32LSB; break;
! 	case BFD_RELOC_IA64_DIR64MSB:	newr = BFD_RELOC_IA64_LTV64MSB; break;
! 	case BFD_RELOC_IA64_DIR64LSB:	newr = BFD_RELOC_IA64_LTV64LSB; break;
  	default:			type = "LTV"; break;
  	}
        break;
*************** ia64_gen_real_reloc_type (struct symbol 
*** 10974,10990 ****
        switch (r_type)
  	{
  	case BFD_RELOC_IA64_IMM22:
! 	  new = BFD_RELOC_IA64_LTOFF_FPTR22; break;
  	case BFD_RELOC_IA64_IMM64:
! 	  new = BFD_RELOC_IA64_LTOFF_FPTR64I; break;
  	case BFD_RELOC_IA64_DIR32MSB:
! 	  new = BFD_RELOC_IA64_LTOFF_FPTR32MSB; break;
  	case BFD_RELOC_IA64_DIR32LSB:
! 	  new = BFD_RELOC_IA64_LTOFF_FPTR32LSB; break;
  	case BFD_RELOC_IA64_DIR64MSB:
! 	  new = BFD_RELOC_IA64_LTOFF_FPTR64MSB; break;
  	case BFD_RELOC_IA64_DIR64LSB:
! 	  new = BFD_RELOC_IA64_LTOFF_FPTR64LSB; break;
  	default:
  	  type = "LTOFF_FPTR"; break;
  	}
--- 10974,10990 ----
        switch (r_type)
  	{
  	case BFD_RELOC_IA64_IMM22:
! 	  newr = BFD_RELOC_IA64_LTOFF_FPTR22; break;
  	case BFD_RELOC_IA64_IMM64:
! 	  newr = BFD_RELOC_IA64_LTOFF_FPTR64I; break;
  	case BFD_RELOC_IA64_DIR32MSB:
! 	  newr = BFD_RELOC_IA64_LTOFF_FPTR32MSB; break;
  	case BFD_RELOC_IA64_DIR32LSB:
! 	  newr = BFD_RELOC_IA64_LTOFF_FPTR32LSB; break;
  	case BFD_RELOC_IA64_DIR64MSB:
! 	  newr = BFD_RELOC_IA64_LTOFF_FPTR64MSB; break;
  	case BFD_RELOC_IA64_DIR64LSB:
! 	  newr = BFD_RELOC_IA64_LTOFF_FPTR64LSB; break;
  	default:
  	  type = "LTOFF_FPTR"; break;
  	}
*************** ia64_gen_real_reloc_type (struct symbol 
*** 10993,11003 ****
      case FUNC_TP_RELATIVE:
        switch (r_type)
  	{
! 	case BFD_RELOC_IA64_IMM14:      new = BFD_RELOC_IA64_TPREL14; break;
! 	case BFD_RELOC_IA64_IMM22:      new = BFD_RELOC_IA64_TPREL22; break;
! 	case BFD_RELOC_IA64_IMM64:      new = BFD_RELOC_IA64_TPREL64I; break;
! 	case BFD_RELOC_IA64_DIR64MSB:   new = BFD_RELOC_IA64_TPREL64MSB; break;
! 	case BFD_RELOC_IA64_DIR64LSB:   new = BFD_RELOC_IA64_TPREL64LSB; break;
  	default:                        type = "TPREL"; break;
  	}
        break;
--- 10993,11003 ----
      case FUNC_TP_RELATIVE:
        switch (r_type)
  	{
! 	case BFD_RELOC_IA64_IMM14:      newr = BFD_RELOC_IA64_TPREL14; break;
! 	case BFD_RELOC_IA64_IMM22:      newr = BFD_RELOC_IA64_TPREL22; break;
! 	case BFD_RELOC_IA64_IMM64:      newr = BFD_RELOC_IA64_TPREL64I; break;
! 	case BFD_RELOC_IA64_DIR64MSB:   newr = BFD_RELOC_IA64_TPREL64MSB; break;
! 	case BFD_RELOC_IA64_DIR64LSB:   newr = BFD_RELOC_IA64_TPREL64LSB; break;
  	default:                        type = "TPREL"; break;
  	}
        break;
*************** ia64_gen_real_reloc_type (struct symbol 
*** 11006,11012 ****
        switch (r_type)
  	{
  	case BFD_RELOC_IA64_IMM22:
! 	  new = BFD_RELOC_IA64_LTOFF_TPREL22; break;
  	default:
  	  type = "LTOFF_TPREL"; break;
  	}
--- 11006,11012 ----
        switch (r_type)
  	{
  	case BFD_RELOC_IA64_IMM22:
! 	  newr = BFD_RELOC_IA64_LTOFF_TPREL22; break;
  	default:
  	  type = "LTOFF_TPREL"; break;
  	}
*************** ia64_gen_real_reloc_type (struct symbol 
*** 11016,11024 ****
        switch (r_type)
  	{
  	case BFD_RELOC_IA64_DIR64MSB:
! 	  new = BFD_RELOC_IA64_DTPMOD64MSB; break;
  	case BFD_RELOC_IA64_DIR64LSB:
! 	  new = BFD_RELOC_IA64_DTPMOD64LSB; break;
  	default:
  	  type = "DTPMOD"; break;
  	}
--- 11016,11024 ----
        switch (r_type)
  	{
  	case BFD_RELOC_IA64_DIR64MSB:
! 	  newr = BFD_RELOC_IA64_DTPMOD64MSB; break;
  	case BFD_RELOC_IA64_DIR64LSB:
! 	  newr = BFD_RELOC_IA64_DTPMOD64LSB; break;
  	default:
  	  type = "DTPMOD"; break;
  	}
*************** ia64_gen_real_reloc_type (struct symbol 
*** 11028,11034 ****
        switch (r_type)
  	{
  	case BFD_RELOC_IA64_IMM22:
! 	  new = BFD_RELOC_IA64_LTOFF_DTPMOD22; break;
  	default:
  	  type = "LTOFF_DTPMOD"; break;
  	}
--- 11028,11034 ----
        switch (r_type)
  	{
  	case BFD_RELOC_IA64_IMM22:
! 	  newr = BFD_RELOC_IA64_LTOFF_DTPMOD22; break;
  	default:
  	  type = "LTOFF_DTPMOD"; break;
  	}
*************** ia64_gen_real_reloc_type (struct symbol 
*** 11038,11056 ****
        switch (r_type)
  	{
  	case BFD_RELOC_IA64_DIR32MSB:
! 	  new = BFD_RELOC_IA64_DTPREL32MSB; break;
  	case BFD_RELOC_IA64_DIR32LSB:
! 	  new = BFD_RELOC_IA64_DTPREL32LSB; break;
  	case BFD_RELOC_IA64_DIR64MSB:
! 	  new = BFD_RELOC_IA64_DTPREL64MSB; break;
  	case BFD_RELOC_IA64_DIR64LSB:
! 	  new = BFD_RELOC_IA64_DTPREL64LSB; break;
  	case BFD_RELOC_IA64_IMM14:
! 	  new = BFD_RELOC_IA64_DTPREL14; break;
  	case BFD_RELOC_IA64_IMM22:
! 	  new = BFD_RELOC_IA64_DTPREL22; break;
  	case BFD_RELOC_IA64_IMM64:
! 	  new = BFD_RELOC_IA64_DTPREL64I; break;
  	default:
  	  type = "DTPREL"; break;
  	}
--- 11038,11056 ----
        switch (r_type)
  	{
  	case BFD_RELOC_IA64_DIR32MSB:
! 	  newr = BFD_RELOC_IA64_DTPREL32MSB; break;
  	case BFD_RELOC_IA64_DIR32LSB:
! 	  newr = BFD_RELOC_IA64_DTPREL32LSB; break;
  	case BFD_RELOC_IA64_DIR64MSB:
! 	  newr = BFD_RELOC_IA64_DTPREL64MSB; break;
  	case BFD_RELOC_IA64_DIR64LSB:
! 	  newr = BFD_RELOC_IA64_DTPREL64LSB; break;
  	case BFD_RELOC_IA64_IMM14:
! 	  newr = BFD_RELOC_IA64_DTPREL14; break;
  	case BFD_RELOC_IA64_IMM22:
! 	  newr = BFD_RELOC_IA64_DTPREL22; break;
  	case BFD_RELOC_IA64_IMM64:
! 	  newr = BFD_RELOC_IA64_DTPREL64I; break;
  	default:
  	  type = "DTPREL"; break;
  	}
*************** ia64_gen_real_reloc_type (struct symbol 
*** 11060,11066 ****
        switch (r_type)
  	{
  	case BFD_RELOC_IA64_IMM22:
! 	  new = BFD_RELOC_IA64_LTOFF_DTPREL22; break;
  	default:
  	  type = "LTOFF_DTPREL"; break;
  	}
--- 11060,11066 ----
        switch (r_type)
  	{
  	case BFD_RELOC_IA64_IMM22:
! 	  newr = BFD_RELOC_IA64_LTOFF_DTPREL22; break;
  	default:
  	  type = "LTOFF_DTPREL"; break;
  	}
*************** ia64_gen_real_reloc_type (struct symbol 
*** 11079,11086 ****
        abort ();
      }
  
!   if (new)
!     return new;
    else
      {
        int width;
--- 11079,11086 ----
        abort ();
      }
  
!   if (newr)
!     return newr;
    else
      {
        int width;
diff -prc src.head/gas/config/tc-mcore.c src.new/gas/config/tc-mcore.c
*** src.head/gas/config/tc-mcore.c	Fri Aug 14 10:59:52 2009
--- src.new/gas/config/tc-mcore.c	Wed Aug 26 12:45:42 2009
*************** static char *
*** 647,653 ****
  parse_exp (char * s, expressionS * e)
  {
    char * save;
!   char * new;
  
    /* Skip whitespace.  */
    while (ISSPACE (* s))
--- 647,653 ----
  parse_exp (char * s, expressionS * e)
  {
    char * save;
!   char * new_pointer;
  
    /* Skip whitespace.  */
    while (ISSPACE (* s))
*************** parse_exp (char * s, expressionS * e)
*** 661,670 ****
    if (e->X_op == O_absent)
      as_bad (_("missing operand"));
  
!   new = input_line_pointer;
    input_line_pointer = save;
  
!   return new;
  }
  
  static int
--- 661,670 ----
    if (e->X_op == O_absent)
      as_bad (_("missing operand"));
  
!   new_pointer = input_line_pointer;
    input_line_pointer = save;
  
!   return new_pointer;
  }
  
  static int
*************** parse_imm (char * s,
*** 771,780 ****
  	   unsigned min,
  	   unsigned max)
  {
!   char * new;
    expressionS e;
  
!   new = parse_exp (s, & e);
  
    if (e.X_op == O_absent)
      ; /* An error message has already been emitted.  */
--- 771,780 ----
  	   unsigned min,
  	   unsigned max)
  {
!   char * new_pointer;
    expressionS e;
  
!   new_pointer = parse_exp (s, & e);
  
    if (e.X_op == O_absent)
      ; /* An error message has already been emitted.  */
*************** parse_imm (char * s,
*** 786,792 ****
  
    * val = e.X_add_number;
  
!   return new;
  }
  
  static char *
--- 786,792 ----
  
    * val = e.X_add_number;
  
!   return new_pointer;
  }
  
  static char *
diff -prc src.head/gas/config/tc-microblaze.c src.new/gas/config/tc-microblaze.c
*** src.head/gas/config/tc-microblaze.c	Thu Aug  6 10:38:02 2009
--- src.new/gas/config/tc-microblaze.c	Wed Aug 26 12:45:20 2009
*************** static char *
*** 568,574 ****
  parse_exp (char *s, expressionS *e)
  {
    char *save;
!   char *new;
  
    /* Skip whitespace.  */
    while (isspace (* s))
--- 568,574 ----
  parse_exp (char *s, expressionS *e)
  {
    char *save;
!   char *new_pointer;
  
    /* Skip whitespace.  */
    while (isspace (* s))
*************** parse_exp (char *s, expressionS *e)
*** 582,591 ****
    if (e->X_op == O_absent)
      as_fatal (_("missing operand"));
  
!   new = input_line_pointer;
    input_line_pointer = save;
  
!   return new;
  }
  
  /* Symbol modifiers (@GOT, @PLT, @GOTOFF).  */
--- 582,591 ----
    if (e->X_op == O_absent)
      as_fatal (_("missing operand"));
  
!   new_pointer = input_line_pointer;
    input_line_pointer = save;
  
!   return new_pointer;
  }
  
  /* Symbol modifiers (@GOT, @PLT, @GOTOFF).  */
*************** static symbolS * GOT_symbol;
*** 600,606 ****
  static char *
  parse_imm (char * s, expressionS * e, int min, int max)
  {
!   char *new;
    char *atp;
  
    /* Find the start of "@GOT" or "@PLT" suffix (if any) */
--- 600,606 ----
  static char *
  parse_imm (char * s, expressionS * e, int min, int max)
  {
!   char *new_pointer;
    char *atp;
  
    /* Find the start of "@GOT" or "@PLT" suffix (if any) */
*************** parse_imm (char * s, expressionS * e, in
*** 643,649 ****
        GOT_symbol = symbol_find_or_make (GOT_SYMBOL_NAME);
      }
  
!   new = parse_exp (s, e);
  
    if (e->X_op == O_absent)
      ; /* An error message has already been emitted.  */
--- 643,649 ----
        GOT_symbol = symbol_find_or_make (GOT_SYMBOL_NAME);
      }
  
!   new_pointer = parse_exp (s, e);
  
    if (e->X_op == O_absent)
      ; /* An error message has already been emitted.  */
*************** parse_imm (char * s, expressionS * e, in
*** 659,676 ****
    if (atp)
      {
        *atp = '@'; /* restore back (needed?)  */
!       if (new >= atp)
!         new += (e->X_md == IMM_GOTOFF)?7:4;
        /* sizeof("@GOTOFF", "@GOT" or "@PLT") */
  
      }
!   return new;
  }
  
  static char *
  check_got (int * got_type, int * got_len)
  {
!   char *new;
    char *atp;
    char *past_got;
    int first, second;
--- 659,676 ----
    if (atp)
      {
        *atp = '@'; /* restore back (needed?)  */
!       if (new_pointer >= atp)
!         new_pointer += (e->X_md == IMM_GOTOFF)?7:4;
        /* sizeof("@GOTOFF", "@GOT" or "@PLT") */
  
      }
!   return new_pointer;
  }
  
  static char *
  check_got (int * got_type, int * got_len)
  {
!   char *new_pointer;
    char *atp;
    char *past_got;
    int first, second;
*************** check_got (int * got_type, int * got_len
*** 705,713 ****
    first = atp - input_line_pointer;
  
    past_got = atp + *got_len + 1;
!   for (new = past_got; !is_end_of_line[(unsigned char) *new++]; )
      ;
!   second = new - past_got;
    tmpbuf = xmalloc (first + second + 2); /* One extra byte for ' ' and one for NUL.  */
    memcpy (tmpbuf, input_line_pointer, first);
    tmpbuf[first] = ' '; /* @GOTOFF is replaced with a single space.  */
--- 705,713 ----
    first = atp - input_line_pointer;
  
    past_got = atp + *got_len + 1;
!   for (new_pointer = past_got; !is_end_of_line[(unsigned char) *new_p++]; )
      ;
!   second = new_pointer - past_got;
    tmpbuf = xmalloc (first + second + 2); /* One extra byte for ' ' and one for NUL.  */
    memcpy (tmpbuf, input_line_pointer, first);
    tmpbuf[first] = ' '; /* @GOTOFF is replaced with a single space.  */
Only in src.head/gas/config: tc-moxie.c.~1.5.~
diff -prc src.head/gas/config/tc-or32.c src.new/gas/config/tc-or32.c
*** src.head/gas/config/tc-or32.c	Tue Jun 16 09:07:25 2009
--- src.new/gas/config/tc-or32.c	Wed Aug 26 12:47:35 2009
*************** static char *
*** 262,268 ****
  parse_operand (char *s, expressionS *operandp, int opt)
  {
    char *save = input_line_pointer;
!   char *new;
  
  #if DEBUG
    printf ("  PROCESS NEW OPERAND(%s) == %c (%d)\n", s, opt ? opt : '!', opt);
--- 262,268 ----
  parse_operand (char *s, expressionS *operandp, int opt)
  {
    char *save = input_line_pointer;
!   char *new_pointer;
  
  #if DEBUG
    printf ("  PROCESS NEW OPERAND(%s) == %c (%d)\n", s, opt ? opt : '!', opt);
*************** parse_operand (char *s, expressionS *ope
*** 312,325 ****
          }
      }
  
!   new = input_line_pointer;
    input_line_pointer = save;
  
  #if DEBUG
!   printf ("  %s=parse_operand(%s): operandp->X_op = %u\n", new, s, operandp->X_op);
  #endif
  
!   return new;
  }
  
  /* Instruction parsing.  Takes a string containing the opcode.
--- 312,326 ----
          }
      }
  
!   new_pointer = input_line_pointer;
    input_line_pointer = save;
  
  #if DEBUG
!   printf ("  %s=parse_operand(%s): operandp->X_op = %u\n", new_pointer, s,
!           operandp->X_op);
  #endif
  
!   return new_pointer;
  }
  
  /* Instruction parsing.  Takes a string containing the opcode.
diff -prc src.head/gas/config/tc-pdp11.c src.new/gas/config/tc-pdp11.c
*** src.head/gas/config/tc-pdp11.c	Fri Aug 14 10:59:54 2009
--- src.new/gas/config/tc-pdp11.c	Wed Aug 26 12:48:48 2009
*************** md_assemble (char *instruction_string)
*** 752,759 ****
  
      case PDP11_OPCODE_DISPL:
        {
! 	char *new;
! 	new = parse_expression (str, &op1);
  	op1.code = 0;
  	op1.reloc.pc_rel = 1;
  	op1.reloc.type = BFD_RELOC_PDP11_DISP_8_PCREL;
--- 752,759 ----
  
      case PDP11_OPCODE_DISPL:
        {
! 	char *new_pointer;
! 	new_pointer = parse_expression (str, &op1);
  	op1.code = 0;
  	op1.reloc.pc_rel = 1;
  	op1.reloc.type = BFD_RELOC_PDP11_DISP_8_PCREL;
*************** md_assemble (char *instruction_string)
*** 767,773 ****
  	    err = _("8-bit displacement out of range");
  	    break;
  	  }
! 	str = new;
  	insn.code |= op1.code;
  	insn.reloc = op1.reloc;
        }
--- 767,773 ----
  	    err = _("8-bit displacement out of range");
  	    break;
  	  }
! 	str = new_pointer;
  	insn.code |= op1.code;
  	insn.reloc = op1.reloc;
        }
*************** md_assemble (char *instruction_string)
*** 935,941 ****
  
      case PDP11_OPCODE_REG_DISPL:
        {
! 	char *new;
  	str = parse_reg (str, &op2);
  	if (op2.error)
  	  break;
--- 935,941 ----
  
      case PDP11_OPCODE_REG_DISPL:
        {
! 	char *new_pointer;
  	str = parse_reg (str, &op2);
  	if (op2.error)
  	  break;
*************** md_assemble (char *instruction_string)
*** 946,952 ****
  	    op1.error = _("Missing ','");
  	    break;
  	  }
! 	new = parse_expression (str, &op1);
  	op1.code = 0;
  	op1.reloc.pc_rel = 1;
  	op1.reloc.type = BFD_RELOC_PDP11_DISP_6_PCREL;
--- 946,952 ----
  	    op1.error = _("Missing ','");
  	    break;
  	  }
! 	new_pointer = parse_expression (str, &op1);
  	op1.code = 0;
  	op1.reloc.pc_rel = 1;
  	op1.reloc.type = BFD_RELOC_PDP11_DISP_6_PCREL;
*************** md_assemble (char *instruction_string)
*** 960,966 ****
  	    err = _("6-bit displacement out of range");
  	    break;
  	  }
! 	str = new;
  	insn.code |= op1.code;
  	insn.reloc = op1.reloc;
        }
--- 960,966 ----
  	    err = _("6-bit displacement out of range");
  	    break;
  	  }
! 	str = new_pointer;
  	insn.code |= op1.code;
  	insn.reloc = op1.reloc;
        }
diff -prc src.head/gas/config/tc-pj.c src.new/gas/config/tc-pj.c
*** src.head/gas/config/tc-pj.c	Fri Aug 14 10:59:54 2009
--- src.new/gas/config/tc-pj.c	Tue Aug 18 11:53:38 2009
*************** fake_opcode (const char *name,
*** 183,191 ****
     can have another name.  */
  
  static void
! alias (const char *new, const char *old)
  {
!   hash_insert (opcode_hash_control, new,
  	       (char *) hash_find (opcode_hash_control, old));
  }
  
--- 183,191 ----
     can have another name.  */
  
  static void
! alias (const char *new_name, const char *old)
  {
!   hash_insert (opcode_hash_control, new_name,
  	       (char *) hash_find (opcode_hash_control, old));
  }
  
diff -prc src.head/gas/config/tc-score.c src.new/gas/config/tc-score.c
*** src.head/gas/config/tc-score.c	Fri Aug 14 10:59:54 2009
--- src.new/gas/config/tc-score.c	Tue Aug 18 11:53:38 2009
*************** s3_build_score_ops_hsh (void)
*** 6320,6338 ****
      {
        const struct s3_asm_opcode *insn = s3_score_insns + i;
        unsigned len = strlen (insn->template);
!       struct s3_asm_opcode *new;
        char *template;
!       new = obstack_alloc (&insn_obstack, sizeof (struct s3_asm_opcode));
!       template = obstack_alloc (&insn_obstack, len + 1);
  
        strcpy (template, insn->template);
!       new->template = template;
!       new->parms = insn->parms;
!       new->value = insn->value;
!       new->relax_value = insn->relax_value;
!       new->type = insn->type;
!       new->bitmask = insn->bitmask;
!       hash_insert (s3_score_ops_hsh, new->template, (void *) new);
      }
  }
  
--- 6320,6340 ----
      {
        const struct s3_asm_opcode *insn = s3_score_insns + i;
        unsigned len = strlen (insn->template);
!       struct s3_asm_opcode *new_opcode;
        char *template;
!       new_opcode = (struct s3_asm_opcode *)
!           obstack_alloc (&insn_obstack, sizeof (struct s3_asm_opcode));
!       template = (char *) obstack_alloc (&insn_obstack, len + 1);
  
        strcpy (template, insn->template);
!       new_opcode->template = template;
!       new_opcode->parms = insn->parms;
!       new_opcode->value = insn->value;
!       new_opcode->relax_value = insn->relax_value;
!       new_opcode->type = insn->type;
!       new_opcode->bitmask = insn->bitmask;
!       hash_insert (s3_score_ops_hsh, new_opcode->template,
!                    (void *) new_opcode);
      }
  }
  
*************** s3_build_dependency_insn_hsh (void)
*** 6347,6360 ****
      {
        const struct s3_insn_to_dependency *tmp = s3_insn_to_dependency_table + i;
        unsigned len = strlen (tmp->insn_name);
!       struct s3_insn_to_dependency *new;
  
!       new = obstack_alloc (&dependency_obstack, sizeof (struct s3_insn_to_dependency));
!       new->insn_name = obstack_alloc (&dependency_obstack, len + 1);
! 
!       strcpy (new->insn_name, tmp->insn_name);
!       new->type = tmp->type;
!       hash_insert (s3_dependency_insn_hsh, new->insn_name, (void *) new);
      }
  }
  
--- 6349,6366 ----
      {
        const struct s3_insn_to_dependency *tmp = s3_insn_to_dependency_table + i;
        unsigned len = strlen (tmp->insn_name);
!       struct s3_insn_to_dependency *new_i2n;
  
!       new_i2n = (struct s3_insn_to_dependency *)
!           obstack_alloc (&dependency_obstack,
!                          sizeof (struct s3_insn_to_dependency));
!       new_i2n->insn_name = (char *) obstack_alloc (&dependency_obstack,
!                                                    len + 1);
! 
!       strcpy (new_i2n->insn_name, tmp->insn_name);
!       new_i2n->type = tmp->type;
!       hash_insert (s3_dependency_insn_hsh, new_i2n->insn_name,
!                    (void *) new_i2n);
      }
  }
  
*************** s3_relax_frag (asection * sec ATTRIBUTE_
*** 7023,7050 ****
  static void
  s3_convert_frag (bfd * abfd ATTRIBUTE_UNUSED, segT sec ATTRIBUTE_UNUSED, fragS * fragp)
  {
!   int old;
!   int new;
    char backup[20];
    fixS *fixp;
  
!   old = s3_RELAX_OLD (fragp->fr_subtype);
!   new = s3_RELAX_NEW (fragp->fr_subtype);
  
    /* fragp->fr_opcode indicates whether this frag should be relaxed.  */
    if (fragp->fr_opcode == NULL)
      {
!       memcpy (backup, fragp->fr_literal, old);
!       fragp->fr_fix = old;
      }
    else
      {
!       memcpy (backup, fragp->fr_literal + old, new);
!       fragp->fr_fix = new;
      }
  
    fixp = fragp->tc_frag_data.fixp;
!   while (fixp && fixp->fx_frag == fragp && fixp->fx_where < old)
      {
        if (fragp->fr_opcode)
  	fixp->fx_done = 1;
--- 7029,7056 ----
  static void
  s3_convert_frag (bfd * abfd ATTRIBUTE_UNUSED, segT sec ATTRIBUTE_UNUSED, fragS * fragp)
  {
!   int r_old;
!   int r_new;
    char backup[20];
    fixS *fixp;
  
!   r_old = s3_RELAX_OLD (fragp->fr_subtype);
!   r_new = s3_RELAX_NEW (fragp->fr_subtype);
  
    /* fragp->fr_opcode indicates whether this frag should be relaxed.  */
    if (fragp->fr_opcode == NULL)
      {
!       memcpy (backup, fragp->fr_literal, r_old);
!       fragp->fr_fix = r_old;
      }
    else
      {
!       memcpy (backup, fragp->fr_literal + r_old, r_new);
!       fragp->fr_fix = r_new;
      }
  
    fixp = fragp->tc_frag_data.fixp;
!   while (fixp && fixp->fx_frag == fragp && fixp->fx_where < r_old)
      {
        if (fragp->fr_opcode)
  	fixp->fx_done = 1;
*************** s3_convert_frag (bfd * abfd ATTRIBUTE_UN
*** 7053,7059 ****
    while (fixp && fixp->fx_frag == fragp)
      {
        if (fragp->fr_opcode)
! 	fixp->fx_where -= old + fragp->insn_addr;
        else
  	fixp->fx_done = 1;
        fixp = fixp->fx_next;
--- 7059,7065 ----
    while (fixp && fixp->fx_frag == fragp)
      {
        if (fragp->fr_opcode)
! 	fixp->fx_where -= r_old + fragp->insn_addr;
        else
  	fixp->fx_done = 1;
        fixp = fixp->fx_next;
diff -prc src.head/gas/config/tc-score7.c src.new/gas/config/tc-score7.c
*** src.head/gas/config/tc-score7.c	Fri Aug 14 10:59:54 2009
--- src.new/gas/config/tc-score7.c	Tue Aug 18 11:53:38 2009
*************** s7_build_score_ops_hsh (void)
*** 5093,5111 ****
      {
        const struct s7_asm_opcode *insn = s7_score_insns + i;
        unsigned len = strlen (insn->template);
!       struct s7_asm_opcode *new;
        char *template;
!       new = obstack_alloc (&insn_obstack, sizeof (struct s7_asm_opcode));
!       template = obstack_alloc (&insn_obstack, len + 1);
  
        strcpy (template, insn->template);
!       new->template = template;
!       new->parms = insn->parms;
!       new->value = insn->value;
!       new->relax_value = insn->relax_value;
!       new->type = insn->type;
!       new->bitmask = insn->bitmask;
!       hash_insert (s7_score_ops_hsh, new->template, (void *) new);
      }
  }
  
--- 5093,5113 ----
      {
        const struct s7_asm_opcode *insn = s7_score_insns + i;
        unsigned len = strlen (insn->template);
!       struct s7_asm_opcode *new_opcode;
        char *template;
!       new_opcode = (struct s7_asm_opcode *)
!           obstack_alloc (&insn_obstack, sizeof (struct s7_asm_opcode));
!       template = (char *) obstack_alloc (&insn_obstack, len + 1);
  
        strcpy (template, insn->template);
!       new_opcode->template = template;
!       new_opcode->parms = insn->parms;
!       new_opcode->value = insn->value;
!       new_opcode->relax_value = insn->relax_value;
!       new_opcode->type = insn->type;
!       new_opcode->bitmask = insn->bitmask;
!       hash_insert (s7_score_ops_hsh, new_opcode->template,
!                    (void *) new_opcode);
      }
  }
  
*************** s7_build_dependency_insn_hsh (void)
*** 5120,5133 ****
      {
        const struct s7_insn_to_dependency *tmp = s7_insn_to_dependency_table + i;
        unsigned len = strlen (tmp->insn_name);
!       struct s7_insn_to_dependency *new;
  
!       new = obstack_alloc (&dependency_obstack, sizeof (struct s7_insn_to_dependency));
!       new->insn_name = obstack_alloc (&dependency_obstack, len + 1);
! 
!       strcpy (new->insn_name, tmp->insn_name);
!       new->type = tmp->type;
!       hash_insert (s7_dependency_insn_hsh, new->insn_name, (void *) new);
      }
  }
  
--- 5122,5139 ----
      {
        const struct s7_insn_to_dependency *tmp = s7_insn_to_dependency_table + i;
        unsigned len = strlen (tmp->insn_name);
!       struct s7_insn_to_dependency *new_i2d;
  
!       new_i2d = (struct s7_insn_to_dependency *)
!           obstack_alloc (&dependency_obstack,
!                          sizeof (struct s7_insn_to_dependency));
!       new_i2d->insn_name = (char *) obstack_alloc (&dependency_obstack,
!                                                    len + 1);
! 
!       strcpy (new_i2d->insn_name, tmp->insn_name);
!       new_i2d->type = tmp->type;
!       hash_insert (s7_dependency_insn_hsh, new_i2d->insn_name,
!                    (void *) new_i2d);
      }
  }
  
*************** s7_b32_relax_to_b16 (fragS * fragp)
*** 5238,5245 ****
  {
    int grows = 0;
    int relaxable_p = 0;
!   int old;
!   int new;
    int frag_addr = fragp->fr_address + fragp->insn_addr;
  
    addressT symbol_address = 0;
--- 5244,5251 ----
  {
    int grows = 0;
    int relaxable_p = 0;
!   int r_old;
!   int r_new;
    int frag_addr = fragp->fr_address + fragp->insn_addr;
  
    addressT symbol_address = 0;
*************** s7_b32_relax_to_b16 (fragS * fragp)
*** 5253,5260 ****
       so in relax stage , it may be wrong to calculate the symbol's offset when the frag's section
       is different from the symbol's.  */
  
!   old = s7_RELAX_OLD (fragp->fr_subtype);
!   new = s7_RELAX_NEW (fragp->fr_subtype);
    relaxable_p = s7_RELAX_OPT (fragp->fr_subtype);
  
    s = fragp->fr_symbol;
--- 5259,5266 ----
       so in relax stage , it may be wrong to calculate the symbol's offset when the frag's section
       is different from the symbol's.  */
  
!   r_old = s7_RELAX_OLD (fragp->fr_subtype);
!   r_new = s7_RELAX_NEW (fragp->fr_subtype);
    relaxable_p = s7_RELAX_OPT (fragp->fr_subtype);
  
    s = fragp->fr_symbol;
*************** s7_convert_frag (bfd * abfd ATTRIBUTE_UN
*** 6575,6602 ****
  		 segT sec ATTRIBUTE_UNUSED,
  		 fragS * fragp)
  {
!   int old;
!   int new;
    char backup[20];
    fixS *fixp;
  
!   old = s7_RELAX_OLD (fragp->fr_subtype);
!   new = s7_RELAX_NEW (fragp->fr_subtype);
  
    /* fragp->fr_opcode indicates whether this frag should be relaxed.  */
    if (fragp->fr_opcode == NULL)
      {
!       memcpy (backup, fragp->fr_literal, old);
!       fragp->fr_fix = old;
      }
    else
      {
!       memcpy (backup, fragp->fr_literal + old, new);
!       fragp->fr_fix = new;
      }
  
    fixp = fragp->tc_frag_data.fixp;
!   while (fixp && fixp->fx_frag == fragp && fixp->fx_where < old)
      {
        if (fragp->fr_opcode)
  	fixp->fx_done = 1;
--- 6581,6608 ----
  		 segT sec ATTRIBUTE_UNUSED,
  		 fragS * fragp)
  {
!   int r_old;
!   int r_new;
    char backup[20];
    fixS *fixp;
  
!   r_old = s7_RELAX_OLD (fragp->fr_subtype);
!   r_new = s7_RELAX_NEW (fragp->fr_subtype);
  
    /* fragp->fr_opcode indicates whether this frag should be relaxed.  */
    if (fragp->fr_opcode == NULL)
      {
!       memcpy (backup, fragp->fr_literal, r_old);
!       fragp->fr_fix = r_old;
      }
    else
      {
!       memcpy (backup, fragp->fr_literal + r_old, r_new);
!       fragp->fr_fix = r_new;
      }
  
    fixp = fragp->tc_frag_data.fixp;
!   while (fixp && fixp->fx_frag == fragp && fixp->fx_where < r_old)
      {
        if (fragp->fr_opcode)
  	fixp->fx_done = 1;
*************** s7_convert_frag (bfd * abfd ATTRIBUTE_UN
*** 6605,6611 ****
    while (fixp && fixp->fx_frag == fragp)
      {
        if (fragp->fr_opcode)
! 	fixp->fx_where -= old + fragp->insn_addr;
        else
  	fixp->fx_done = 1;
        fixp = fixp->fx_next;
--- 6611,6617 ----
    while (fixp && fixp->fx_frag == fragp)
      {
        if (fragp->fr_opcode)
! 	fixp->fx_where -= r_old + fragp->insn_addr;
        else
  	fixp->fx_done = 1;
        fixp = fixp->fx_next;
diff -prc src.head/gas/config/tc-sh.c src.new/gas/config/tc-sh.c
*** src.head/gas/config/tc-sh.c	Fri Aug 14 10:59:54 2009
--- src.new/gas/config/tc-sh.c	Wed Aug 26 12:53:12 2009
*************** static char *
*** 1350,1356 ****
  parse_exp (char *s, sh_operand_info *op)
  {
    char *save;
!   char *new;
  
    save = input_line_pointer;
    input_line_pointer = s;
--- 1350,1356 ----
  parse_exp (char *s, sh_operand_info *op)
  {
    char *save;
!   char *new_pointer;
  
    save = input_line_pointer;
    input_line_pointer = s;
*************** parse_exp (char *s, sh_operand_info *op)
*** 1363,1371 ****
  	   || sh_PIC_related_p (op->immediate.X_op_symbol))
      as_bad (_("misplaced PIC operand"));
  #endif
!   new = input_line_pointer;
    input_line_pointer = save;
!   return new;
  }
  
  /* The many forms of operand:
--- 1363,1371 ----
  	   || sh_PIC_related_p (op->immediate.X_op_symbol))
      as_bad (_("misplaced PIC operand"));
  #endif
!   new_pointer = input_line_pointer;
    input_line_pointer = save;
!   return new_pointer;
  }
  
  /* The many forms of operand:
diff -prc src.head/gas/config/tc-sh64.c src.new/gas/config/tc-sh64.c
*** src.head/gas/config/tc-sh64.c	Fri Aug 14 10:59:54 2009
--- src.new/gas/config/tc-sh64.c	Wed Aug 26 12:54:06 2009
*************** static char *
*** 2204,2219 ****
  shmedia_parse_exp (char *s, shmedia_operand_info *op)
  {
    char *save;
!   char *new;
  
    save = input_line_pointer;
    input_line_pointer = s;
    expression (&op->immediate);
    if (op->immediate.X_op == O_absent)
      as_bad (_("missing operand"));
!   new = input_line_pointer;
    input_line_pointer = save;
!   return new;
  }
  
  /* Parse an operand.  Store pointer to next character in *PTR.  */
--- 2204,2219 ----
  shmedia_parse_exp (char *s, shmedia_operand_info *op)
  {
    char *save;
!   char *new_pointer;
  
    save = input_line_pointer;
    input_line_pointer = s;
    expression (&op->immediate);
    if (op->immediate.X_op == O_absent)
      as_bad (_("missing operand"));
!   new_pointer = input_line_pointer;
    input_line_pointer = save;
!   return new_pointer;
  }
  
  /* Parse an operand.  Store pointer to next character in *PTR.  */
diff -prc src.head/gas/config/tc-tic4x.c src.new/gas/config/tc-tic4x.c
*** src.head/gas/config/tc-tic4x.c	Fri Aug 14 10:59:55 2009
--- src.new/gas/config/tc-tic4x.c	Wed Aug 26 12:54:39 2009
*************** tic4x_operand_parse (char *s, tic4x_oper
*** 1516,1522 ****
    expressionS *exp = &operand->expr;
    char *save = input_line_pointer;
    char *str;
!   char *new;
    struct hash_entry *entry = NULL;
  
    input_line_pointer = s;
--- 1516,1522 ----
    expressionS *exp = &operand->expr;
    char *save = input_line_pointer;
    char *str;
!   char *new_pointer;
    struct hash_entry *entry = NULL;
  
    input_line_pointer = s;
*************** tic4x_operand_parse (char *s, tic4x_oper
*** 1524,1530 ****
  
    str = input_line_pointer;
    c = get_symbol_end ();	/* Get terminator.  */
!   new = input_line_pointer;
    if (strlen (str) && (entry = hash_find (tic4x_asg_hash, str)) != NULL)
      {
        *input_line_pointer = c;
--- 1524,1530 ----
  
    str = input_line_pointer;
    c = get_symbol_end ();	/* Get terminator.  */
!   new_pointer = input_line_pointer;
    if (strlen (str) && (entry = hash_find (tic4x_asg_hash, str)) != NULL)
      {
        *input_line_pointer = c;
*************** tic4x_operand_parse (char *s, tic4x_oper
*** 1666,1674 ****
  #endif
      }
    if (entry == NULL)
!     new = input_line_pointer;
    input_line_pointer = save;
!   return new;
  }
  
  static int 
--- 1666,1674 ----
  #endif
      }
    if (entry == NULL)
!     new_pointer = input_line_pointer;
    input_line_pointer = save;
!   return new_pointer;
  }
  
  static int 
diff -prc src.head/gas/config/tc-z8k.c src.new/gas/config/tc-z8k.c
*** src.head/gas/config/tc-z8k.c	Fri Aug 14 10:59:56 2009
--- src.new/gas/config/tc-z8k.c	Wed Aug 26 12:55:23 2009
*************** static char *
*** 342,356 ****
  parse_exp (char *s, expressionS *op)
  {
    char *save = input_line_pointer;
!   char *new;
  
    input_line_pointer = s;
    expression (op);
    if (op->X_op == O_absent)
      as_bad (_("missing operand"));
!   new = input_line_pointer;
    input_line_pointer = save;
!   return new;
  }
  
  /* The many forms of operand:
--- 342,356 ----
  parse_exp (char *s, expressionS *op)
  {
    char *save = input_line_pointer;
!   char *new_pointer;
  
    input_line_pointer = s;
    expression (op);
    if (op->X_op == O_absent)
      as_bad (_("missing operand"));
!   new_pointer = input_line_pointer;
    input_line_pointer = save;
!   return new_pointer;
  }
  
  /* The many forms of operand:
diff -prc src.head/gas/listing.c src.new/gas/listing.c
*** src.head/gas/listing.c	Fri Aug 14 10:59:46 2009
--- src.new/gas/listing.c	Tue Aug 18 11:53:38 2009
*************** listing_newline (char *ps)
*** 285,291 ****
    unsigned int line;
    static unsigned int last_line = 0xffff;
    static char *last_file = NULL;
!   list_info_type *new = NULL;
  
    if (listing == 0)
      return;
--- 285,291 ----
    unsigned int line;
    static unsigned int last_line = 0xffff;
    static char *last_file = NULL;
!   list_info_type *new_i = NULL;
  
    if (listing == 0)
      return;
*************** listing_newline (char *ps)
*** 318,324 ****
  	  && !(last_file && file && strcmp (file, last_file)))
  	return;
  
!       new = (list_info_type *) xmalloc (sizeof (list_info_type));
  
        /* Detect if we are reading from stdin by examining the file
  	 name returned by as_where().
--- 318,324 ----
  	  && !(last_file && file && strcmp (file, last_file)))
  	return;
  
!       new_i = (list_info_type *) xmalloc (sizeof (list_info_type));
  
        /* Detect if we are reading from stdin by examining the file
  	 name returned by as_where().
*************** listing_newline (char *ps)
*** 371,385 ****
  	      *dest = 0;
  	    }
  
! 	  new->line_contents = copy;
  	}
        else
! 	new->line_contents = NULL;
      }
    else
      {
!       new = xmalloc (sizeof (list_info_type));
!       new->line_contents = ps;
      }
  
    last_line = line;
--- 371,385 ----
  	      *dest = 0;
  	    }
  
! 	  new_i->line_contents = copy;
  	}
        else
! 	new_i->line_contents = NULL;
      }
    else
      {
!       new_i = (list_info_type *) xmalloc (sizeof (list_info_type));
!       new_i->line_contents = ps;
      }
  
    last_line = line;
*************** listing_newline (char *ps)
*** 388,408 ****
    new_frag ();
  
    if (listing_tail)
!     listing_tail->next = new;
    else
!     head = new;
  
!   listing_tail = new;
  
!   new->frag = frag_now;
!   new->line = line;
!   new->file = file_info (file);
!   new->next = (list_info_type *) NULL;
!   new->message = (char *) NULL;
!   new->edict = EDICT_NONE;
!   new->hll_file = (file_info_type *) NULL;
!   new->hll_line = 0;
!   new->debugging = 0;
  
    new_frag ();
  
--- 388,408 ----
    new_frag ();
  
    if (listing_tail)
!     listing_tail->next = new_i;
    else
!     head = new_i;
  
!   listing_tail = new_i;
  
!   new_i->frag = frag_now;
!   new_i->line = line;
!   new_i->file = file_info (file);
!   new_i->next = (list_info_type *) NULL;
!   new_i->message = (char *) NULL;
!   new_i->edict = EDICT_NONE;
!   new_i->hll_file = (file_info_type *) NULL;
!   new_i->hll_line = 0;
!   new_i->debugging = 0;
  
    new_frag ();
  
*************** listing_newline (char *ps)
*** 416,422 ****
        segname = segment_name (now_seg);
        if (strncmp (segname, ".debug", sizeof ".debug" - 1) == 0
  	  || strncmp (segname, ".line", sizeof ".line" - 1) == 0)
! 	new->debugging = 1;
      }
  #endif
  }
--- 416,422 ----
        segname = segment_name (now_seg);
        if (strncmp (segname, ".debug", sizeof ".debug" - 1) == 0
  	  || strncmp (segname, ".line", sizeof ".line" - 1) == 0)
! 	new_i->debugging = 1;
      }
  #endif
  }
diff -prc src.head/ld/ldexp.c src.new/ld/ldexp.c
*** src.head/ld/ldexp.c	Tue Jun 16 09:08:14 2009
--- src.new/ld/ldexp.c	Tue Aug 18 11:53:38 2009
*************** new_abs (bfd_vma value)
*** 154,178 ****
  etree_type *
  exp_intop (bfd_vma value)
  {
!   etree_type *new = stat_alloc (sizeof (new->value));
!   new->type.node_code = INT;
!   new->type.lineno = lineno;
!   new->value.value = value;
!   new->value.str = NULL;
!   new->type.node_class = etree_value;
!   return new;
  }
  
  etree_type *
  exp_bigintop (bfd_vma value, char *str)
  {
!   etree_type *new = stat_alloc (sizeof (new->value));
!   new->type.node_code = INT;
!   new->type.lineno = lineno;
!   new->value.value = value;
!   new->value.str = str;
!   new->type.node_class = etree_value;
!   return new;
  }
  
  /* Build an expression representing an unnamed relocatable value.  */
--- 154,178 ----
  etree_type *
  exp_intop (bfd_vma value)
  {
!   etree_type *new_e = (etree_type *) stat_alloc (sizeof (new_e->value));
!   new_e->type.node_code = INT;
!   new_e->type.lineno = lineno;
!   new_e->value.value = value;
!   new_e->value.str = NULL;
!   new_e->type.node_class = etree_value;
!   return new_e;
  }
  
  etree_type *
  exp_bigintop (bfd_vma value, char *str)
  {
!   etree_type *new_e = (etree_type *) stat_alloc (sizeof (new_e->value));
!   new_e->type.node_code = INT;
!   new_e->type.lineno = lineno;
!   new_e->value.value = value;
!   new_e->value.str = str;
!   new_e->type.node_class = etree_value;
!   return new_e;
  }
  
  /* Build an expression representing an unnamed relocatable value.  */
*************** exp_bigintop (bfd_vma value, char *str)
*** 180,192 ****
  etree_type *
  exp_relop (asection *section, bfd_vma value)
  {
!   etree_type *new = stat_alloc (sizeof (new->rel));
!   new->type.node_code = REL;
!   new->type.lineno = lineno;
!   new->type.node_class = etree_rel;
!   new->rel.section = section;
!   new->rel.value = value;
!   return new;
  }
  
  static void
--- 180,192 ----
  etree_type *
  exp_relop (asection *section, bfd_vma value)
  {
!   etree_type *new_e = (etree_type *) stat_alloc (sizeof (new_e->rel));
!   new_e->type.node_code = REL;
!   new_e->type.lineno = lineno;
!   new_e->type.node_class = etree_rel;
!   new_e->rel.section = section;
!   new_e->rel.value = value;
!   return new_e;
  }
  
  static void
*************** exp_fold_tree_no_dot (etree_type *tree)
*** 851,857 ****
  etree_type *
  exp_binop (int code, etree_type *lhs, etree_type *rhs)
  {
!   etree_type value, *new;
  
    value.type.node_code = code;
    value.type.lineno = lhs->type.lineno;
--- 851,857 ----
  etree_type *
  exp_binop (int code, etree_type *lhs, etree_type *rhs)
  {
!   etree_type value, *new_e;
  
    value.type.node_code = code;
    value.type.lineno = lhs->type.lineno;
*************** exp_binop (int code, etree_type *lhs, et
*** 862,876 ****
    if (expld.result.valid_p)
      return exp_intop (expld.result.value);
  
!   new = stat_alloc (sizeof (new->binary));
!   memcpy (new, &value, sizeof (new->binary));
!   return new;
  }
  
  etree_type *
  exp_trinop (int code, etree_type *cond, etree_type *lhs, etree_type *rhs)
  {
!   etree_type value, *new;
  
    value.type.node_code = code;
    value.type.lineno = lhs->type.lineno;
--- 862,876 ----
    if (expld.result.valid_p)
      return exp_intop (expld.result.value);
  
!   new_e = (etree_type *) stat_alloc (sizeof (new_e->binary));
!   memcpy (new_e, &value, sizeof (new_e->binary));
!   return new_e;
  }
  
  etree_type *
  exp_trinop (int code, etree_type *cond, etree_type *lhs, etree_type *rhs)
  {
!   etree_type value, *new_e;
  
    value.type.node_code = code;
    value.type.lineno = lhs->type.lineno;
*************** exp_trinop (int code, etree_type *cond, 
*** 882,896 ****
    if (expld.result.valid_p)
      return exp_intop (expld.result.value);
  
!   new = stat_alloc (sizeof (new->trinary));
!   memcpy (new, &value, sizeof (new->trinary));
!   return new;
  }
  
  etree_type *
  exp_unop (int code, etree_type *child)
  {
!   etree_type value, *new;
  
    value.unary.type.node_code = code;
    value.unary.type.lineno = child->type.lineno;
--- 882,896 ----
    if (expld.result.valid_p)
      return exp_intop (expld.result.value);
  
!   new_e = (etree_type *) stat_alloc (sizeof (new_e->trinary));
!   memcpy (new_e, &value, sizeof (new_e->trinary));
!   return new_e;
  }
  
  etree_type *
  exp_unop (int code, etree_type *child)
  {
!   etree_type value, *new_e;
  
    value.unary.type.node_code = code;
    value.unary.type.lineno = child->type.lineno;
*************** exp_unop (int code, etree_type *child)
*** 900,914 ****
    if (expld.result.valid_p)
      return exp_intop (expld.result.value);
  
!   new = stat_alloc (sizeof (new->unary));
!   memcpy (new, &value, sizeof (new->unary));
!   return new;
  }
  
  etree_type *
  exp_nameop (int code, const char *name)
  {
!   etree_type value, *new;
  
    value.name.type.node_code = code;
    value.name.type.lineno = lineno;
--- 900,914 ----
    if (expld.result.valid_p)
      return exp_intop (expld.result.value);
  
!   new_e = (etree_type *) stat_alloc (sizeof (new_e->unary));
!   memcpy (new_e, &value, sizeof (new_e->unary));
!   return new_e;
  }
  
  etree_type *
  exp_nameop (int code, const char *name)
  {
!   etree_type value, *new_e;
  
    value.name.type.node_code = code;
    value.name.type.lineno = lineno;
*************** exp_nameop (int code, const char *name)
*** 919,942 ****
    if (expld.result.valid_p)
      return exp_intop (expld.result.value);
  
!   new = stat_alloc (sizeof (new->name));
!   memcpy (new, &value, sizeof (new->name));
!   return new;
  
  }
  
  etree_type *
  exp_assop (int code, const char *dst, etree_type *src)
  {
!   etree_type *new;
  
!   new = stat_alloc (sizeof (new->assign));
!   new->type.node_code = code;
!   new->type.lineno = src->type.lineno;
!   new->type.node_class = etree_assign;
!   new->assign.src = src;
!   new->assign.dst = dst;
!   return new;
  }
  
  /* Handle PROVIDE.  */
--- 919,942 ----
    if (expld.result.valid_p)
      return exp_intop (expld.result.value);
  
!   new_e = (etree_type *) stat_alloc (sizeof (new_e->name));
!   memcpy (new_e, &value, sizeof (new_e->name));
!   return new_e;
  
  }
  
  etree_type *
  exp_assop (int code, const char *dst, etree_type *src)
  {
!   etree_type *new_e;
  
!   new_e = (etree_type *) stat_alloc (sizeof (new_e->assign));
!   new_e->type.node_code = code;
!   new_e->type.lineno = src->type.lineno;
!   new_e->type.node_class = etree_assign;
!   new_e->assign.src = src;
!   new_e->assign.dst = dst;
!   return new_e;
  }
  
  /* Handle PROVIDE.  */
diff -prc src.head/ld/ldfile.c src.new/ld/ldfile.c
*** src.head/ld/ldfile.c	Tue Jun 16 09:08:14 2009
--- src.new/ld/ldfile.c	Tue Aug 18 11:53:38 2009
*************** is_sysrooted_pathname (const char *name,
*** 98,125 ****
  void
  ldfile_add_library_path (const char *name, bfd_boolean cmdline)
  {
!   search_dirs_type *new;
  
    if (!cmdline && config.only_cmd_line_lib_dirs)
      return;
  
!   new = xmalloc (sizeof (search_dirs_type));
!   new->next = NULL;
!   new->cmdline = cmdline;
!   *search_tail_ptr = new;
!   search_tail_ptr = &new->next;
  
    /* If a directory is marked as honoring sysroot, prepend the sysroot path
       now.  */
    if (name[0] == '=')
      {
!       new->name = concat (ld_sysroot, name + 1, (const char *) NULL);
!       new->sysrooted = TRUE;
      }
    else
      {
!       new->name = xstrdup (name);
!       new->sysrooted = is_sysrooted_pathname (name, FALSE);
      }
  }
  
--- 98,125 ----
  void
  ldfile_add_library_path (const char *name, bfd_boolean cmdline)
  {
!   search_dirs_type *new_dirs;
  
    if (!cmdline && config.only_cmd_line_lib_dirs)
      return;
  
!   new_dirs = (search_dirs_type *) xmalloc (sizeof (search_dirs_type));
!   new_dirs->next = NULL;
!   new_dirs->cmdline = cmdline;
!   *search_tail_ptr = new_dirs;
!   search_tail_ptr = &new_dirs->next;
  
    /* If a directory is marked as honoring sysroot, prepend the sysroot path
       now.  */
    if (name[0] == '=')
      {
!       new_dirs->name = concat (ld_sysroot, name + 1, (const char *) NULL);
!       new_dirs->sysrooted = TRUE;
      }
    else
      {
!       new_dirs->name = xstrdup (name);
!       new_dirs->sysrooted = is_sysrooted_pathname (name, FALSE);
      }
  }
  
*************** void
*** 615,633 ****
  ldfile_add_arch (const char *in_name)
  {
    char *name = xstrdup (in_name);
!   search_arch_type *new = xmalloc (sizeof (search_arch_type));
  
    ldfile_output_machine_name = in_name;
  
!   new->name = name;
!   new->next = NULL;
    while (*name)
      {
        *name = TOLOWER (*name);
        name++;
      }
!   *search_arch_tail_ptr = new;
!   search_arch_tail_ptr = &new->next;
  
  }
  
--- 615,634 ----
  ldfile_add_arch (const char *in_name)
  {
    char *name = xstrdup (in_name);
!   search_arch_type *new_arch = (search_arch_type *)
!       xmalloc (sizeof (search_arch_type));
  
    ldfile_output_machine_name = in_name;
  
!   new_arch->name = name;
!   new_arch->next = NULL;
    while (*name)
      {
        *name = TOLOWER (*name);
        name++;
      }
!   *search_arch_tail_ptr = new_arch;
!   search_arch_tail_ptr = &new_arch->next;
  
  }
  
diff -prc src.head/ld/ldlang.c src.new/ld/ldlang.c
*** src.head/ld/ldlang.c	Fri Aug 14 11:07:08 2009
--- src.new/ld/ldlang.c	Tue Aug 18 11:53:38 2009
*************** new_statement (enum statement_enum type,
*** 949,961 ****
  	       size_t size,
  	       lang_statement_list_type *list)
  {
!   lang_statement_union_type *new;
  
!   new = stat_alloc (size);
!   new->header.type = type;
!   new->header.next = NULL;
!   lang_statement_append (list, new, &new->header.next);
!   return new;
  }
  
  /* Build a new input file node for the language.  There are several
--- 949,961 ----
  	       size_t size,
  	       lang_statement_list_type *list)
  {
!   lang_statement_union_type *new_stmt;
  
!   new_stmt = (lang_statement_union_type *) stat_alloc (size);
!   new_stmt->header.type = type;
!   new_stmt->header.next = NULL;
!   lang_statement_append (list, new_stmt, &new_stmt->header.next);
!   return new_stmt;
  }
  
  /* Build a new input file node for the language.  There are several
*************** new_afile (const char *name,
*** 976,985 ****
    lang_input_statement_type *p;
  
    if (add_to_list)
!     p = new_stat (lang_input_statement, stat_ptr);
    else
      {
!       p = stat_alloc (sizeof (lang_input_statement_type));
        p->header.type = lang_input_statement_enum;
        p->header.next = NULL;
      }
--- 976,986 ----
    lang_input_statement_type *p;
  
    if (add_to_list)
!     p = (lang_input_statement_type *) new_stat (lang_input_statement, stat_ptr);
    else
      {
!       p = (lang_input_statement_type *)
!           stat_alloc (sizeof (lang_input_statement_type));
        p->header.type = lang_input_statement_enum;
        p->header.next = NULL;
      }
*************** lang_memory_region_lookup (const char *c
*** 1220,1226 ****
  {
    lang_memory_region_name *n;
    lang_memory_region_type *r;
!   lang_memory_region_type *new;
  
    /* NAME is NULL for LMA memspecs if no region was specified.  */
    if (name == NULL)
--- 1221,1227 ----
  {
    lang_memory_region_name *n;
    lang_memory_region_type *r;
!   lang_memory_region_type *new_region;
  
    /* NAME is NULL for LMA memspecs if no region was specified.  */
    if (name == NULL)
*************** lang_memory_region_lookup (const char *c
*** 1239,1261 ****
    if (!create && strcmp (name, DEFAULT_MEMORY_REGION))
      einfo (_("%P:%S: warning: memory region `%s' not declared\n"), name);
  
!   new = stat_alloc (sizeof (lang_memory_region_type));
  
!   new->name_list.name = xstrdup (name);
!   new->name_list.next = NULL;
!   new->next = NULL;
!   new->origin = 0;
!   new->length = ~(bfd_size_type) 0;
!   new->current = 0;
!   new->last_os = NULL;
!   new->flags = 0;
!   new->not_flags = 0;
!   new->had_full_message = FALSE;
  
!   *lang_memory_region_list_tail = new;
!   lang_memory_region_list_tail = &new->next;
  
!   return new;
  }
  
  void
--- 1240,1263 ----
    if (!create && strcmp (name, DEFAULT_MEMORY_REGION))
      einfo (_("%P:%S: warning: memory region `%s' not declared\n"), name);
  
!   new_region = (lang_memory_region_type *)
!       stat_alloc (sizeof (lang_memory_region_type));
  
!   new_region->name_list.name = xstrdup (name);
!   new_region->name_list.next = NULL;
!   new_region->next = NULL;
!   new_region->origin = 0;
!   new_region->length = ~(bfd_size_type) 0;
!   new_region->current = 0;
!   new_region->last_os = NULL;
!   new_region->flags = 0;
!   new_region->not_flags = 0;
!   new_region->had_full_message = FALSE;
  
!   *lang_memory_region_list_tail = new_region;
!   lang_memory_region_list_tail = &new_region->next;
  
!   return new_region;
  }
  
  void
*************** init_os (lang_output_section_statement_t
*** 2057,2066 ****
  
    if (!link_info.reduce_memory_overheads)
      {
!       fat_section_userdata_type *new
! 	= stat_alloc (sizeof (fat_section_userdata_type));
!       memset (new, 0, sizeof (fat_section_userdata_type));
!       get_userdata (s->bfd_section) = new;
      }
  
    /* If there is a base address, make sure that any sections it might
--- 2059,2068 ----
  
    if (!link_info.reduce_memory_overheads)
      {
!       fat_section_userdata_type *new_userdata = (fat_section_userdata_type *)
!         stat_alloc (sizeof (fat_section_userdata_type));
!       memset (new_userdata, 0, sizeof (fat_section_userdata_type));
!       get_userdata (s->bfd_section) = new_userdata;
      }
  
    /* If there is a base address, make sure that any sections it might
*************** lang_add_section (lang_statement_list_ty
*** 2196,2202 ****
    if (section->output_section == NULL)
      {
        bfd_boolean first;
!       lang_input_section_type *new;
        flagword flags;
  
        flags = section->flags;
--- 2198,2204 ----
    if (section->output_section == NULL)
      {
        bfd_boolean first;
!       lang_input_section_type *new_section;
        flagword flags;
  
        flags = section->flags;
*************** lang_add_section (lang_statement_list_ty
*** 2244,2252 ****
  	}
  
        /* Add a section reference to the list.  */
!       new = new_stat (lang_input_section, ptr);
  
!       new->section = section;
        section->output_section = output->bfd_section;
  
        /* If final link, don't copy the SEC_LINK_ONCE flags, they've
--- 2246,2254 ----
  	}
  
        /* Add a section reference to the list.  */
!       new_section = new_stat (lang_input_section, ptr);
  
!       new_section->section = section;
        section->output_section = output->bfd_section;
  
        /* If final link, don't copy the SEC_LINK_ONCE flags, they've
*************** typedef struct bfd_sym_chain ldlang_unde
*** 3250,3265 ****
  void
  ldlang_add_undef (const char *const name)
  {
!   ldlang_undef_chain_list_type *new =
!     stat_alloc (sizeof (ldlang_undef_chain_list_type));
  
!   new->next = ldlang_undef_chain_list_head;
!   ldlang_undef_chain_list_head = new;
  
!   new->name = xstrdup (name);
  
    if (link_info.output_bfd != NULL)
!     insert_undefined (new->name);
  }
  
  /* Insert NAME as undefined in the symbol table.  */
--- 3252,3267 ----
  void
  ldlang_add_undef (const char *const name)
  {
!   ldlang_undef_chain_list_type *new_undef = (ldlang_undef_chain_list_type *)
!       stat_alloc (sizeof (ldlang_undef_chain_list_type));
  
!   new_undef->next = ldlang_undef_chain_list_head;
!   ldlang_undef_chain_list_head = new_undef;
  
!   new_undef->name = xstrdup (name);
  
    if (link_info.output_bfd != NULL)
!     insert_undefined (new_undef->name);
  }
  
  /* Insert NAME as undefined in the symbol table.  */
*************** lang_enter_output_section_statement (con
*** 6010,6019 ****
  void
  lang_final (void)
  {
!   lang_output_statement_type *new;
  
-   new = new_stat (lang_output_statement, stat_ptr);
-   new->name = output_filename;
  }
  
  /* Reset the current counters in the regions.  */
--- 6012,6022 ----
  void
  lang_final (void)
  {
!   lang_output_statement_type *new_stmt;
! 
!   new_stmt = new_stat (lang_output_statement, stat_ptr);
!   new_stmt->name = output_filename;
  
  }
  
  /* Reset the current counters in the regions.  */
*************** lang_add_wild (struct wildcard_spec *fil
*** 6377,6383 ****
  	       bfd_boolean keep_sections)
  {
    struct wildcard_list *curr, *next;
!   lang_wild_statement_type *new;
  
    /* Reverse the list as the parser puts it back to front.  */
    for (curr = section_list, section_list = NULL;
--- 6380,6386 ----
  	       bfd_boolean keep_sections)
  {
    struct wildcard_list *curr, *next;
!   lang_wild_statement_type *new_stmt;
  
    /* Reverse the list as the parser puts it back to front.  */
    for (curr = section_list, section_list = NULL;
*************** lang_add_wild (struct wildcard_spec *fil
*** 6399,6416 ****
  	lang_has_input_file = TRUE;
      }
  
!   new = new_stat (lang_wild_statement, stat_ptr);
!   new->filename = NULL;
!   new->filenames_sorted = FALSE;
    if (filespec != NULL)
      {
!       new->filename = filespec->name;
!       new->filenames_sorted = filespec->sorted == by_name;
      }
!   new->section_list = section_list;
!   new->keep_sections = keep_sections;
!   lang_list_init (&new->children);
!   analyze_walk_wild_section_handler (new);
  }
  
  void
--- 6402,6419 ----
  	lang_has_input_file = TRUE;
      }
  
!   new_stmt = new_stat (lang_wild_statement, stat_ptr);
!   new_stmt->filename = NULL;
!   new_stmt->filenames_sorted = FALSE;
    if (filespec != NULL)
      {
!       new_stmt->filename = filespec->name;
!       new_stmt->filenames_sorted = filespec->sorted == by_name;
      }
!   new_stmt->section_list = section_list;
!   new_stmt->keep_sections = keep_sections;
!   lang_list_init (&new_stmt->children);
!   analyze_walk_wild_section_handler (new_stmt);
  }
  
  void
*************** lang_default_entry (const char *name)
*** 6455,6464 ****
  void
  lang_add_target (const char *name)
  {
!   lang_target_statement_type *new;
  
!   new = new_stat (lang_target_statement, stat_ptr);
!   new->target = name;
  }
  
  void
--- 6458,6467 ----
  void
  lang_add_target (const char *name)
  {
!   lang_target_statement_type *new_stmt;
  
!   new_stmt = new_stat (lang_target_statement, stat_ptr);
!   new_stmt->target = name;
  }
  
  void
*************** lang_add_map (const char *name)
*** 6479,6498 ****
  void
  lang_add_fill (fill_type *fill)
  {
!   lang_fill_statement_type *new;
  
!   new = new_stat (lang_fill_statement, stat_ptr);
!   new->fill = fill;
  }
  
  void
  lang_add_data (int type, union etree_union *exp)
  {
!   lang_data_statement_type *new;
  
!   new = new_stat (lang_data_statement, stat_ptr);
!   new->exp = exp;
!   new->type = type;
  }
  
  /* Create a new reloc statement.  RELOC is the BFD relocation type to
--- 6482,6501 ----
  void
  lang_add_fill (fill_type *fill)
  {
!   lang_fill_statement_type *new_stmt;
  
!   new_stmt = new_stat (lang_fill_statement, stat_ptr);
!   new_stmt->fill = fill;
  }
  
  void
  lang_add_data (int type, union etree_union *exp)
  {
!   lang_data_statement_type *new_stmt;
  
!   new_stmt = new_stat (lang_data_statement, stat_ptr);
!   new_stmt->exp = exp;
!   new_stmt->type = type;
  }
  
  /* Create a new reloc statement.  RELOC is the BFD relocation type to
*************** lang_add_reloc (bfd_reloc_code_real_type
*** 6525,6535 ****
  lang_assignment_statement_type *
  lang_add_assignment (etree_type *exp)
  {
!   lang_assignment_statement_type *new;
  
!   new = new_stat (lang_assignment_statement, stat_ptr);
!   new->exp = exp;
!   return new;
  }
  
  void
--- 6528,6538 ----
  lang_assignment_statement_type *
  lang_add_assignment (etree_type *exp)
  {
!   lang_assignment_statement_type *new_stmt;
  
!   new_stmt = new_stat (lang_assignment_statement, stat_ptr);
!   new_stmt->exp = exp;
!   return new_stmt;
  }
  
  void
*************** lang_add_output_format (const char *form
*** 6714,6724 ****
  void
  lang_add_insert (const char *where, int is_before)
  {
!   lang_insert_statement_type *new;
  
!   new = new_stat (lang_insert_statement, stat_ptr);
!   new->where = where;
!   new->is_before = is_before;
    saved_script_handle = previous_script_handle;
  }
  
--- 6717,6727 ----
  void
  lang_add_insert (const char *where, int is_before)
  {
!   lang_insert_statement_type *new_stmt;
  
!   new_stmt = new_stat (lang_insert_statement, stat_ptr);
!   new_stmt->where = where;
!   new_stmt->is_before = is_before;
    saved_script_handle = previous_script_handle;
  }
  
*************** realsymbol (const char *pattern)
*** 7261,7287 ****
      }
  }
  
! /* This is called for each variable name or match expression.  NEW is
     the name of the symbol to match, or, if LITERAL_P is FALSE, a glob
     pattern to be matched against symbol names.  */
  
  struct bfd_elf_version_expr *
  lang_new_vers_pattern (struct bfd_elf_version_expr *orig,
! 		       const char *new,
  		       const char *lang,
  		       bfd_boolean literal_p)
  {
    struct bfd_elf_version_expr *ret;
  
!   ret = xmalloc (sizeof *ret);
    ret->next = orig;
    ret->symver = 0;
    ret->script = 0;
    ret->literal = TRUE;
!   ret->pattern = literal_p ? new : realsymbol (new);
    if (ret->pattern == NULL)
      {
!       ret->pattern = new;
        ret->literal = FALSE;
      }
  
--- 7264,7290 ----
      }
  }
  
! /* This is called for each variable name or match expression.  NEW_NAME is
     the name of the symbol to match, or, if LITERAL_P is FALSE, a glob
     pattern to be matched against symbol names.  */
  
  struct bfd_elf_version_expr *
  lang_new_vers_pattern (struct bfd_elf_version_expr *orig,
! 		       const char *new_name,
  		       const char *lang,
  		       bfd_boolean literal_p)
  {
    struct bfd_elf_version_expr *ret;
  
!   ret = (struct bfd_elf_version_expr *) xmalloc (sizeof *ret);
    ret->next = orig;
    ret->symver = 0;
    ret->script = 0;
    ret->literal = TRUE;
!   ret->pattern = literal_p ? new_name : realsymbol (new_name);
    if (ret->pattern == NULL)
      {
!       ret->pattern = new_name;
        ret->literal = FALSE;
      }
  
diff -prc src.head/opcodes/z8kgen.c src.new/opcodes/z8kgen.c
*** src.head/opcodes/z8kgen.c	Tue Jun 16 09:07:18 2009
--- src.new/opcodes/z8kgen.c	Wed Aug 19 18:28:24 2009
*************** static void
*** 904,917 ****
  internal (void)
  {
    int c = count ();
!   struct op *new = xmalloc (sizeof (struct op) * c);
    struct op *p = opt;
!   memcpy (new, p, c * sizeof (struct op));
  
    /* Sort all names in table alphabetically.  */
!   qsort (new, c, sizeof (struct op), (int (*)(const void *, const void *))func);
  
!   p = new;
    while (p->flags && p->flags[0] != '*')
    {
      /* If there are any @rs, sub the ssss into a ssn0, (rs), (ssn0).  */
--- 904,917 ----
  internal (void)
  {
    int c = count ();
!   struct op *new_op = xmalloc (sizeof (struct op) * c);
    struct op *p = opt;
!   memcpy (new_op, p, c * sizeof (struct op));
  
    /* Sort all names in table alphabetically.  */
!   qsort (new_op, c, sizeof (struct op), (int (*)(const void *, const void *))func);
  
!   p = new_op;
    while (p->flags && p->flags[0] != '*')
    {
      /* If there are any @rs, sub the ssss into a ssn0, (rs), (ssn0).  */
*************** gas (void)
*** 960,971 ****
    struct op *p = opt;
    int idx = -1;
    char *oldname = "";
!   struct op *new = xmalloc (sizeof (struct op) * c);
  
!   memcpy (new, p, c * sizeof (struct op));
  
    /* Sort all names in table alphabetically.  */
!   qsort (new, c, sizeof (struct op), (int (*)(const void *, const void *)) func);
  
    printf ("/* DO NOT EDIT!  -*- buffer-read-only: t -*-\n");
    printf ("   This file is automatically generated by z8kgen.  */\n\n");
--- 960,971 ----
    struct op *p = opt;
    int idx = -1;
    char *oldname = "";
!   struct op *new_op = xmalloc (sizeof (struct op) * c);
  
!   memcpy (new_op, p, c * sizeof (struct op));
  
    /* Sort all names in table alphabetically.  */
!   qsort (new_op, c, sizeof (struct op), (int (*)(const void *, const void *)) func);
  
    printf ("/* DO NOT EDIT!  -*- buffer-read-only: t -*-\n");
    printf ("   This file is automatically generated by z8kgen.  */\n\n");
*************** gas (void)
*** 1279,1297 ****
    printf ("#ifdef DEFINE_TABLE\n");
    printf ("const opcode_entry_type z8k_table[] = {\n");
  
!   while (new->flags && new->flags[0])
      {
        int nargs;
        int length;
  
!       printf ("\n/* %s *** %s */\n", new->bits, new->name);
        printf ("{\n");
  
        printf ("#ifdef NICENAMES\n");
!       printf ("\"%s\",%d,%d,", new->name, new->type, new->cycles);
        {
  	int answer = 0;
! 	char *p = new->flags;
  
  	while (*p)
  	  {
--- 1279,1297 ----
    printf ("#ifdef DEFINE_TABLE\n");
    printf ("const opcode_entry_type z8k_table[] = {\n");
  
!   while (new_op->flags && new_op->flags[0])
      {
        int nargs;
        int length;
  
!       printf ("\n/* %s *** %s */\n", new_op->bits, new_op->name);
        printf ("{\n");
  
        printf ("#ifdef NICENAMES\n");
!       printf ("\"%s\",%d,%d,", new_op->name, new_op->type, new_op->cycles);
        {
  	int answer = 0;
! 	char *p = new_op->flags;
  
  	while (*p)
  	  {
*************** gas (void)
*** 1306,1325 ****
  
        printf ("#endif\n");
  
!       nargs = chewname (&new->name);
  
        printf ("\n\t");
!       chewbits (new->bits, &length);
        length /= 2;
        if (length & 1)
  	abort();
  
!       if (strcmp (oldname, new->name) != 0)
  	idx++;
        printf (",%d,%d,%d", nargs, length, idx);
!       oldname = new->name;
        printf ("},\n");
!       new++;
      }
    printf ("\n/* end marker */\n");
    printf ("{\n#ifdef NICENAMES\nNULL,0,0,\n0,\n#endif\n");
--- 1306,1325 ----
  
        printf ("#endif\n");
  
!       nargs = chewname (&new_op->name);
  
        printf ("\n\t");
!       chewbits (new_op->bits, &length);
        length /= 2;
        if (length & 1)
  	abort();
  
!       if (strcmp (oldname, new_op->name) != 0)
  	idx++;
        printf (",%d,%d,%d", nargs, length, idx);
!       oldname = new_op->name;
        printf ("},\n");
!       new_op++;
      }
    printf ("\n/* end marker */\n");
    printf ("{\n#ifdef NICENAMES\nNULL,0,0,\n0,\n#endif\n");
Only in src.new/sid/component/cfgroot/libltdl: config-h.in]

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