add indirect_symbol to mach-o port.
authorIain Sandoe <iain@codesourcery.com>
Thu, 12 Jan 2012 14:03:12 +0000 (14:03 +0000)
committerIain Sandoe <iain@codesourcery.com>
Thu, 12 Jan 2012 14:03:12 +0000 (14:03 +0000)
commit50d10658eef31d1c68763d556f02954b9c7c4f00
treedcb4c7afc7cee5e547676de8c5069101eb4ddcf1
parent0a4734dc09362b45ad88c4092fe2531d27b8d1d1
add indirect_symbol to mach-o port.

bfd:

* mach-o.c (bfd_mach_o_count_indirect_symbols): New.
(bfd_mach_o_build_dysymtab_command): Populate indirect symbol table.
* mach-o.h (bfd_mach_o_asymbol): Move declaration to start of the
file. (bfd_mach_o_section): Add indirect_syms field.

gas:

* config/obj-macho.c (obj_mach_o_set_symbol_qualifier): Switch off
lazy when the symbol is private_extern.
(obj_mach_o_indirect_sym): New type.
(obj_mach_o_indirect_symbol): New.
(mach_o_pseudo_table): Use obj_mach_o_indirect_symbol.
(obj_macho_frob_label): Adjust to avoid adding bsyms for locals.
(obj_macho_frob_label): Likewise.  Adjust external and comm
symbol tests.
(obj_mach_o_set_indirect_symbols): New.
(obj_mach_o_frob_file_after_relocs): New.
*config/obj-macho.h (obj_frob_file_after_relocs): Define.
(obj_mach_o_frob_file_after_relocs): Declare.

include/mach-o:

* loader.h (BFD_MACH_O_INDIRECT_SYM_LOCAL): New.
(BFD_MACH_O_INDIRECT_SYM_ABS): New

gas/testsuite:

* gas/mach-o/dysymtab-2.d: New.
* gas/mach-o/err-syms-4.s: New.
* gas/mach-o/err-syms-5.s: New.
* gas/mach-o/err-syms-6.s: New.
* gas/mach-o/symbols-6-64.d: New.
* gas/mach-o/symbols-6-64.s: New.
* gas/mach-o/symbols-6.d: New.
* gas/mach-o/symbols-6.s: New.
17 files changed:
bfd/ChangeLog
bfd/mach-o.c
bfd/mach-o.h
gas/ChangeLog
gas/config/obj-macho.c
gas/config/obj-macho.h
gas/testsuite/ChangeLog
gas/testsuite/gas/mach-o/dysymtab-2.d [new file with mode: 0644]
gas/testsuite/gas/mach-o/err-syms-4.s [new file with mode: 0644]
gas/testsuite/gas/mach-o/err-syms-5.s [new file with mode: 0644]
gas/testsuite/gas/mach-o/err-syms-6.s [new file with mode: 0644]
gas/testsuite/gas/mach-o/symbols-6-64.d [new file with mode: 0644]
gas/testsuite/gas/mach-o/symbols-6-64.s [new file with mode: 0644]
gas/testsuite/gas/mach-o/symbols-6.d [new file with mode: 0644]
gas/testsuite/gas/mach-o/symbols-6.s [new file with mode: 0644]
include/mach-o/ChangeLog
include/mach-o/loader.h