From 7f3072381b852817638295d676689b211af03c50 Mon Sep 17 00:00:00 2001 From: Iain Sandoe Date: Tue, 3 Jan 2012 10:54:01 +0000 Subject: add dysymtab write support to bfd/mach-o. bfd: * mach-o.c (bfd_mach_o_write_symtab): Fill in the string table index as the value of an indirect symbol. Keep the string table index in non-indirect syms for reference. (bfd_mach_o_write_dysymtab): New. (bfd_mach_o_primary_symbol_sort_key): New. (bfd_mach_o_cf_symbols): New. (bfd_mach_o_sort_symbol_table): New. (bfd_mach_o_mangle_symbols): Return early if no symbols. Sort symbols. If we are emitting a dysymtab, process indirect symbols and count the number of each other kind. (bfd_mach_o_mangle_sections): New. (bfd_mach_o_write_contents): Split out some pre-requisite code into the command builder. Write dysymtab if the command is present. (bfd_mach_o_count_sections_for_seg): New. (bfd_mach_o_build_seg_command): New. (bfd_mach_o_build_dysymtab_command): New. (bfd_mach_o_build_commands): Reorganize to support the fact that some commands are optional and should not be emitted if there are no sections or symbols. (bfd_mach_o_set_section_contents): Amend comment. * mach-o.h: Amend and add to comments. (mach_o_data_struct): Add fields for dysymtab symbols counts and a pointer to the indirects, when present. (bfd_mach_o_should_emit_dysymtab): New macro. (IS_MACHO_INDIRECT): Likewise. gas/testsuite: * gas/mach-o/dysymtab-1-64.d: New. * gas/mach-o/dysymtab-1.d: New. * gas/mach-o/symbols-1-64.d: New. * gas/mach-o/symbols-1.d: New. * gas/mach-o/symbols-base-64.s: New. * gas/mach-o/symbols-base.s: New. --- gas/testsuite/ChangeLog | 9 +++++++++ 1 file changed, 9 insertions(+) (limited to 'gas/testsuite/ChangeLog') diff --git a/gas/testsuite/ChangeLog b/gas/testsuite/ChangeLog index 80f9a73..624ee9f 100644 --- a/gas/testsuite/ChangeLog +++ b/gas/testsuite/ChangeLog @@ -1,3 +1,12 @@ +2012-01-03 Iain Sandoe + + * gas/mach-o/dysymtab-1-64.d: New. + * gas/mach-o/dysymtab-1.d: New. + * gas/mach-o/symbols-1-64.d: New. + * gas/mach-o/symbols-1.d: New. + * gas/mach-o/symbols-base-64.s: New. + * gas/mach-o/symbols-base.s: New. + 2011-12-29 Iain Sandoe * gas/mach-o/sections-1.d: Amend to recognize that bss is not emitted -- cgit v1.1