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 7d96b5f8f52..2f7f59a4f98 100644 --- a/bfd/ChangeLog +++ b/bfd/ChangeLog @@ -1,3 +1,7 @@ +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. diff --git a/bfd/mach-o.c b/bfd/mach-o.c index 4412b0b98bc..04c971e47f4 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.30.2