From 0596a831a2e79bd9880d65c48a1c2c57a57e950a Mon Sep 17 00:00:00 2001 From: Tristan Gingold Date: Mon, 5 Dec 2011 14:42:31 +0000 Subject: [PATCH] 2011-12-05 Tristan Gingold * mach-o.c (bfd_mach_o_read_symtab_symbol): Accept indirect symbols. --- bfd/ChangeLog | 4 ++++ bfd/mach-o.c | 10 ++++++---- 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/bfd/ChangeLog b/bfd/ChangeLog index 7d96b5f..2f7f59a 100644 --- a/bfd/ChangeLog +++ b/bfd/ChangeLog @@ -1,5 +1,9 @@ 2011-12-05 Tristan Gingold + * mach-o.c (bfd_mach_o_read_symtab_symbol): Accept indirect symbols. + +2011-12-05 Tristan Gingold + * mach-o.c (bfd_mach_o_write_contents): Handle LC_LOAD_UPWARD_DYLIB. (bfd_mach_o_read_dylib): Likewise. (bfd_mach_o_read_command): Likewise. diff --git a/bfd/mach-o.c b/bfd/mach-o.c index 4412b0b..04c971e 100644 --- a/bfd/mach-o.c +++ b/bfd/mach-o.c @@ -1901,10 +1901,12 @@ bfd_mach_o_read_symtab_symbol (bfd *abfd, } break; case BFD_MACH_O_N_INDR: - (*_bfd_error_handler) (_("bfd_mach_o_read_symtab_symbol: " - "symbol \"%s\" is unsupported 'indirect' reference: setting to undefined"), - s->symbol.name); - s->symbol.section = bfd_und_section_ptr; + /* FIXME: we don't follow the BFD convention as this indirect symbol + won't be followed by the referenced one. This looks harmless + unless we start using the linker. */ + s->symbol.flags |= BSF_INDIRECT; + s->symbol.section = bfd_ind_section_ptr; + s->symbol.value = 0; break; default: (*_bfd_error_handler) (_("bfd_mach_o_read_symtab_symbol: " -- 2.7.4