diff options
author | iains <iains> | 2012-01-13 12:59:29 +0000 |
---|---|---|
committer | iains <iains> | 2012-01-13 12:59:29 +0000 |
commit | 9ecfb009dde40e26d8aca5a2cf38a83eb3853b5c (patch) | |
tree | 2ca2b97fbbdbcdd3d94f0ebd180f9121ec7fd6c3 /bfd | |
parent | 3755ee0b8cd7f557b148f497fa8b68d16efd9294 (diff) | |
download | gdb-9ecfb009dde40e26d8aca5a2cf38a83eb3853b5c.tar.gz |
handle absolute indirect syms in mach-o
bfd:
* mach-o.c (bfd_mach_o_build_dysymtab_command): Handle absolute
indirect symbols.
gas:
* config/obj-macho.c (obj_mach_o_set_indirect_symbols): Handle
absolute indirect symbols.
gas/testsuite:
* gas/mach-o/dysymtab-3.d: New.
* gas/mach-o/symbols-7.s: New.
Diffstat (limited to 'bfd')
-rw-r--r-- | bfd/ChangeLog | 7 | ||||
-rw-r--r-- | bfd/mach-o.c | 4 |
2 files changed, 10 insertions, 1 deletions
diff --git a/bfd/ChangeLog b/bfd/ChangeLog index 77749a7833b..7b569678ec2 100644 --- a/bfd/ChangeLog +++ b/bfd/ChangeLog @@ -1,6 +1,11 @@ 2012-01-13 Iain Sandoe <idsandoe@googlemail.com> - * mach-o.c (bfd_mach_o_write_relocs): Move compuation of relocs file + * mach-o.c (bfd_mach_o_build_dysymtab_command): Handle absolute + indirect symbols. + +2012-01-13 Iain Sandoe <idsandoe@googlemail.com> + + * mach-o.c (bfd_mach_o_write_relocs): Move computation of relocs file position from here... to (bfd_mach_o_build_seg_command): Here. 2012-01-12 Iain Sandoe <idsandoe@googlemail.com> diff --git a/bfd/mach-o.c b/bfd/mach-o.c index 262531970f5..a13ac4ea69d 100644 --- a/bfd/mach-o.c +++ b/bfd/mach-o.c @@ -2210,6 +2210,10 @@ bfd_mach_o_build_dysymtab_command (bfd *abfd, { if (isyms[j] == NULL) dsym->indirect_syms[n] = BFD_MACH_O_INDIRECT_SYM_LOCAL; + else if (isyms[j]->symbol.section == bfd_abs_section_ptr + && ! (isyms[j]->n_type & BFD_MACH_O_N_EXT)) + dsym->indirect_syms[n] = BFD_MACH_O_INDIRECT_SYM_LOCAL + | BFD_MACH_O_INDIRECT_SYM_ABS; else dsym->indirect_syms[n] = isyms[j]->symbol.udata.i; } |