diff options
-rw-r--r-- | gas/ChangeLog | 5 | ||||
-rw-r--r-- | gas/config/obj-macho.c | 5 |
2 files changed, 10 insertions, 0 deletions
diff --git a/gas/ChangeLog b/gas/ChangeLog index 757db70..d8a95ee 100644 --- a/gas/ChangeLog +++ b/gas/ChangeLog @@ -1,3 +1,8 @@ +2012-02-12 Iain Sandoe <idsandoe@googlemail.com> + + * config/obj-macho.c (obj_mach_o_indirect_symbol): Force promotion of + any local symbol used as an indirect. + 2012-02-10 Iain Sandoe <idsandoe@googlemail.com> * config/obj-macho.c (obj_mach_o_make_or_get_sect): Always fill in diff --git a/gas/config/obj-macho.c b/gas/config/obj-macho.c index c32398f..2a2e47d 100644 --- a/gas/config/obj-macho.c +++ b/gas/config/obj-macho.c @@ -1187,6 +1187,11 @@ obj_mach_o_indirect_symbol (int arg ATTRIBUTE_UNUSED) } *input_line_pointer = c; + /* The indirect symbols are validated after the symbol table is + frozen, we must make sure that if a local symbol is used as an + indirect, it is promoted to a 'real' one. Fetching the bfd sym + achieves this. */ + symbol_get_bfdsym (sym); isym = (obj_mach_o_indirect_sym *) xmalloc (sizeof (obj_mach_o_indirect_sym)); |