Index: gas/obj.h =================================================================== RCS file: /cvs/src/src/gas/obj.h,v retrieving revision 1.13 diff -c -5 -p -r1.13 obj.h *** gas/obj.h 2 Nov 2009 11:59:14 -0000 1.13 --- gas/obj.h 24 Oct 2010 04:31:40 -0000 *************** struct format_ops { *** 70,79 **** --- 70,80 ---- void (*ecoff_set_ext) (symbolS *, struct ecoff_extr *); void (*read_begin_hook) (void); void (*symbol_new_hook) (symbolS *); void (*symbol_clone_hook) (symbolS *, symbolS *); + void (*adjust_symtab) (void); }; extern const struct format_ops elf_format_ops; extern const struct format_ops ecoff_format_ops; extern const struct format_ops coff_format_ops; Index: gas/config/obj-aout.c =================================================================== RCS file: /cvs/src/src/gas/config/obj-aout.c,v retrieving revision 1.29 diff -c -5 -p -r1.29 obj-aout.c *** gas/config/obj-aout.c 28 Jun 2010 14:06:56 -0000 1.29 --- gas/config/obj-aout.c 24 Oct 2010 04:31:40 -0000 *************** const struct format_ops aout_format_ops *** 308,318 **** obj_aout_sec_sym_ok_for_reloc, aout_pop_insert, 0, /* ecoff_set_ext. */ 0, /* read_begin_hook. */ 0, /* symbol_new_hook. */ ! 0 /* symbol_clone_hook. */ }; const pseudo_typeS aout_pseudo_table[] = { {"line", obj_aout_line, 0}, /* Source code line number. */ --- 308,319 ---- obj_aout_sec_sym_ok_for_reloc, aout_pop_insert, 0, /* ecoff_set_ext. */ 0, /* read_begin_hook. */ 0, /* symbol_new_hook. */ ! 0, /* symbol_clone_hook. */ ! 0 /* adjust_symtab. */ }; const pseudo_typeS aout_pseudo_table[] = { {"line", obj_aout_line, 0}, /* Source code line number. */ Index: gas/config/obj-coff.c =================================================================== RCS file: /cvs/src/src/gas/config/obj-coff.c,v retrieving revision 1.107 diff -c -5 -p -r1.107 obj-coff.c *** gas/config/obj-coff.c 8 Oct 2010 14:00:50 -0000 1.107 --- gas/config/obj-coff.c 24 Oct 2010 04:31:40 -0000 *************** const struct format_ops coff_format_ops *** 1941,1947 **** 0, /* sec_sym_ok_for_reloc */ coff_pop_insert, 0, /* ecoff_set_ext */ coff_obj_read_begin_hook, coff_obj_symbol_new_hook, ! coff_obj_symbol_clone_hook }; --- 1941,1948 ---- 0, /* sec_sym_ok_for_reloc */ coff_pop_insert, 0, /* ecoff_set_ext */ coff_obj_read_begin_hook, coff_obj_symbol_new_hook, ! coff_obj_symbol_clone_hook, ! coff_obj_adjust_symtab }; Index: gas/config/obj-ecoff.c =================================================================== RCS file: /cvs/src/src/gas/config/obj-ecoff.c,v retrieving revision 1.20 diff -c -5 -p -r1.20 obj-ecoff.c *** gas/config/obj-ecoff.c 2 Nov 2009 11:49:48 -0000 1.20 --- gas/config/obj-ecoff.c 24 Oct 2010 04:31:40 -0000 *************** const struct format_ops ecoff_format_ops *** 313,319 **** ecoff_sec_sym_ok_for_reloc, ecoff_pop_insert, ecoff_set_ext, ecoff_read_begin_hook, ecoff_symbol_new_hook, ! ecoff_symbol_clone_hook }; --- 313,320 ---- ecoff_sec_sym_ok_for_reloc, ecoff_pop_insert, ecoff_set_ext, ecoff_read_begin_hook, ecoff_symbol_new_hook, ! ecoff_symbol_clone_hook, ! 0 /* adjust_symtab. */ }; Index: gas/config/obj-elf.c =================================================================== RCS file: /cvs/src/src/gas/config/obj-elf.c,v retrieving revision 1.132 diff -c -5 -p -r1.132 obj-elf.c *** gas/config/obj-elf.c 23 Oct 2010 18:05:08 -0000 1.132 --- gas/config/obj-elf.c 24 Oct 2010 04:31:41 -0000 *************** const struct format_ops elf_format_ops = *** 2444,2450 **** #else 0, /* ecoff_set_ext */ #endif elf_obj_read_begin_hook, elf_obj_symbol_new_hook, ! 0 }; --- 2444,2451 ---- #else 0, /* ecoff_set_ext */ #endif elf_obj_read_begin_hook, elf_obj_symbol_new_hook, ! 0, ! elf_adjust_symtab }; Index: gas/config/obj-multi.h =================================================================== RCS file: /cvs/src/src/gas/config/obj-multi.h,v retrieving revision 1.15 diff -c -5 -p -r1.15 obj-multi.h *** gas/config/obj-multi.h 2 Nov 2009 11:49:48 -0000 1.15 --- gas/config/obj-multi.h 24 Oct 2010 04:31:41 -0000 *************** *** 89,98 **** --- 89,103 ---- #define obj_sec_sym_ok_for_reloc(A) \ (this_format->sec_sym_ok_for_reloc \ ? (*this_format->sec_sym_ok_for_reloc) (A) \ : 0) + #define obj_adjust_symtab() \ + (this_format->adjust_symtab \ + ? (*this_format->adjust_symtab) () \ + : (void) 0) + #define S_GET_SIZE \ (*this_format->s_get_size) #define S_SET_SIZE(S, N) \ (this_format->s_set_size \