diff -rp src.head/bfd/coff-i960.c src.class/bfd/coff-i960.c *** src.head/bfd/coff-i960.c 2008-07-18 04:30:22.000000000 -0700 --- src.class/bfd/coff-i960.c 2009-06-24 17:53:57.000000000 -0700 *************** 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 -rp src.head/bfd/coff-rs6000.c src.class/bfd/coff-rs6000.c *** src.head/bfd/coff-rs6000.c 2009-06-02 11:51:33.000000000 -0700 --- src.class/bfd/coff-rs6000.c 2009-06-24 17:53:57.000000000 -0700 *************** _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 -rp src.head/bfd/coffcode.h src.class/bfd/coffcode.h *** src.head/bfd/coffcode.h 2009-04-21 10:08:20.000000000 -0700 --- src.class/bfd/coffcode.h 2009-06-24 17:53:57.000000000 -0700 *************** coff_pointerize_aux_hook (bfd *abfd ATTR *** 2437,2445 **** 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) --- 2437,2445 ---- 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) diff -rp src.head/bfd/coffgen.c src.class/bfd/coffgen.c *** src.head/bfd/coffgen.c 2009-05-21 05:52:37.000000000 -0700 --- src.class/bfd/coffgen.c 2009-06-24 17:53:57.000000000 -0700 *************** 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,1170 **** 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; --- 1164,1170 ---- 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; *************** 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 --- 1178,1187 ---- 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) { --- 1390,1396 ---- 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 = --- 1400,1416 ---- } /* 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; --- 2317,2323 ---- 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)) { --- 2342,2348 ---- 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; } --- 2371,2377 ---- csym->native = native; } else ! csym->native->u.syment.n_sclass = symbol_class; return TRUE; } diff -rp src.head/bfd/cofflink.c src.class/bfd/cofflink.c *** src.head/bfd/cofflink.c 2009-05-19 09:08:03.000000000 -0700 --- src.class/bfd/cofflink.c 2009-06-24 17:53:57.000000000 -0700 *************** _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 -rp src.head/bfd/coffswap.h src.class/bfd/coffswap.h *** src.head/bfd/coffswap.h 2007-07-03 07:26:40.000000000 -0700 --- src.class/bfd/coffswap.h 2009-06-24 17:53:57.000000000 -0700 *************** 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 -rp src.head/bfd/libcoff-in.h src.class/bfd/libcoff-in.h *** src.head/bfd/libcoff-in.h 2009-04-21 10:08:20.000000000 -0700 --- src.class/bfd/libcoff-in.h 2009-06-24 17:53:57.000000000 -0700 *************** struct coff_link_hash_entry *** 251,257 **** unsigned short type; /* Symbol class. */ ! unsigned char class; /* Number of auxiliary entries. */ char numaux; --- 251,257 ---- unsigned short type; /* Symbol class. */ ! unsigned char symbol_class; /* Number of auxiliary entries. */ char numaux; *************** struct coff_debug_merge_type *** 391,397 **** struct coff_debug_merge_type *next; /* Class of type. */ ! int class; /* Symbol index where this type is defined. */ long indx; --- 391,397 ---- struct coff_debug_merge_type *next; /* Class of type. */ ! int symbol_class; /* Symbol index where this type is defined. */ long indx; diff -rp src.head/bfd/libcoff.h src.class/bfd/libcoff.h *** src.head/bfd/libcoff.h 2009-04-21 10:08:20.000000000 -0700 --- src.class/bfd/libcoff.h 2009-06-24 17:53:57.000000000 -0700 *************** struct coff_link_hash_entry *** 255,261 **** unsigned short type; /* Symbol class. */ ! unsigned char class; /* Number of auxiliary entries. */ char numaux; --- 255,261 ---- unsigned short type; /* Symbol class. */ ! unsigned char symbol_class; /* Number of auxiliary entries. */ char numaux; *************** struct coff_debug_merge_type *** 395,401 **** struct coff_debug_merge_type *next; /* Class of type. */ ! int class; /* Symbol index where this type is defined. */ long indx; --- 395,401 ---- struct coff_debug_merge_type *next; /* Class of type. */ ! int type_class; /* Symbol index where this type is defined. */ long indx; diff -rp src.head/bfd/peXXigen.c src.class/bfd/peXXigen.c *** src.head/bfd/peXXigen.c 2009-05-21 05:52:37.000000000 -0700 --- src.class/bfd/peXXigen.c 2009-06-24 17:53:57.000000000 -0700 *************** 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 -rp src.head/binutils/ieee.c src.class/binutils/ieee.c *** src.head/binutils/ieee.c 2009-03-02 08:18:54.000000000 -0800 --- src.class/binutils/ieee.c 2009-06-24 17:53:57.000000000 -0700 *************** 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) diff -rp src.head/gas/config/tc-arc.c src.class/gas/config/tc-arc.c *** src.head/gas/config/tc-arc.c 2009-06-22 10:56:01.000000000 -0700 --- src.class/gas/config/tc-arc.c 2009-06-24 17:53:57.000000000 -0700 *************** 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 -rp src.head/gas/config/tc-mips.c src.class/gas/config/tc-mips.c *** src.head/gas/config/tc-mips.c 2009-06-22 10:56:02.000000000 -0700 --- src.class/gas/config/tc-mips.c 2009-06-24 17:55:50.000000000 -0700 *************** fixup_has_matching_lo_p (fixS *fixp) *** 2213,2232 **** 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. --- 2213,2232 ---- 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.class/gas/config: tc-mips.c.rej diff -rp src.head/gas/config/tc-score.c src.class/gas/config/tc-score.c *** src.head/gas/config/tc-score.c 2009-06-22 10:56:02.000000000 -0700 --- src.class/gas/config/tc-score.c 2009-06-24 17:53:57.000000000 -0700 *************** 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 -rp src.head/gas/config/tc-score7.c src.class/gas/config/tc-score7.c *** src.head/gas/config/tc-score7.c 2009-06-22 10:56:02.000000000 -0700 --- src.class/gas/config/tc-score7.c 2009-06-24 17:53:57.000000000 -0700 *************** 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 -rp src.head/gprof/corefile.c src.class/gprof/corefile.c *** src.head/gprof/corefile.c 2009-06-16 04:49:12.000000000 -0700 --- src.class/gprof/corefile.c 2009-06-24 17:53:57.000000000 -0700 *************** 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 -rp src.head/include/opcode/ia64.h src.class/include/opcode/ia64.h *** src.head/include/opcode/ia64.h 2008-08-28 07:07:48.000000000 -0700 --- src.class/include/opcode/ia64.h 2009-06-24 17:53:57.000000000 -0700 *************** 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 -rp src.head/ld/emultempl/elf32.em src.class/ld/emultempl/elf32.em *** src.head/ld/emultempl/elf32.em 2009-05-15 07:22:35.000000000 -0700 --- src.class/ld/emultempl/elf32.em 2009-06-24 17:53:57.000000000 -0700 *************** fragment <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; --- 114,143 ---- 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 *** 306,312 **** 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) --- 306,312 ---- 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 <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)) --- 419,434 ---- /* 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)) diff -rp src.head/opcodes/ia64-dis.c src.class/opcodes/ia64-dis.c *** src.head/opcodes/ia64-dis.c 2008-08-28 07:07:49.000000000 -0700 --- src.class/opcodes/ia64-dis.c 2009-06-24 17:53:57.000000000 -0700 *************** 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);