From 8e43fc024d16859a34c2f2aa88b419e677373f88 Mon Sep 17 00:00:00 2001 From: Iain Sandoe Date: Sun, 12 Feb 2012 15:47:17 +0000 Subject: [PATCH] gas: * config/obj-macho.c (obj_mach_o_indirect_symbol): Force promotion of any local symbol used as an indirect. --- gas/ChangeLog | 5 +++++ gas/config/obj-macho.c | 5 +++++ 2 files changed, 10 insertions(+) diff --git a/gas/ChangeLog b/gas/ChangeLog index 757db70e76..d8a95ee9ce 100644 --- a/gas/ChangeLog +++ b/gas/ChangeLog @@ -1,3 +1,8 @@ +2012-02-12 Iain Sandoe + + * config/obj-macho.c (obj_mach_o_indirect_symbol): Force promotion of + any local symbol used as an indirect. + 2012-02-10 Iain Sandoe * 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 c32398ffdd..2a2e47d442 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)); -- 2.34.1